Last year, as part of my first experiences with Max/Msp and the Arduino, I made drill-based printer. Max/Msp was used to process the image, in this case a 10x10 pixel black and white drawing, then directly control the printer using maxduino interface. The printer was built using a stepper motor and belt assembly rescued from a discarded printer, 2 servos, 2 optical rotary sensors, and a limit switch. A rotary tool is strapped in to the servo elevator to lift the drill bit up and down, the printer assembly moves the head back and forth, and another servo drives the entire device across the palette. An earlier design was going to use plastic treads, but they were a little too cumbersome.
A dual H-bridge IC was used to control the stepper, and everything else was wired to the Arduino. The Max patch controlled every movement, right down to a sub-patch to activate each step of the stepper motor. It was not the most efficient way to control the device, but it was the most visual, including all the arithmetic and gates that controlled things such as the printers carriage return and drill height check.
All in all it was a successful experiment, and quite a learning experience, gaining new knowledge in graphical programming, micro-controllers and stepper motor control. I really like the idea of taking the printer or CNC machine off the tabletop and making it mobile. The printer has already been disassembled, the parts making their way back to the supply drawer to be used in other projects, but its possible that I may make another, better version sometime soon.
Here is a video of one of the first trials of getting the printer to work. Substituting the rotary tool, a drink bottle with a dry erase marker was strapped to the print head. The printer’s task is to draw the 10x10 Smiley Face image.