For this project, general experience (nothing too fancy) with electronics, wiring, knowing what a diode is, etc. is recommended. Similarly, a surface knowledge of how to use an Arduino should be sufficient. The main requirement for the DIY-er embarking on this project is a great deal of patience and love for troubleshooting. If everything goes right on the first try, you probably aren't solving an interesting problem.
Cost: ~$35 (not including 3D printer... but we'll get to that)
Step 1: Materials
-Computer to tell Arduino what to do
-L298N (Full-bridge motor driver) [There are simpler alternatives, but this is what was available to me]
-4 fast recovery diodes (I used 1N4148)
-lots and lots of wires
-a 12V DC power supply (anything providing over 7V will suffice)
-a DC motor
-a ball chain pulley (I 3D printed this part using wulfdesign's design http://www.thingiverse.com/thing:6663)
As you can see, there is some flexibility in what you use. Creativity is a beautiful thing.