Skip to content
Arvinszhang edited this page Apr 14, 2019 · 52 revisions

Welcome to the 2D-Printer wiki!

Introduction

This project is a realtime writing machine, which enable user to write information remotely. This design controls the movement of the pen on the x and y axes through two stepping motors and the up and down movement of the pen through a servo motor. This Wiki page details how to recreate the machine.

whole view

Hardware Design

Bill of Material

BOM for 2D Printer

component Description Quantity Supplier
NEMA-17 Stepper motor 2 onecall MC02060
SG90 Micro servo motor 1 eBay
Stepper motor coupler Flexible shaft couplings 5mm to 8mm stepper motor coupler aluminium alloy joint connector 2 Amazon
Screw rod 200mm 3D printer T8-2 8mm lead threaded screw rod linear rail bar shaft 2 Amazon
Brass nut Dia 22mm Brass 8mm 4-Start Flange Nut for CNC 3D Printer Rod Lead Screw 4 Amazon
M8 hexagon nut Toolcraft Hexagon Nuts DIN 934 Galvanised Steel 8 M8 4 Rapid 51-3428
Stainless steel solid rod 250mm*5mm 2
Type ①②③④ acrylic board The corresponding size and quantity can be found in datasheet 10

BOM for PCB

component Description Quantity Supplier
L293DNE Quadruple high current half-H driver 2 onecall 1470423
CTB0500/2 2 way 14 A low profile interlocking terminal block 5 Rapid 21-1540
CTB0500/3 3 way 14A low profile interlocking terminal block 1 Rapid 21-1545
M20-6102045 2.54mm pitch PC/104 40 connectors 1 Farnell 1569230
10ML100MEFC6.3X5 Electrolytic Capacitor, Miniature, 100 µF, 10 V, ML Series, ± 20%, Radial Leaded, 6.3 mm 1 Farnell 8126160

Wiring Diagram

wiring diagram

Servo Motor Control Motor Driver Board Control Stepper Motor Control
Raspberry Pi Servo Motor
Pin4(Power) 5V
Pin12(GPIO1) Signal
Pin20(Ground) Ground
Raspberry Pi L293D Drive Board
Pin31(GPIO22)/Pin32(GPIO26) Pin2(1A)
Pin33(GPIO23)/Pin36(GPIO27) Pin7(2A)
Pin35(GPIO24)/Pin38(GPIO28) Pin10(3A)
Pin37(GPIO25)/Pin40(GPIO29) pin15(4A)
L293D Drive Board Stepper Motor
pin3(1A) Red
Pin6(2A) Green
Pin11(3A) Yellow
Pin14(4A) Gray

PCB Design

PCB This 83mm*75mm double sided PCB is manufactured at University of Glasgow. There has some difficulties in the soldering process. All the files required to recreate this PCB can be found in PCB design folder of this repository.

Evaluation

Software Evaluation

  • In this design, different motor driving threads are triggered by the comparison result of current coordinates and previous coordinates. This method minimizes system latency. But each thread requires 40ms runtime. During this time, the comparison of the coordinates is still in progress, but the motor is not driven. This means that the effective coordinates sampling interval is 40ms. During this interval, the mouse moves too fast or too slow will cause the pattern on the screen to be different from the pattern on the paper.
  • In the future improvement, there are two kinds of schemes to consider:
    1. limit the moving speed of the mouse or increase the driving voltage so that the mouse moving speed can match the stepper motor speed.
    2. Rewrite the code architecture. By storing the coordinates value to simulate the mouse move path. Then control the motor. This approach has a huge impact on real time and brings higher latency.

Hardware Evaluation

  • This design uses 9V battery power supply, during actual operation, the battery voltage reduces very fast. The voltage drop has a great effect on the operation of the printer. In the subsequent designs, the addition of a voltage regulator module will be considered and the circuit should be improved to help the program dive the motor.
  • The current structure of the pen holder cannot guarantee the writing quality. The writing quality is highly dependent on the level of desktop flatness. Future improvements in the holder structure is needed.
  • In the future, bearings can be used to stabilize the screw rods to reduce the swing of the rods and make the operation of the motors more stable

Team Coordination

  • Wei Zhang - Hardware and software designer
  • Honghao Wang - Researcher and film editor
  • Huanyu Zhang - GitHub maintainer and material purchaser

Social Media