SADbot: the Seasonally Affected Drawing robot by dustynrobots
Contest WinnerFeatured
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.


 
Remove these adsRemove these ads by Signing Up

Step 1: Shopping List

Electronics
  • 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)
Hardware
  • 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


mikegbeck says: Nov 29, 2011. 12:44 PM
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.
i.e.
void downLeft(int distance)
{
for( i = 0; i < distance; i++) {
right_motor.step(-2);
left_motor.step(.2);//non-integer value given here
}
}

Is this an undocumented feature of the .step() function?
dustynrobots (author) says: Nov 29, 2011. 2:12 PM
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.
mikegbeck says: Nov 29, 2011. 5:36 PM
Acutally, what I'm really wondering is that the upLeft, upRight, downLeft, downRight functions supposed to produce diagonal lines?

Thanks.
Euphy says: Jan 10, 2011. 5:12 AM
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!
dustynrobots (author) says: Jan 10, 2011. 6:14 AM
Thankssssss post a picture/link if you make one!
jam BD says: Jan 7, 2011. 3:23 PM
Solar panels =D Nice touch.
laxap says: Jan 5, 2011. 7:46 PM
Good job!

How about TSP art to draw non-random pictures?
dustynrobots (author) says: Jan 5, 2011. 8:14 PM
That would be excellent! If you come up with a mod to the code you should post it!
laxap says: Jan 5, 2011. 8:23 PM
The TSP calculation would be way too much resource hungry for an Arduino.
Cooperation with a PC seems necessary.

The Concorde solver can produce coordinate files.
martzsam says: Jan 5, 2011. 4:59 PM
Cool Bot! Great Ible!

Off topic;

How many people after reading the name immediately thought of Marvin the Robot when you saw this title?

Sad Robot...
dustynrobots (author) says: Jan 5, 2011. 5:14 PM
haha I love a good hitchhiker's reference, thanks
bertus52x11 says: Jan 5, 2011. 1:50 PM
Impressive!
JulietaandJulieta says: Jan 1, 2011. 9:24 PM
I am not ready to try a project like this but it looks a great combination of electronic and art. Really nice work.
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!