An Arduino based robot that draws on ping pong balls. This involved controlling two stepper motors to adjust the drawing position along the latitudinal and longitudinal axes, as well as a servo motor to adjust pen up and down.
All the plastic components were printed out on a 3D printer.
A python script was written that takes in SVG images containing the desired drawing, and translates the interpolated lines into point coordinates at regular intervals. The script converts these point coordinates into G-Code instructions which can then be uploaded to the Arduino using a serial USB interface.
The Arduino micro-controller was programmed with a slimmed down G-Code interpreter that only implements the few G-Code operations it actually requires, such as:
The Arduino was also programmed to map those G-Code instructions to actual sequences of steps that the motors would need to follow to carry out those instructions.