2D Plotter

Conception

Through the process of developing this product, I hoped to gain a more cohesive understanding of the way different motor systems work, and to improve my abilities to design, code, and construct a system capable of being remotely controlled before progressing to a 3 dimensional cutter. The progression of this project furthered my understanding of the underlying processes necessary for large scale automation, by constructing a smaller scale design automated by controlled, predetermined actions generated by G-code. As a secondary project, I made it compatible with manual control via joystick.
Prototyping and Physical Components
The process of prototyping my design involved two main physical components: The drive systems, and the drawing system to demonstrate the necessary precision of the system. The drawing system in this case was more arbitrary and was later changed out for a more practical final product, when I redesigned this prototype into the 3DOF Cutter. The prototype drive system was primarily composed of two NEMA-17 stepper motors, with attached lead screws held in place by self aligning ball bearings. These lead screws each moved a respective lead screw nut, attached to foam platforms, which held separate components. One moved along the x axis over the other lead nut, and held the drawing system, while the other held a paper platform for y-axis control.
Electronics and Code Control
The system was capable of running via two different mechanism both controlled by a central MKS Base V1.6. For the remote control, where I focused on understanding the underlying systems of automation, this involved an existing Arduino IDE library to convert G-code to motor control, utilizing F-engrave to generate G-code from images, and running the G-code via Repetier-Host. The manual control utilized self written code to gain a better understanding of how to code in 3D space, and gain a more physical understanding of stepper motors and how lead screws convert their effects to linear motion. I coded this in C++ for the MKS Base V1.6 system, and was able to successfully control all motor systems via an attached joystick.Â

