Picture of SADbot: the Seasonally Affected Drawing robot
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.

mikegbeck3 years ago
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.
void downLeft(int distance)
for( i = 0; i < distance; i++) {
left_motor.step(.2);//non-integer value given here

Is this an undocumented feature of the .step() function?
dustynrobots (author)  mikegbeck3 years ago
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?

Euphy4 years ago
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)  Euphy4 years ago
Thankssssss post a picture/link if you make one!
jam BD4 years ago
Solar panels =D Nice touch.
laxap4 years ago
Good job!

How about TSP art to draw non-random pictures?
dustynrobots (author)  laxap4 years ago
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.
Cooperation with a PC seems necessary.

The Concorde solver can produce coordinate files.
martzsam4 years ago
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)  martzsam4 years ago
haha I love a good hitchhiker's reference, thanks
bertus52x114 years ago
I am not ready to try a project like this but it looks a great combination of electronic and art. Really nice work.