The FuzzBot is an awesome, fast, fully autonomous small Arduino robot that everyone loves!!!  It uses the compact Pololu ZumoBot Chassis kit for a great drive system, and uses a Parallax Ping sensor to sense proximity, to make the FuzzBot fully autonomous.  I like to think of it as a cheap & hackable "mini Roomba" because it uses a Swiffer Duster on the back to pick up any unwanted dirt off of the floor.  I programmed the Arduino code using the simple Pololu ZumoBot library, and used the Ping library to interface with the Ping sensor.  The FuzzBot also has a pan/tilt servo for the Ping sensor, and can be used with the Servo Arduino library.

The FuzzBot was also featured on the MAKE Blog!


What did you make?

I made the FuzzBot, a fully autonomous mini Arduino robot that cleans your floors!  It uses a Parallax Ping Sensor on the front of the FuzzBot to detect if an obstacle is in its way, and if it is, the FuzzBot quickly turns and travels the other direction.  It also uses the Pololu ZumoBot Chassis for the drive system.  I like to think of it as a 'Mini Roomba' because it has a Swiffer Duster on the back, to pick up any dust off of your floors.

How did you make it?

I made the FuzzBot with my soldering iron, laptop (for the Arduino programming), an Allen wrench, and some screwdrivers.  Once I assembled the ZumoBot Chassis Kit, I then used some extra wire to attach the servo to the chassis.  After that, I secured the Ping Ultrasonic Sensor to the servo with some hot glue, and soldered wire to the pins on of the Ping sensor to connect with the Arduino.  I then programmed the Arduino Leonardo with open source Arduino libraries from both Arduino.cc and the Pololu website.  I combined the two with some of my programming skills, and after about ten different sketches of Arduino code, it finally worked!

Where did you make it?

I made it in my hackerspace (Qtechknow Labs), and at my desk.  I used the soldering irons, glue guns, and pliers from the hackerspace to make the FuzzBot, and I programmed the main Arduino microcontroller with my laptop at my desk.

What did you learn?

I learned that everything doesn't work the first time, and all about motors.  I had to go through over ten revisions of the code, and solder a ton!  I had some problems of the orientation of the plastic pieces on the Pololu ZumoBot Chassis, which I described in this Instructable.

Step 1: Parts and Tools


Arduino Leonardo (SparkFun, $25)
microB USB Cable for Arduino Programming (SparkFun, $5)
ZumoBot Chassis Kit for Arduino (Pololu, $43)
100:1 Micro Metal Gear Motors (2, Pololu, $16 each)
Ping Sensor (Parallax, $30)
Servo - Small (SparkFun, $9)
AA - Rechargeable with Wall Charger (4 Batteries, Amazon, $18)
Swiffer Duster Refills (Amazon, $8 for a pack of 10)
Male Headers (we'll only need 3 pins to connect the Servo to the ZumoBot PCB, SparkFun, $1.50)


Wire, no thicker than 22AWG (SparkFun, $2.50)
Wire Strippers
Soldering Iron
Vice or Third Hand (for Soldering)
Hot Glue
Hot Glue Gun
3mm Allen Wrench
Small Phillips Screwdriver
Great little robot! I assmbled one this weekend with a slight difference: I used a much cheaper ultrasonic sensor ($5) from Amazon. It had 4 pins instead of 3 - the difference in the code &amp; wiring was pretty minor for the $25 saved. <br> <br>Now I want to work on FuzzBot over the next few weeks to give it more capabilities...line-following, turning its neck (the servo), fine tuned obstacle avoidance, and perhaps some buzzers and LEDs.
Thanks!!! Glad you like it!!! I actually just got that sensor from Amazon a couple weeks ago (the HC-SR04, correct?), and it works great!!! <br> <br>The line following is a great idea as well as the servo. I'd look at SparkFun's analog version of the line following sensors, and the buzzers and LEDs sound great!!!
That's correct! I'll look into those line following sensors. I know Pololu also has their sensor array for line-following.
<p>Here's the code for anyone who's interested in adjusting it.</p><p>https://www.dropbox.com/sh/v80inz7tsa6ds59/Q_w0K6R0MO</p>
I love this! Voted.
<p>same here</p>
I love FuzzBot! It was so helpful in cleaning the LAMakerspace after our robot party! :)
smart kid is smart! good work dude! you're future is bright!
<p>it is looking great ....</p>
<p>hi i am also 13 years old.Your pan tilt hack helped me for my project</p><p>Thanks a lot</p>
<p>When you say, &quot;Put these male header segments into the jumper holes,&quot; which jumper holes are you referring to? The battery level, buzzer control, or the compass I2C jumpers?</p>
<p>I would like to know how to make it!</p>
<p>Brilliant, reminds me of jonny5</p>
<p>I wonder why you have two duplicate codes in your fuzzbot.ino, on the second section of the code where the if (count==1) and I flipped the motors.setLeftSpeed(400) motors.setRightSpeed(-400) and it never did. </p>
<p>Just found out there's missing a count = 0; at the second set of the code, I also added if inches is less than 3 Zumo will back up just in case it run into something close.</p>
<p>Love this! It's cute and like you said like a pet and it's very useful too. I could use a group of these things, my cat sheds loads of fur and they would keep him entertained!</p>
<p>Um, ever heard of a broom and mop? Rube Goldberg would be proud.</p>
<p>Wow! This is def the makers alternative to Roombas ;)</p><p>To the people who have made it could you please give us some feedback on how effective it is in terms of cleaning. Of course I am not planing to stop hoovering but I hope if I can run this every 2-3 days I can deep clean with hoover less often.</p><p>Also could you provide any figures on the run time with each charge accompanied with the mAh of the batteries you are using?</p><p>Congrats Qtechknow!</p>
<p>This is great stuff, just ordered my Puolo kit!</p><p>BTW, you can use the newping arduino library with these 3 pin ping sensors - just set the trigger and read pins to the same pin number in your setup.</p>
<p>Great instructable! I bought another brand of robot and was so frustrated with it I gave up on it for now. I just ordered the Zumo and I am looking forward to putting it all together. Thanks for sharing!</p>
<p>Great job!</p>
Sorry I'm asking you so many questions, but did you have to add the jumpers for the battery level connection. If so, is it possible to disconnect your arduino from the shield?
My main problem right now is that my model of my computer running windows 7 won't even sense my board plugged into it. Do you know what models will work?
I installed the Ping and ZumoMotors libraries, but it still has the same errors. I tried uploading the libraries to the Arduino first, but it wouldn't upload because it had a million errors. Any ideas?
When I was uploading the Fuzz Bot sketch, it had some errors: FuzzBot:14: error: 'Ping' does not name a type <br>FuzzBot:22: error: 'ZumoMotors' does not name a type <br>FuzzBot.ino: In function 'void loop()': <br>FuzzBot:35: error: 'ping' was not declared in this scope <br>FuzzBot:47: error: 'motors' was not declared in this scope <br>FuzzBot:72: error: 'ping' was not declared in this scope <br>FuzzBot:84: error: 'motors' was not declared in this scope
Check out step 9 and install the two libraries. I believe that should solve all of the errors. :D
Hi, <br> <br>We are trying to build a small robot based on an arduino and a Zumo shield. The probem is that when we try to attach a servo (we are using the Servo library, and the problem appears only when we write myservo.attach(servoPin); ), the ZumoMotors don't work as they should. <br> <br>By searching the web, it appeared that the Servo library uses Timer1, which disables pins 9 and 10. This is probably where the problem come from. <br> <br>We've seen that you have used a servo on your robot, also based on a zumo shield. Did you manage to solve that problem ? <br> <br>Thanks in advance !
I think that you are correct about the Timer1 issue. I think that you can still use the ZumoBot motors, but I'm not sure.
What first started your tech education?
Make Magazine -&gt; Maker Faire -&gt; Arduino -&gt; Open-Source Education!
Hi Quinn - Fun to see you and FuzzBot at the NY Maker Faire, great project! <br>Question: In your sketch, what code makes the servo under the ping sensor move? Or are you just using it as a mount? <br>Thanks!
I'm using it as a mount, but you can definitely program it yourself! If you include the Servo library, then you can program the servo
i saw this at maker fair in NY
I read about Quinn in my popular science magazine. &quot;Wow, what a smart kid&quot; I thought. Way to go, Quinn!!
The Fuzz Bot is sooooo cool!!!!!
^} Like :D
Very nice job, kid! Keep it up!
Thanks for all of the great comments!!!!
nice work dude.
Good thing!
Great idea my mom would love this at her house and i really like the remote joystick idea to but couldnt you just attach a bluetooth sensor to the robot and possibly control it using a ps3 controller or a cheaper one from ebay or amazon but again i like it <br>
Thanks!! I'll keep that idea in mind!!! :D
I like
Good job there.

About This Instructable




Bio: White House Maker Faire // 15 years old // CEO of Qtechknow, maker and electronics enthusiast, I teach Arduino classes, and put making into schools!
More by Qtechknow:NFC Door Lock with the Qduino Mini (under $100) Qtechknow Robot Obstacle Course Your Image on an Arduino! - TFT LCD Screen Guide 
Add instructable to: