SADbot was created in collaboration with Ben Leduc-Mills for the window gallery at the Eyebeam Art + Technology Center. The main idea was to use solar energy to power a drawing machine that could interact with people outside the window through light sensors. You can re-create this project to install in your own window at home.

SADbot gets its name from the source of its power: the sun. Since the motors are powered from a battery charged through a solar panel, they will run only if it has been sunny enough to store solar energy in the battery. When the battery runs low and the SADbot motors stop running, SADbot appears sad because it has to wait for the sun to come out before it can keep drawing.

Everything you need to know is in this Instructable, but if you've never used an Arduino or worked with photocells and motors, you might want some background material.  This the last project in my book, Making Things Move: DIY Mechanisms for Inventors, Hobbyists, and Artists, so all the background material can be found in there.

SADbot has already been listed as one of The 10 Robots That Rocked in 2010 and one of The 10 Coolest Kickstarter Projects of 2010.  SADbot also got some love from Adafruit Industries, IEEE Spectrum, True/Slant, Robot Living, and gizmowatch.  And when Ben and I showed it at Maker Faire NY in September 2010, our booth won a blue Editor's Choice ribbon!  Hopefully you'll make one and comment about it - the world needs more robot art.

Also see the Flickr set for higher-res images.

Step 1: Shopping List

  • Multimeter
  • Arduino with USB cable and AC adapter
  • Soldering iron, stand, and solder
  • Three small breadboards (like All Electronics PB-400)
  • Jumper wires (like SparkFun PRT-00124)
  • Hook-up wire: red , black, and white (SparkFun PRT-08023, PRT-08022, and PRT-08026)
  • Two stepper motors (SparkFun ROB-09238)
  • Two EasyDrivers (SparkFun ROB-09402)
  • Male header pins (SparkFun PRT-00116)
  • Four photocells (1KΩ – 10kΩ: SparkFun SEN-09088)
  • Four 1KΩ resistors (SparkFun COM-08980)
  • Photocell (10KΩ – 100KΩ, Digi-Key PDV-P9007-ND used here) and resistor (10KΩ, like SparkFun COM-08374 used here).  Note: You can also use a 1KΩ – 10kΩ photocell (SparkFun SEN-09088). In that case, you should use a 1KΩ resistor (SparkFun COM-08980) to get the best response.
  • Benchtop power supply for testing
  • 12V 5Ah SLA battery (PS-1250 F1 from Microbattery.com, www.microbattery.com)
  • Solar charge controller (SKU 06-1024 from Silicon Solar, www.siliconsolar.com)
  • 12V 7W solar battery charger panel (Silicon Solar SKU 9358)
  • Large plywood or other wooden board to use for canvas (around 3 ft × 2 ft will work well)
  • Eight M3 screws, 20mm length, (McMaster 92095A185)
  • Eight M3 lock washers (McMaster 92148A150)
  • One pack M3 washers (McMaster 91116A120)
  • Drill (either portable or drill press) and drill bits: 3/8 in, 1/8 in
  • Diagonal cutters (like SparkFun TOL-08794)
  • Two pulleys:  Download the model file for free from Thingiverse to 3D print them yourself or buy them custom made at from my Shapeways shop.  Any pulley that fits on a 5mm motor shaft will also work.
  • Spring clamp (like McMaster 5107A1) that will hold the marker
  • Black (or any color) marker
  • Monofilament fishing line
  • Large white paper

I have a question about the direction functions. You have given a non-integer value for the .step() and the arduino standard requires an integer.<br>i.e.<br>void downLeft(int distance)<br>{<br>for( i = 0; i &lt; distance; i++) {<br>right_motor.step(-2);<br>left_motor.step(.2);//non-integer value given here<br>}<br>}<br><br>Is this an undocumented feature of the .step() function?<br>
Nice catch - I think that may be a typo. I believe the . is a typo in both instances, not sure how that got in there.
Acutally, what I'm really wondering is that the upLeft, upRight, downLeft, downRight functions supposed to produce diagonal lines?<br><br>Thanks.
This is a brilliant how-to for making a drawbot like this, clear instructions. I really could have done with this a few months ago!
Thankssssss post a picture/link if you make one!
Solar panels =D Nice touch.
Good job!<br> <br> How about <a href="http://www.cgl.uwaterloo.ca/~csk/projects/tsp/">TSP art</a> to draw non-random pictures?<br>
That would be excellent! If you come up with a mod to the code you should post it!
The TSP calculation would be way too much resource hungry for an Arduino.<br> Cooperation with a PC seems necessary.<br> <br> The <a href="http://www.tsp.gatech.edu/concorde.html">Concorde solver</a> can produce coordinate files.<br>
Cool Bot! Great Ible! <br><br>Off topic;<br><br>How many people after reading the name immediately thought of Marvin the Robot when you saw this title?<br><br>Sad Robot...
haha I love a good hitchhiker's reference, thanks
I am not ready to try a project like this but it looks a great combination of electronic and art. Really nice work.

About This Instructable


102 favorites


Bio: I'm an enginerd, author, and teacher.
More by dustynrobots: Robotic Arm with Servo Motors SADbot: The Seasonally Affected Drawing robot Wind Lantern: LEDs powered by a vertical axis wind turbine
Add instructable to: