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:

  • Moving the pen to a specific position.
  • Pen up, and pen down.

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.

Below is a video of it in action, drawing the logo of my friend's non-profit organization Ondru, as promotional material for an art installation they held called Voiceless Journeys: