The CleanBOT ( Autonomous sweeping robot with remote control) The design cleans the floor in two different ways: a vacuum or an active mop. It has auto mode, but you can also control it manually using Bluetooth connection and android app. Most of the components of the robot are made of electronic waste, for example: old inkjet printers. This has greatly reduced the cost of the robot. The current cost of the robot is 50- $60 depending on how many parts you already have. In this incredible process, I will guide you through the steps I followed when building the robot. Components: - You may find it difficult to find all the parts I have used some electronic components: you can check the exact number of components such as capacitors and resistors on the schematic. Tools; I used 6mm plywood so that I could make a sturdy and lightweight robot frame. Some parts are connected with glue and some with wooden screws. Later you can draw it the way you like. The robot is driven by two high speed DC motors with DVD player gears- They have enough torque to move robots weighing about 5 kg. I made a separate PCB for the motor controller using the heat transfer method. L298N dual H motor controller Bridge wich can handle up to 2 amps per channel. Using the square wave generated by the MCU with variable filling, I can control the speed of the engine. The wheels and shafts are made of Lego blocks, as shown in the figure above. In addition, the cooling fan is used to cool the engine that is overheating. In front of the robot, I used a rotating wheel that allows the robot to turn in all directions. The vacuum cleaner is the most important part of my robot that cleans every floor. It includes: How it works: dust and other impurities are sucked into the suction element and then into the vacuum chamber. I use elements to guide the airflow (E) It allows the separation of lighter impurities from heavier impurities deposited in the tray (D) Stop dust with carbon filter (H). Blower (G) Create enough suction to allow the vacuum cleaner to run smoothly with relatively small power consumption. The arrow illustrates the direction of the airflow in the illustration above. The system used can drag the ground accurately and effectively. The whole mechanism is made of the processing part of the inkjet printer. I have to shorten the part and weld it again. Operation Principle: horizontal movement of mop ( It bounces from the edge) It moves by a belt connected to the motor. It uses the 4017 integrated circuit and you can see the schematic diagram in the picture above. I decided to use the big car battery because it is easy to charge and has a large capacity (7Ah) And it\'s cheap. There are also disadvantages to this solution: it\'s big and heavy So I had to use a better engine. The robot can work on a fully charged battery for about 6 hours. Lithium- Ion batteries are also a good choice. But it\'s expensive and requires a special charger. My robot is equipped with the following sensors to allow it to run in fully automatic mode: HCSR- Mounted on servo, infrared proximity sensors (pololu 2460) Digital infrared proximity sensor, some bumpers. In the next steps I will show how this sensor works and what they should do. 1 Bumpers(impact sensors)- One of the main sensors of each autonomous mobile robot. The robot can detect collisions with objects not detected by other sensors to prevent the engine from burning. When a robot collides with an obstacle, it does the following exercises: 2. When a thick carpet sensor robot detects a thick carpet that may cause the robot to block or burn the engine, it stops to go back. The principle is very simple: it is a curved line (B) Attached to the front bumper board (E). After moving to the carpet press line on the bumper mounted on the hinge (A) Press the button (C). I used extra springs in all the bumpers (D) Bring the bumper back to its original position. I used the sharp GP2Y0D810Z0F to detect the stairs. To prevent the robot from falling down the stairs, the sharp sensor allows to detect the drop. It is a digital sensor that works in the range d = 2 10 cm when the floor is in the sensor field of view ( Low output) When the sensor detects the stairs, the state on the output will be high. Once the stairs are detected, the robot immediately returns to the safe distance and then continues to run. By using a servo attached to the sonar, I can make measurements in the range of 180 degrees. The robot determines the distance from the obstacle in any direction, then decides which side has more \"space\" and starts to drive to this place until the next obstacle is found. In Figure 2 above, the robot measures 3 distances and d1 is the longest, so the robot will go there. The number of measurements depends on the program you write. Pololu 2460 38 kHz is an additional sensor designed to detect obstacles not detected by ultrasonic sonar, which provides more control over the area ahead of the robot. Using this sensor, it is also possible to detect small obstacles standing on the floor, such as cables and other flat objects. The LCD display is connected with the micro controller. All important messages from the user are displayed on the screen. For example, when you enable automatic mode via a Bluetooth display, the following message is displayed: via HC- 05 module, allowing communication with the micro-controller using serial transmission. The app on Smatphone works the following way: when you press the button, the smartphone sends a byte of information (one char) Received by the micro controller The micro-controller also sends the same bytes back to the smartphone to check for transmission errors. Can: connect to and disconnect the robot, manually control, enable and disable: automatic mode, active mop, blower. Main PCB based on 8- It has its own power section. I also made this PCB with heat transfer method. Program written in C (GCC) Based entirely on disruption. In order to receive the data and transfer it to Bluetooth, I used the built-in hardware USART. The frequency of the micro-controller is 8 Mhz. The PWM signal of the steering motor and servo is generated by the hardware timer. Measure the pulse length of the sonar with a hardware timer. The blower is driven directly from the main PCB by a Mosfet transistor.