Автомобильный пылесос, контроллер Arduino, несколько датчиков, мотор-редукторы с колёсами, драйвер двигателей (например — L293D) и батарея — вот и всё, что понадобится для сборки самодельного робота-пылесоса.
Программа робота-пылесоса
#define trigPin 12
#define echoPin 13
#define ir1 7
#define ir2 6
void setup()
{
Serial.begin(9600);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ir1, INPUT);
pinMode(ir2,INPUT);
}
void loop()
{
int duration, distance;
int flag,val1,val2;
val1=digitalRead(ir1);
val2=digitalRead(ir2);
Serial.println(val1);
Serial.println(val2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance >= 200 || distance <= 0){
Serial.println("Out of range");
}
else {
Serial.print(distance);
Serial.println(" cm");
}
delay(500);
if (distance >=20)
{
delay(100);
Serial.println("forward");
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(150);
Serial.println("STOP");
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}
if (distance<=20)
{
if (val1==1 )
{
Serial.print("turn right");
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(2000);
}
if (val2==1)
{
Serial.print("turn left");
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
delay(500);
}
}
if(distance<=10)
{
Serial.print("rearrange back");
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
delay(1000);
Serial.print("rearranged left");
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(100);
}
if (distance<=20)
{
Serial.print("Algorithum");
Serial.print("free right");
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
if(val2==0)
{
Serial.print("smart adjust");
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
delay(500);
}
}
}
Ссылки
DIY Smart Vacuum Cleaning Robot using Arduino
По теме
Самодельный робот-пылесос на базе Arduino
Робот пылесос - Часть1: Механика
Самодельный робот-пылесос v. 2.0. Часть 1: Корпус, турбина, механика
PANDA - самодельный робот-чистильщик на базе Arduino и 3D-печати
Разбираем робот-пылесос iRobot Roomba Sage 4110
