Introduction: CLEANBOLT
Hi I am Vishnu,
In this instructables I will show you how to make a complete floor cleaning robot.
this robot is a 5 in 1 robot it can,
- mop the floor with water
- clean dust with vacuum cleaner
- collect non dust waste
- clean floor with brushes
- dry the floor
materials required : robot body ( I made it with a forex board ), sponge, forex board, bottle, small hose, two cooler fans of computer, two dc toy motors, old painting roller, ultrasonic sensor, l293d motor driver, two arduino nano boards, seven gear motors, six wheels, two servo motors, two small dye brushes, medical IV set, a cup
Step 1: Making Vacuum Cleaner
take a bottle put a hole to the bottom and insert a toy motor through it. Attach a cooler fan to it. make another hole on the lid of bottle and insert the small hose to it. Also put some small holes to the backside of the bottle for giving the air outside. Give the proper wiring.
Step 2: Making the Mopping Machine
Take two wheels , cut out a round piece from sponge and glue it to the wheel. Make two such mops and fix it to the gear motors. Place this setup inside a rectangular box. Give the proper wiring.
Step 3: Making of Water Drip System for Mop.
take a plastic cup make two holes in it and glue the two medical IV set to it. Glue this cup on the inner part of robotic body. You can dd a funnel for filling water. Place the to outlets of IV set in front of the mopping wheels.
Step 4: Making the Non Dust Collector
Make a box with forex board attach two gear motors to the side of the box. then we should make a 'Y' shaped rotor as shown in third image. Glue this rotor to the gear motor and give proper wiring.
Step 5: Make Hands and Glue the Small Brushes to Both the Hands As Shown.
Step 6: Making the Floor Drier
attach a fan to the dc motor and glue it to the backside of the robotic body also attach the old painting roller below it.
Step 7: Programming Arduino for the Movement of Robot
///FOLLOW THIS PROGRAM, CONNECTIONS ARE GIVEN HERE
const int trig=12;//TRIG PIN TO 12
const int echo=11;ECHO PIN TO 11
const int LF = 2;//OUTPUT 1 OF L293D TO 2
const int LB= 3; //OUTPUT 2 OF L293D TO 3
const int RF = 4;//OUTPUT 3 OF L293D TO 4
const int RB = 5;//OUTPUT 4 OF L293D TO 5
int duration = 0;
int distance = 0;
void setup() { pinMode(trig , OUTPUT);
pinMode(echo , INPUT);
pinMode(LF , OUTPUT);
pinMode(LB, OUTPUT);
pinMode(RF , OUTPUT);
pinMode(RB , OUTPUT);
Serial.begin(9600);
}
void loop() { digitalWrite(trig , HIGH);
delayMicroseconds(1000);
digitalWrite(trig , LOW);
duration = pulseIn(echo , HIGH);
distance = (duration/2) / 28.5 ;
Serial.println(distance);
if ( distance < 20 )
{ digitalWrite(LF , LOW);
digitalWrite(LB , HIGH);
digitalWrite(RF , HIGH);
digitalWrite(RB , LOW);
delay(100); }
else
{ digitalWrite(LF , HIGH);
digitalWrite(LB , LOW);
digitalWrite(RF , HIGH);
digitalWrite(RB, LOW); } }
Step 8: Program for Servo Motor for Hands
#include<Servo.h>
Servo myservo1;
Servo myservo2;
Servomy servo3;
int servoPos = 0;
void setup()
{ myservo1.attach(3);
myservo2.attach(9);
myservo3.attach(10); }
void loop(){
for(servoPos = 0;servoPos < 180;servoPos++)
{ myservo1.write(servoPos);
myservo2.write(servoPos);
myservo3.write(servoPos);
delay(100); }
for(servoPos = 180;servoPos > 0;servoPos--)
{ myservo1.write(servoPos);
myservo2.write(servoPos);
myservo3.write(servoPos);
delay(100); } }