Самодельный робот-пылесос


Автомобильный пылесос, контроллер 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


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение