Introduction: Robot Vacuum Floor Cleaner

Picture of Robot Vacuum Floor Cleaner

The robot cleans floor using vacuum produced by tiny computer cooler turbine. Automatically roaming in the room avoids furniture and walls. Assembled during weekend.

Step 1: Use Any MCU Controller and DC Motor Driver to Control the Robot

Picture of Use Any MCU Controller and DC Motor Driver to Control the Robot

Any MCU with DC motor driver suit to control this robot. The robot is controlled by AVR Atmega48 with L293D motor driver which were assembled on the prototype board.
Because L293D warms pretty much an aluminium heat sink is mounted on it.
The 6 volts accumulator is used as a power supply.
L7805 5 volts regulator is to supply valid level power to the controller circuit.
This controller could have less contacts - this board was made to be used in other prototyping.
This ATMega MCU was programmed by BascomBasic.

Step 2: Step-up DC Power Converter

Picture of Step-up DC Power Converter

The step-up DC converter was assembled  on the controller board because a computer cooler turbine requires 12 volts but the accumulator provides only 6 volts. The MC34063A chip was used. There are online calculators to define required component values (like this one).

Step 3: Reverse Side of the Controller Board

Picture of Reverse Side of the Controller Board

All connections were made by soldered wiring.
Resistor are to limit current between bumper contacts and MCU input pins.
The circuit is sort of  "reverse engineered" by a soldered board (as I lost the original schema).

Step 4: Plastic Jar As a Cover Case

Picture of Plastic Jar As a Cover Case

A plastic jar (or basket) is used as a cover case. Part of this will be used as bumpers.

Step 5: Assembling

Picture of Assembling

The case from plastic jar defines the size of the robot. Draw the circuit in jar size and assemble all robot parts inside it.
For such work it's easy to use steel belt for wall mounting works.
Motors, gears and wheels are from toy car.
Computer cooler turbine is mounted on the cardboard box.

Step 6: Dustbin

Picture of Dustbin

A kitchen napkin made from nonwoven fabric is situated inside the cardboard box with the turbine. It is a dustbin. This fabric can be easy replaced.
Air with dust comes into the aperture in the bottom of the dustbin box and goes out  through the fabric which collects dust.
A tiny wheel for furniture is mounted as a third supporting point.

Step 7: Bumpers

Picture of Bumpers

Bumpers are to define obstacles on the robot's way - like walls and furniture. The bumpers are cut direct in the case. Behind the bumper surfaces copper wires are mounted as bumper contacts. These contacts are connected to MCU input pins.

Step 8: The Robot in Action

Picture of The Robot in Action

In the video robot collects pretty much dust.
The attached program is written in Bascom Basic. It could be even shorter but this one contains extra code which avoid the robot be stack in corners for a room. The program was found among other versions, so I'm not sure it was latest one.


HamiltonR5 (author)2017-04-24

do have any project using stm32

revrekad (author)HamiltonR52017-04-24

I have not used STM32. In my other instructions I described projects with Arduino board and their programs are pretty simple - I think STM32 should work with it. Example how to setup STM32 based prototyping board with Arduino IDE:

SYAZREENI (author)2016-03-04

can you contact me at really important for me. please

AidaO1 (author)2015-12-07

Did u use any pic? What type is it?

revrekad (author)AidaO12015-12-07

Any MCU with DC motor driver suit to control this robot. The robot is controlled by AVR Atmega48 with L293D motor driver

FadzilahI (author)revrekad2016-02-04

did u have any circuit using pic microcontroller?

revrekad (author)FadzilahI2016-02-04

no, I used only atmega MCU (including those within Arduino - in my other instructions)

KiranK37 (author)2015-10-25

any sensors used???

revrekad (author)KiranK372015-10-25

Only touch sensors (bumpers).
For ultrasonic sensors there is an instructable

재송 (author)2015-09-23

I'm not good at English. Sorry

5V 4500rpm fan is okay to cleanning?

revrekad (author)재송2015-09-24

This might be ok to clean light dust from the hard floor (not sand), but most likely it would not clean a carpet (without rotating brush).

VishalM7 (author)2015-08-27

sir i want block diagram and circuit diagram of it email id

revrekad (author)VishalM72015-08-27

Circuit is in the step 3

There is no block diagram

Cat Adalay (author)2015-05-13

This is great :) How much did this project cost you?

revrekad (author)Cat Adalay2015-05-14

On this project I spent less money but more efforts (including learning and soldering):

Atmega $2
Motor-driver $2
Motors with gears and wheels from a toy $2
Battery $8
Rest electronics components and materials $10
Total ~$24

On this project I spent more money but less efforts:

Arduino $8.
Motor-shield $10.
Motor 2 х $8
Wheel 2 x $4
Turbine $5
Battery $8
Magnets $2

Total ~$50

JosephChanceWatkins (author)2015-05-11

This is absolutely awesome. Thanks for sharing the schematic and details; Jesus Christ Bless! :)

aiviegonzalvo (author)2015-01-28

IS THERE ANY ay that i can make use of arduinos on this project, got no ideas on how to start it, specially that i got 2 weeks left before the submission of the project, i wanna do this project same as yours, but the problem is the other equipments arent available here in my country. Please help me, hope you can give me an alternative on how to do it with arduinos, and maybe please give me clear lead on how to this project as i have no much backgrounds on arduinos or anything. Thank you, just really need help please reply.

cooldharap (author)2014-11-27

Sir i want to program it by myself in assembly language using 8051 mcu .... could you please send me the algorith and flow chart on - .... thank you in anticipation

revrekad (author)cooldharap2014-11-30

This algorithm is for two bumpers and two motors. It is simple but the issue is - when a motor turned backward - it does not check sensors during 2 seconds.

This algorithm is for one motor and one bumper (for second bumper and second motor it is the same). This algorithm waits only 20 milliseconds between checks of sensors.



TheMrGamer (author)revrekad2014-12-01

Thank you so much sir for being so responsive everytime you have been asked any question ....algorithm is indeed very useful (i wil go with the two motor one which seems easier) ..... and one more question is whether the pulse width modulation is compusory at pins 1 9 of l293d ... can just tie them high and let the motor run at a constant speed. ? Thanks again

revrekad (author)TheMrGamer2014-12-02

According TI's datasheet


you can connect these Enable inputs to 5V over 10kOhm resistor.

dfatani (author)2014-11-22

i need to contact you ASAP, can you contact me at this mail:

ak03015256053 (author)2014-11-18

What path he followed in a room?

ak03015256053 (author)2014-11-17

Sir can u tell me . How robot detects the position and also navigate obstacle .

How robot knows the dust is present or not in room.

revrekad (author)ak030152560532014-11-17

This is very simple robot. It navigates using bumpers - when a bumper hits the obstacle, the robot turns a bit and tries to move forward til next bumper's hit.

It also do not know about existence of dust.

ak03015256053 (author)2014-11-17

Can u mail me at

C7950 (author)2014-10-27

Can I use 12v battery to power up the fan directly instead of using MC34063A?

revrekad (author)C79502014-10-27

Different fans may have different voltages (5V, 12V, 24V, etc.). If the fan supposed to be powered by 12V - It should be possible to power with 12V battery, correct.

C7950 (author)revrekad2014-10-27

May I have your fan's current rating and rpm?

revrekad (author)C79502014-10-28

I do not remember exactly. I think i should be about 0.15 A and 2000 RPM. If search on ebay "Turbine Brushless Fan 12v" - it's possible to find more or less correct specifications of many different models of fans.

C7950 (author)revrekad2014-10-29

Thank you for your prompt reply. It helps a lot on my project.

KenJ1 (author)2014-10-20

Absolutely great! However, If you want to buy a robotic vacuum
cleaner, I suggest you the bObsweep. If you aren't sure about it, I suggest you
to watch this video and to see how the bObsweep deals with the hard-to-clean
pet hair:

aqil.rafiqy (author)2014-09-14

what sensor you used in this project

revrekad (author)aqil.rafiqy2014-09-14

Contacts - buttons S1, S2, S3 on the circuit. Bumper pushes copper wires behind of it to contact them to a metal stripe.

revrekad (author)revrekad2014-09-14

on minute 6:50 it's shown how contacts work (the link to start video from this time didn't work).

cooldharap (author)2014-07-17

what is J4 for (across the accumulator)

revrekad (author)cooldharap2014-07-17

accumulator is connected to the circuit via J4

cooldharap (author)revrekad2014-07-18

thank u for replying so early ........ how much rpm motor should i look for ... and i am kind of new at making such projects so i need some extra guidance ... if u could provide me with some more detailed analysis on - it would be very very helpful sir ... thank u so much for such an amazing and useful robot

revrekad (author)cooldharap2014-07-19

Needed RPM depend on the diameter or wheels and capacity of a fan (how quick the fan can collect dust: more time needed to collect dust - with less speed the robot have to run).

With my later projects: 50 RPM on wheel is very slow running. Personally I'd prefer around 150-200 RPM.

ncường4 (author)2014-05-06

Hi revrekad ! your project is awesome. I want to ask you a few questions.
1 - In your project use the DC FAN BRUSHLESS MOTOR. it has 3 pin. so i don't see they connected in circuit ? and how to work the IC MC34063 ?
2- I want to control the fan by PWM . can you help me ?
thank you !

revrekad (author)ncường42014-05-20

Computer coolers I used have only 2 wires: GND and Power (+5 or +12V). Third wire probably a signal from tachometer - to measure a rate of speed.

I did not control the fan but quick search found a document titled "Why and How to Control Fan Speed for Cooling Electronic Equipment" where it's explained some details about cooler fan controlling.

Attached circuit shows how I used MC34063 to step-up 5 volts to 12 volts

nlarug (author)2014-04-21

help me to high power vacuum 12v can i do? helped me a lot...tnx

revrekad (author)nlarug2014-04-23

could you tell about some details?

nlarug (author)2014-04-21

help me to high power vacuum 12v can i do? helped me a lot...tnx

achal16 (author)2014-02-21

thank you very much for sharing this project. it helped me a lot.

the only thing i got stuck in HOW TO MAKE THAT DUSTBIN. its still not clear to me.

please help me. i will be obliged.

achal16 (author)2014-02-05

can i connect more bampers instead of 3 for better performance.

if yes, then where to connect them in circuit.

DannaFebielou (author)2013-11-30

Sir,,can i ask if i can order this .. and if ever i can buy a ready made.and the price of it... im interesting of this because i can see theres a circuit diagram.. contact me in this email or my PM me in my Fb account

giliyance (author)2013-11-21

due to technical reason i was not able to post my query.sir can u pls explain a bit concept of jumper u used as a sensor,though i already know it used to avoid wall,chair etc nd made of copper wire,conected to mcu pin,that i know but how it works?what happened when jumper will get pressed?what's effect on pcu?i mean how this jumper work as sensor?moreover can u pls explain in simple language (in short) a logic u used for this one jumper sensor,i found difficulty in understanding of this logic given below
'if right or front sensors are pressed - turn left
If Dright = Pressed Or Front = Pressed Then
'check if we just turned right
If Turn_left_counter > 0 Then
Gosub Go_backward
Waitms Go_backward_time
Gosub Turn_left
Waitms Long_turn_time
Gosub Turn_left
Waitms Turn_time
End If
Gosub Go_forward
Turn_right_counter = Turn_limit_count
Turn_left_counter = 0
End If
thank u..

revrekad (author)giliyance2013-11-21

According the circuit MCU's pins 23, 27, 28 are connected to 5v through resistors R8, R9, R10 (they can be ~10kOhm) - so these pins have logical "1". When a bumper (one of copper wires) touches ground (GND) - logical "0" is set on pins connected to such bumper.

About This Instructable




More by revrekad:Another cardboard robot-vacuum-cleaner controlled with ArduinoHow to create 3D model of mechanism3D models of gears for 3D printing
Add instructable to: