The Pen Printer was our Engineering Honors final project at Francis Parker School, and as a pair of high school sophomores, we spent approximately 9 weeks on the design, programming, and refinement of the machine. The project's goal was to create a CNC-style printer with the ability to process and output both dot and line art in just a few hours. Consequently, the final design has three degrees of freedom, with the ability to move in the X, Y, and Z plane. Utilizing stepper motors with accuracy of up to 0.1125 of a degree in the X and Y axes, the printer can achieve an astounding resolution of 3840 x 2160, barring physical limitations from the width of a pen. In actuality, this yields resolutions of 635 x 476 when utilizing a 0.4 millimeter pen tip, still enabling the creation of high quality images. The stepper motors — with GT2 timing belt wrapped around a pulley — ensures rapid movements, which would otherwise be lost with a leadscrew mechanism, whilst still maintaining the desired precision of a CNC machine.
The entire assembly was designed in SOLIDWORKS, and includes a widespread variety of manufacturing techniques: CNC machining, manual machining, additive manufacturing via 3D printing, and laser cutting. The Z-axis of the CNC utilizes a rack and pinion mechanism, which we designed from scratch in SOLIDWORKS through the use of equation driven curves. To analyze the model and ensure its rigidity, a stress analysis was conducted using SOLIDWORKS Simulation software, thus ensuring that the mechanism would not fail under cantilevered load.
Following the construction of the assembly, we used Python to develop an image processing program that would construct a list of instructions from a camera input. Utilizing the OpenCV library, the computer uses a Gaussian threshold image processing algorithm to convert a colorful image to a black and white image of where dots should be put on the page. This image is treated as a list of points and goes through a closest-first path generation algorithm, which immediately converts the path to instructions for the arduino, including instructions to adjust the pen height according to the cantilever’s drop as it moves horizontally. Once fully processed, the instructions are sent over serial communication via the USB to the Arduino Uno. The Arduino Uno runs code to accept these custom instructions sent over the serial communication and sends the necessary signals to stepper motor controllers and the servo motor. Utilizing the limit switches, the Arduino Uno can also handle a reset to zero the printer, which is used at the start of every print.
Through the lens of sustainability, our project utilizes environmentally friendly materials to mitigate the growth of climate change. More specifically, all 3D printed parts in the model are printed from PLA, which is reported to have 80% lower emissions than traditional plastics (Biopak). Similarly, the base plate of the mechanism is made from polycarbonate, which also remains a sustainable material with a low carbon footprint (Conserve Energy Future). Ultimately, all the materials used in the project are entirely recyclable, thus drastically reducing the emissions from its construction. Evidently, while a single project likely will not incur drastic impacts on the environment, the process through which we reduce our carbon footprint promotes a green future, void of unnecessary pollution.
Edu SOLIDWORKS Simulation Work Showcase
