robotic vacuum cleaner

Not rated 18,017

Circuit Image

A robot has been designed and built to vacuum the floor of a room or area autonomously, requiring only the initial activation by a user. This project addresses the demand for an affordable and user-friendly product that can independently vacuum a room, thereby saving time for the user. The robotic vacuum is primarily constructed from a circular piece of foam board. It employs a rotating brush located beneath the unit to clean carpets as it moves across them. Two stepper motors, positioned along the central axis of the robot, are utilized to drive the robotic vacuum accurately around a space. The circular design allows the robot to pivot in any direction. A free-spinning chair wheel is attached to the rear to maintain balance. The robot is programmed to detect collisions with obstacles using an onboard accelerometer. Upon encountering an obstacle head-on, it will reverse and alter its direction. If an obstacle is hit at an angle, the robot will turn away from the point of impact. The movement pattern of the robotic vacuum follows a random walk strategy, which theoretically enables it to cover the entirety of a room over time. The robot continues moving straight until it collides with an object, at which point it turns and resumes forward motion until it encounters another obstacle. This project draws inspiration from existing robotic vacuum cleaners, such as the Roomba®. Current models on the market from manufacturers like iRobot and Electrolux can cost as much as $1700. The challenge was to design and build a device capable of performing similar functions for a budget of $50. The team identified available supplies and equipment, realizing that the robot could be constructed using an accelerometer, several motors, and a microcontroller, among other components. While considering obstacle avoidance, it was determined that infrared sensors would be prohibitively expensive and unnecessary. The accelerometer is capable of detecting slight collisions with obstacles, allowing the microcontroller to execute programmed responses. Given that stepper motors are used, it is theoretically feasible to calculate the distance traveled by each wheel and perform room size estimations, which could be utilized in an algorithm to enhance area coverage. However, a torque issue was identified due to the wheels occasionally slipping on carpet surfaces, rendering accurate distance measurement impractical. Consequently, the robot relies on a random walk approach, where it changes direction upon colliding with obstacles until the entire room is vacuumed. Initially, the robot was designed solely for carpet sweeping. A carpet sweeper, which collects debris as it moves across the floor, is not inherently motorized. If the sweeper fails to adequately collect debris, it can be motorized using a DC motor. Following testing, the decision was made to motorize the sweeper for additional efficiency. The system is powered by a 9V battery connected via a battery clip that outputs 3V, which supplies power to the accelerometer. The Mega32 microcontroller is directly linked to the battery clip. The accelerometer's signal is fed into the microcontroller's analog-to-digital converter, with the x-axis output routed to port A0 and the y-axis output to port A1 on the Mega32. After processing the data, the microcontroller sends commands to the stepper motors and the DC motor.

The robotic vacuum circuit design integrates several key components to achieve its operational goals. The heart of the system is the Mega32 microcontroller, which acts as the central processing unit. This microcontroller is responsible for interpreting the data received from the accelerometer and generating commands for the motors based on the robot's movement and obstacle detection.

The accelerometer, connected to the Mega32, provides real-time feedback on the robot's orientation and movement. Its outputs are processed through the microcontroller's analog-to-digital converter, allowing for precise calculations regarding the robot's position relative to obstacles. The stepper motors, which drive the robot's movement, are controlled via the microcontroller's digital output pins. These motors allow for accurate positioning and movement control, enabling the robot to navigate its environment effectively.

The DC motor is employed to power the rotating brush underneath the robot, enhancing its vacuuming capability. The motor's speed and operation can be adjusted through the microcontroller, allowing for optimal performance based on the surface being cleaned.

Power management is facilitated by the 9V battery, which supplies energy to the entire system. The battery clip's 3V output is specifically utilized to power the accelerometer, ensuring that all components function harmoniously without power fluctuations that could affect performance.

Overall, this robotic vacuum design emphasizes simplicity and cost-effectiveness while incorporating essential features for autonomous operation. The combination of stepper motors for mobility, an accelerometer for collision detection, and a motorized brush for cleaning creates a functional prototype that adheres to the project's budgetary constraints and operational goals.We decided to design and build a robot capable of vacuuming the floor of a room or area without any human interaction other than just starting the unit. We realized the need for a cheap and convenient product that can be easily used to vacuum a room on its own, saving a person valuable time.

The robotic vacuum is mainly built from a circular piece of foam board, as shown in Figure 1. The robotic vacuum uses a rotating brush underneath the unit to vacuum a carpet as it passes over it, as shown in Figure 2. Two stepper motors, aligned across the center axis of the robot, are used to accurately drive the robotic vacuum around a room.

Because the body of the robot is circular and the steppers are placed along the center axis, the robot can spin in place in any direction. One free-spinning chair wheel is located at the rear of the robot to keep it balanced. The robot is programmed to sense the direction of a collision with an obstacle using an onboard accelerometer.

If the robotic vacuum hits an object head-on, it backs up and changes direction. If an obstacle is hit at an off-angle, the robotic vacuum turns away from the direction of the impact. The robotic vacuum`s movement is based upon a random walk around a room, which theoretically will cover the entire area of a room given enough time.

The robot is programmed to drive straight until an obstacle is hit. At that point, it will turn and continue driving straight until another obstacle is hit, and so on. Our project was inspired by an existing robotic vacuum cleaner, the Roomba ®. Current robotic vacuum cleaners on the market, produced by iRobot and Electrolux, can cost up to $1700. The idea of a designing and building a device that can perform the same functions as the existing market brands on a budget of $50 was a challenge that we wanted to take on.

We had an idea of the supplies and equipment available to us and realized that our robot could be built using an accelerometer, several motors and a microcontroller, among various other pieces of equipment. We considered obstacle avoidance, but realized that IR sensors would be too expensive to implement and would not be necessary.

A slight collision with an obstacle could be detected by our accelerometer, and the appropriate response could be programmed with our microcontroller. Because we are using stepper motors for our bot, it is theoretically possible to determine the distance traveled by each wheel and perform room size calculations, which could have been inputted to an algorithm to better cover the room.

However, we discovered a torque problem when we realized that the wheels sometimes slip on the carpet surface, and other times do not move at all. Because of the torque inconsistencies, proper distance determination would not have been possible, so our only option for covering an entire room was to use a random walk in which the robotic vacuum collides with an obstacle and heads off in a different direction until the room is vacuumed.

Initially, this bot was designed with only a carpet-sweeping function in mind. A carpet sweeper, which picks up trash as it is swept across the floor, is not a motorized device. If the carpet sweeper did not satisfactorily pick up trash off the floor, we would motorize it to spin using a DC motor. After some testing, we decided to motorize the sweeper for other reasons. The 9V battery clip can hold one 9V battery. The clip contains a 3V output, which is connected to the accelerometer`s Vcc connection. The Mega32 MCU is directly connected to the battery on the battery clip. The signal from the accelerometer is inputted into the MCU`s analog to digital converter. The x-axis output is sent into port A0, and the y-axis output is sent into port A1 on the Mega32. After several calculations are made, the MCU sends the appropriate commands to the stepper motors and DC motor.

The stepper motors and DC motor are conne 🔗 External reference