The CleanBOT ( Remote Controlled Autonomous Floor Cleaning Robot) is designed to clean floor in two different ways: with vacuum or active mop. It has auto mode but you can also control it manually by using bluetooth connection and android app.

Most parts of the robot are made from electronics garbage for example:old inkjet printer.This allowed me to significantly reduce the cost of the robot . Current cost of the robot is between 50-60 $ it depends how many parts already you have.

In this inscrutable I will guide you through the steps that I've followed in building my robot.

Step 1: How It Works - Video

Step 2: Parts & Tools

Components: - You might find it difficult to find all the parts that I have used

  1. .2x DVD player,
  2. Some plywood,
  3. Some wires,
  4. PCB,s,
  5. Cooling fan,
  6. Old inkjet printer,
  7. Carbon filter,
  8. Sensors,
  9. Blower,
  10. Glue for wood,
  11. Solder,
  12. Gel battery 12V 7Ah,
  13. Some screws with nuts,
  14. Hinges,
  15. Springs
  16. Rotary wheel,
  17. Sealing tape,
  18. Heatsink for LM350,

Some electronic components:

  • 2x Buz11 Mosfet , Buzzer , 2/16 HD44780 display, 100nF ceramic capacitors,2x7805 voltage regulator,8x Fast Diodes 1N4149 , Atmega 32, Some LED,s and 200 Ohm resistors for them,
  • Some Goldpins,100k Ohm Resistors,4017 counter, 1k Ohm resistors,BC-548 transistor, 2x10k potentiometer7xButton, HC-05 bluetooth module,HCSR-04 sonar,
  • Sharp GP2Y0D810Z0F,Pololu #2460,1000uF and 220uF electrolytic capacitors,6x ARC-2 connectors,LM350 voltage regulator1uF electrolytic capacitor, 240 Ohm resistor, Sockets for chips, Analog servo, 10k Ohm resistors,

You can check the exact amount of elements like capacitors and resistors on the schematics.


  • Dremel
  • Handsaw
  • Screwdriver
  • Wood file
  • Burner for welding
  • Pliers
  • Hot glue gun
  • etc

Step 3: Some Hardware and Frame

I used 6 mm plywood which allows me to make strong and light robot frame. Some parts are connected with glue and some with wood screws.Later you can paint it in the way you like.

Step 4: Motors

Robot is driven by two high speed DC motors with gears which are from DVD player- they have enough torque to move the robot which weighs about 5kg. I made a separate PCB for motor controller using thermal transfer method. Motor controller is made on L298N dual H-bridge wich can handle up to 2 amps per channel. Using square wave with variable filling generated by the microcontroller i can control speed of the engines .Wheels and axes are made from Lego bricks as y can see in the picture above. In addition, the cooling fan was used to cool down overheating engines. On the front of the robot i used a rotary wheel which allows robot to turn in every direction.

Step 5: Vacuum Cleaner

Vacuum cleaner is the most important part of my robot wich allows it to clean every floor.

It consists of :

  • Vacuum chamber (B)
  • Suction element (A)
  • Seal between the floor and the suction element(C)
  • Blower speed regulator with radiator(made on LM350) (F)
  • Blower (G),
  • Lid which allows you to empty the vacuum chamber of the dust and other impurities(I)
  • Carbon filter wich stops dust (H)
  • Tray for larger impurities (D)
  • Element for directing an air flow (E)

How it works:

Dust and other impurities are sucked in to suction element and later they go to the vacuum chamber. I used element for directing an air flow (E) which allows to separate lighter impurities from heavier ones wich settle in the tray (D) Dust is stopped by carbon filter (H) .Blower (G) creates enough suction that allows smooth operation of the vacuum cleaner with a relatively small power consumption.

The arrows illustrate the direction of air flow on the illustration above.

Step 6: Active Mop

Used system is made to mop the floor accurately and efficiently . The whole mechanism is made from processed part of an inkjet printer.I had to shorten this part and weld it again. Principle of operation: The mop moves sideways (it bounces from the edges) its moved by belt connected to a motor. Active mop driver is very simple it uses 4017 integrated circuit , you can see schematics in the picture above.

Step 7: Battery

I decided to use big car battery, because its easy to charge,it haves high capacity(7Ah) and its very cheap. This solution haves also disadvantages : its big and heavy- so i had to use better engines. Robot can work on fully charged battery for about 6 hours. Lithium-ion batteries are also a good choice. But they are quite costly and require a dedicated charger.

Step 8: Sensors Intro

My robot is equipped with following sensors that allow it to operate in completely automatic mode: HCSR-04 Sonar mounted on servo, IR proximity sensor (pololu #2460), Sharp GP2Y0D810Z0F digital IR proximity sensor ,Some Bumpers. In next steps i ll show how this sensors work and what they are supposed to do.

Step 9: Bumpers & Thick Carpet Sonsor

1 Bumpers(impact sensors) -

One of the primary sensors in each autonomous mobile robot . Robot can detect a collision with an object that was not detected by other sensors to prevent the engines from burning. CleanBOT is equipped with 3 bumper zones:

  • A - Left Bumper
  • B - Right Bumper
  • C- Coupled front bumpers

When robot collides with an obstacle it performs the following exercises:

  • C * Crash of the front - the robot goes back and then performs measurements with ultrasonic sonar to find the best way and then continues moving forward until it reaches the next obstacle
  • A * Crash of the left - the robot rotates 90 degrees to the right and then continues moving forward until it reaches the next obstacle
  • B * Crash of the right - the robot rotates about 90 degrees to the left and then continues moving forward until it reaches the next obstacle

2. Thick Carpet Sensor

Robot stops and go back when it detects thick carpet that could cause blockage of the robot or burn engines. The principle is very simple: it is a piece of bent wire (B) attached to the front bumper plate (E). After moving to the carpet wire presses on the bumper mounted on hinges (A) that presses the button (C). In all of the bumpers i have used additional spring (D) which triggers the bumper back to its previous position.

Step 10: Stairs Sensor

I have used sharp GP2Y0D810Z0F for detection of the stairs . Sharp sensor allows to detect a drop to prevent the robot from falling down the stairs. It is a digital sensor operating in the range of d = 2<-->10cm when the floor is in the sensor field of view (low state is at output) When sensor detects stairs, state on the output will be high. Once stairs are detected, the robot immediately is going back to safe distance and then it will continue to operate.

Step 11: Sonar Mounted on a Servo

By using the servo attached to sonar I can take measurements in the range of 180 degrees .

The robot determines the distance from obstacles in any direction and then decides which side has more "space" and begins to drive to this place until it finds next obstacle. On fig 2 above robot measures 3 distances d1 is the longest one so robot ll go over there. Number of measurements depends on the program you have written.

Step 12: IR Proximity Sensor

Pololu #2460 38kHz is an additional sensor designed to detect the obstacles which have not been detected by Ultrasonic sonar it provides more control over the area in front of the robot. With this sensor, it is also possible to detect small obstacles standing right on the floor for example cables and other flat things.

Step 13: Display

LCD display is coupled together with a micro controller. On the screen are displayed all important messages for the user. For example when you enable auto mode via Bluetooth display shows the message: "Auto Mode Enabled"

Step 14: Bluetooth & Smartphone App

Bluetooth with a smartphone has been achieved through HC-05 module that allows to comunicate with the microcontroller using serial transmission.

App on smatphone works in the following way: when you press button smartphone send one byte of information (one char)which is received by micro controller . The micro controller also sends the same byte back to the smartphone to check transmission errors. It is possible to: connect to and disconnect from the robot, manual control, enable and disable: auto mode, active mop , blower.

Step 15: Robot Brain

Main PCB is based on an 8-bit micro controller AVR Atmega32 which have its own power supply section . I made this PCB also with thermal transfer method. Program is written in C (GCC) and its completely based on interrupts. To receive and transmit data to Bluetooth i used built in hardware USART. The micro controller is clocked at a frequency of internal resonator 8 Mhz. PWM signal for steering motors and servo is generated by hardware timers. Pulse length of sonar also is measured with a hardware timer. Blower is driven directly from main PCB by Mosfet transistor.

<p>Approximately how long would this take to make?</p>
<p>depends on youre budget and you're will to make it</p>
why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why why iloved this robot but you autodeskers want money huh?of course i didn't make it . i want the pdf.... please
<p>how to detect if there is a dust or not in a floor??? pls reply</p><p>its my project and and am not getting idea for that</p>
Can u give circuit diagram and program and how u made it ideas
<p>Dust sensor? There are many different and all well-connected to the Arduino.</p>
Please can i get program and circuit diagram of full project with diagram of how to assemble the project
<p>Blower power: Roomba and Neato use most probably 1.1 m3/h (40CFM) motors for their blowers. Common vacuum cleaners operate in the range of 50 to 100 CFM.</p>
<p>I think you could save your self a bit of money, and make it more accurate by using a pi zero. It could create a image map of the room, and have that information stored along the process of its journey. Just a idea, what do you think?</p>
<p>whats d total cost incurred in making this?</p>
Heyy can u msg me ur whatspp num?. On my mail id
<p>Hey MosfetN, thanks a lot for this Instructable. I am looking forward to start building this tomorrow, but cannot find your source code anywhere (you specified that it is in the last step, 15, but I cannot see the downloadable file). Could you provide me with the source code? I will probably do several modifications. Thank you beforehands.</p>
<p>he has given only pdf files... are you taking about the same ?</p>
<p>by clicking the link below his username you can find the test program on his site: http://bytechlab.pl/artykul-2</p>
<p>Great job! But the steps lack specific instructions for someone to actually attempt to build this bot. A prime example is the missing software. Several other dimensions and specifications are missing ... so thanks but no thanks... to me this is an eyewash!</p>
<p>how did you program the modules?</p>
May I know what mobile apps u use in this project?
<p>Hello MosfetN? Could you please tell me the type and specifications of the fan you used in this robot for suction. I will really appreciate. Thanks in advance.</p>
<p>Actually I would like to know as well. At least someone can tell me about the specifications of the vacuum fans. Thanks</p>
<p>I dont have any specs of this blower excluding current and voltage rating :~ 1A and ~12V.</p>
<p>Hi, I am beginner in doing robot. May I know it that possible to use Arduino Uno R3 to control these electrical components? </p><p>Everyone are welcome to discuss here. Thanks a lot. </p>
<p>yes it is possible. The only challenge wold be to work with the few number of pins in the R3. You would better go for the arduino mega</p>
<p>Hi, thanks for the reply. Means that just worry the number of pin in R3 is no enough for this project? </p>
<p>Uno R3 has about 18 pins , for this project you need about 30 so it will be tricky to fit on this board, but it is still possible.</p>
<p>Hello, can i use a blower like this one? http://pt.farnell.com/sanyo-denki-sanace-fans/9bmb12p2k01/blower-97x33mm-12vdc/dp/2292897 fo</p>
<p>did you find a suitable blower? am alsolooking for one for a similar suction project</p>
<p>Does any one made a video for assembling ? </p>
<p>does any one listed from where we can buy each of the part ??<br><br></p>
<p>hi! i can't find the app, can you reply? </p>
<p>Where did you design the App from? Also, where is the code for the robot brain and how its connected(code for connection)?</p>
<p>Do you speak polish? Can I replace the motors from the dvd player with this servos?<a href="http://www.aliexpress.com/item/Free-shipping-1pcs-lot-MG995-55g-servo-Digital-Metal-Gear-rc-car-robot-Servo-48g-MG945/32232854457.html?spm=2114.01020208.3.12.dXjxo2&ws_ab_test=searchweb201556_2_79_78_77_80,searchweb201644_5,searchweb201560_9" rel="nofollow">http://www.aliexpress.com/item/Free-shipping-1pcs-...</a></p>
<p>Or with DC 12V 300RPM Mini Electric Metal Gear Motor?http://www.ebay.com/itm/DC-12V-300RPM-Mini-Electric-Metal-Gear-Motor-Gearwheel-N20-3mm-Shaft-Box-Motor-/321773207015?hash=item4aeb2d7de7:g:n1YAAOSwNSxVbtfH</p>
<p>Hi!Looks amazing,and the tutorial is also very well made.I suspect there has been a lot of creativity and knowledge poured under the hood of this robot. :)</p><p>I wanted to ask if it is possible to measure the distance travelled by the cleanBOT.</p><p>Thank you for sharing!</p>
Can u plz plz provide me the programme?
<p>Specifications of Blower?</p><p>and what about its power consumption??</p>
<p>Current draw is about 2 Amps with 12V power supply. I cant measure other specs of this blower ( for example: air flow or rotation speed ).</p>
<p>Where are schematics??</p>
<p>Sorry unfortunately I removed them. I have uploaded Schematics and PCB,s again ;)</p>
Hi! Very gook tutorial, I will try to do a robot just like yours. Can you help me with de app to control it? Thank you!
<p>Very well done! I intend to do something similar with an arduino board. Thanks for the inspiration ;)</p>
<p>This is really great. Do you provide the source code of the atmel program? C or Assembler?</p>
<p>Ok sorry you wrote its written in C... I'm interested in building the cleaning robot, if the source code is available, because I would play around with the code... and would perhaps build it without the mop. </p>
<p>Sorry, I'm new to this and I could use a wiring schematic. Thanks,</p>
<p>Great project .thank you for sharing , could you post iphone app ?</p>
<p>I have written this app only for android. I have uploaded this app into last step.</p>
<p>hate to be this guy but i think you should put more detail into your component list just so we know what specific &quot;Some electronic component&quot; to get </p>
but.....does it vacuum?
Well done! A DIY roomba with all its features!

About This Instructable




More by MosfetN:CleanBOT- Your DIY floor cleaning robot 
Add instructable to: