This year's University of Melbourne scavenger hunt included this challenge: build or locate "an over engineered computer controlled vibrator:USB/bluetooth/Solar powered/UDP/TCPIP encouraged bonus points for it being really cool and if we can keep it for 'research purposes'. 500, up to 6969 points."
David Perry, an enterprising engineering student, took it upon himself to build this rubegoldberg, and he's posted some photos and his build-notes:
I grabbed a cordless drill motor/gearbox, some aluminium tubing/sheet/rod, nuts and bolts, transistors, resistors, diodes, an old parallel port cable and a protoboard. I also grabbed my notebook computer, an IBM PIII 700, running Slackware Linux 10.1. I determined that the only other parts I would need to buy would be three relays, two 3 amp for two vibrate speeds, and one 5 amp for 'thrust'.
All this stuff was brought back to TEAM ENG headquarters on campus, while I figured out what to do. The simplest way to make something computer controlled is using the parallel port. Use three data lines to operate three relays, with the coils switched using a PN2222 transistor, 1k resistor, and 1N4004 diode to prevent voltage spikes. Those three datalines can be controlled with a couple of lines of code.
First task was making the vibrator remotely switchable. I disabled the speed control adjust in the base, and brought a pair of wires out which were connected between the batteries in the vibrator – connect them, and the vibrator would turn on.
A built the circuit on the protoboard so that the parallel port could control the three relays. An old computer power supply was used to provide the +12V necessary for switching the relays.
(Thanks, David!)