The Ultimate Floor Cleaning Robot (v2.0)

NextPCB
6 min readFeb 17, 2022

Introduction: The Ultimate Floor Cleaning Robot (v2.0)

Around 5 years back I made a Floor Cleaning Robot ( CleanSweep) from scratch, which was a hit and a lot of people followed the guide and tried making their own robot. But that design actually had some flaws. So last year I had to make my Engineering Mini Project and I decided to work on the same idea but with some improvements. However, it is quite ironical that even after 3 years of university I worked on the same project that I built when I was in school (lol).

In this instructable, I will present you Version 2.0 of the Floor Cleaning Robot, with some improvements over the previous version. This one is also controlled from a phone app via bluetooth but here I have also added autonomous control (which a lot of people requested). I used 3 ultrasonic sensors- one looks at the front, one looks left and one looks right. A latching switch is used to switch between Autonomous and Manual Mode. The roller at the back was useless so I removed it. The 2 rotating mops at the front obstructed movement so I replaced that with a single fixed mop. Apart from that I also added an LCD display (which is optional) for displaying commands or debugging. I also used lithium-ion batteries instead of a bulky lead acid battery which gives us more capacity and smaller size. We can also control the flow of water for which I used glucose drip infusion mechanism.

In short here are the changes I made compared to the previous version:

  • Added Autonomous Mode
  • Fixed mop instead of rotating ones
  • Removed roller and servo motor
  • Added LCD Display
  • Used Lithium-ion Batteries instead of lead acid
  • Used Arduino Nano (cheaper and smaller in size) instead of Uno
  • Added Water Flow Control

I have tried to make the instructions as clear as possible. I hope you find this guide useful.

A video guide of this project will be uploaded soon.

Meanwhile you can Subscribe to my YouTube Channel if you haven’t.

____________________

Thanks to NextPCB for helping me with this project.

NextPCB is one of the most experienced PCB manufacturers globally. It has specialized in the PCB and assembly industry for over 15 years. Not only could NextPCB provide the most innovative printed circuit boards and assembly technologies in the highest quality standards, the fastest delivery turnaround as fast as 24 hours.

If you have a PCB project, please visit their website and get exciting discounts and coupons!

Only 0$ for 5–10pcs PCB Prototypes: https://www.nextpcb.com/?code=Kumar

Register and get $100 from NextPCB: https://www.nextpcb.com/register?code=Kumar

See more info about PCB Assembly Capabilities: https://www.nextpcb.com/pcb-assembly-services

Step 1: Prepare the Base

We start by preparing the chassis or base of the robot. I used 6mm thickness plywood as the material. I have attached a very basic 2D CAD layout so you can follow that.

First, the plywood was cut using hacksaw. Then I used a flat file to round the two corners at the front. After that I sanded all the corners with some sand paper and finally spray painted the base black.

Step 3: Attach Wheels

First drill a hole for the motor wires to pass through.

Then attach the wheels to motor by fastening the screw on wheel with the motor shaft.

Step 5: Circuit Diagram

I have attached the complete circuit diagram with all the parts. You will have to follow it for the next few steps. Have a look at it very carefully. If the above image is not clear, you can download the high quality pdf version from below.

1K and 2K resistors are conneced to Tx pin on arduino to create a voltage divider, since the HC-05 bluetooth module works on 3.3V logic level but arduino would give 5V signals which might damage the bluetooth module.

If you don’t want to use an LCD, just don’t connect it. The project will still work perfectly without any changes in wiring or code.

The circuit was designed using Fritzing.

Step 12: Attach the Mop to Base

Attach the mop to the robot via the hole that we drilled earlier and with lots of hot glue.

Place the water outlet pipe on the mop such that water falls directly on it.

Step 13: Upload the Code

I have attached the code for this project. You can download it from below.

Before compiling it, you will need to install 2 libraries- one is for the ultrasonic sensors and other for the LCD.

  • So go to Sketch > Include Library > Manage Libraries
  • Under the search bar type ‘NewPing’
  • Install the NewPing library by Tim Eckel
  • Similarly search for ‘LiquidCrystal’
  • Install the LiquidCrystal library by Arduino (in newer versions of IDE it might be already intalled)

Now, to upload the code, first you will need to remove your arduino from the circuit. Why? Because there should not be anything connected to Rx and Tx wires of Arduino while uploading a code and here we have our bluetooth module connected. So either remove Rx and Tx wires from bluetooth module before uploading or remove the entire arduino from circuit and then upload. After it’s done uploading, you can put everything back in place.

Step 15: Testing & Troubleshooting

After everything is done, it’s finally time for testing. Turn on your robot and check if the LCD displays ‘Welcome’ message. If it doesn’t, try tuning the trimmer pot or recheck your connections.

On your phone, turn on Bluetooth and search for devices. Pair up with HC-05. Password will usually be ‘0000’ or ‘1234’.

Now check if on pressing a button on your phone is moving the robot. If it doesn’t move, check if the command is displayed on LCD. If the LCD is displaying correctly but there is no movement, that means Arduino is receiving the command correctly. It can then be a problem with your motor driver connections.

If neither does the robot move nor it displays anything on the LCD, then check if your bluetooth module is connected properly. Tx wire on bluetooth module goes to Rx on arduino and vice versa. Also, check if you have set the commands on the app properly (refer Step 14).

Step 16: Conclusion

You can try further improvements to this project by making it WiFi controlled or maybe making the algorithm more intelligent. The algorithm that I used for autonomous mode is very basic and it fails sometimes which makes the robot move in a loop. You can try making some improvements to the code and probably suggest me as well!

One more problem that I faced was when the mop was drenched with water, it would be so heavy that the wheels would slip wouldn’t push the robot. This limits us to only moderately wet the mop. We can probably solve this using some higher power motors or larger wheels, or putting more weight on the robot such that there is more traction and it doesn’t slip.

I am always in for any questions or tips.

You can comment below or send me an email: saiyamagr@gmail.com

Follow for more.

Thanks for reading! :)

Originally published at https://www.instructables.com.

--

--