This Instructable has moved! This was one of the first projects I posted, and for some reason I posted it twice. I've left the original content below, but please see the much more complete Instructable here!
Inspired by a misconception of a "Cupcake CNC", this 1-semester mechatronics project takes input from a Paint-like GUI, sends commands through Arduino, and runs via stepper motors on threaded rods.
The software is all in Python, using TKinter. It allows for the selection of size (up to 11x13" rectangular), shape (rectangle or circle), and cake color, then opens an appropriate canvas with a pallette of tips and colors. The Python records points in a path and, at the press of a button, sends the design over serial to two Arduinos.
One of the two Arduinos controls the stepper motors (controlling threaded rods in X and Y) to move at a constant speed between points in the path. The other Arduino runs a servo in the Z axis, which uses a rack-and-pin plunger system to dispense frosting. The servo stops to pick up between points or pauses for color/nozzle change.
The acrylic plate which holds the cake is affixed to a nut which rides on the x-axis threaded rod; the dispensing mechanism moves in the y axis. These two axes are also controlled with limit switches, which comprise the zeroing mechanism. There is also a manual z axis which moves the dispensing mechanism to adjust for the height of the cake.
This product is all the original work of five students in a class at Franklin W. Olin College of Engineering. It was featured in Wired magazine, Gizmodo, and elsewhere. We were all just learning Python, had been introduced to microcontrollers a few weeks earlier, and had only a little experience in the machine shop. We made it from SolidWorks design and whiteboard sketches to finished project!
For more information, including code, see our website