Робот для очистки пола на основе Arduino и ультразвукового датчика

Чистящие роботы различных конструкций стали достаточно популярны в настоящее. Одна они пока достаточно дорого стоят. В этой статье мы рассмотрим создание робота для очистки пола на основе Arduino и ультразвукового датчика, который обойдется вам очень дешево. Данный робот способен обнаруживать препятствия на своем пути и объезжать их, убирая таким образом всю комнату. Для очистки пола у него снизу прикреплена небольшая щетка. Также на нашем сайте вы можете прочитать статью про чистящий робот пылесос на основе Arduino.

Внешний вид робота для очистки пола на основе Arduino и ультразвукового датчика

Необходимые компоненты

  1. Плата Arduino Uno R3.
  2. Ультразвуковой датчик (купить).
  3. Шилд (плата расширения) драйвера двигателей для Arduino.
  4. Колесное шасси робота.
  5. Компьютер (для загрузки программы в плату Arduino).
  6. Батарея для двигателей.
  7. Источник питания (Power Bank) для Arduino.
  8. Обувная щетка.

Принцип работы ультразвукового датчика HC-SR04

Внешний вид ультразвукового датчика HC-SR04

Ультразвуковой датчик HC-SR04 в нашем проекте используется для измерения расстояний в диапазоне 2-400 см с точностью 3 мм. Датчик состоит из ультразвукового передатчика, ультразвукового приемника и схемы управления. Основные принципы работы ультразвукового датчика состоят в следующем:

  1. Вначале с формируется сигнал высокого уровня длительностью 10 мкс, который запускает в работу ультразвуковой датчик.
  2. Затем модуль автоматически посылает 8 импульсов с частотой 40 кГц, а затем проверяет приняты они или нет.
  3. Если эти излученные сигналы принимаются, то вычисляется время между временем передачи этих импульсов и их приемом.

Расстояние затем можно рассчитать по следующей формуле:

Distance= (Time x Speed of Sound in Air (340 m/s))/2

где Time – измеренное датчиком время;
Speed of Sound in Air – скорость звука в воздухе, равная 340 м/с.

На нашем сайте вы также можете посмотреть следующие проекты, в которых был использован ультразвуковой датчик:

Сборка робота для очистки пола

Смонтируйте плату Arduino на шасси робота. Убедитесь в том, что она не касается никаких металлических деталей. Хорошей идеей будет установка платы Arduino и шилда драйвера двигателей в отдельную коробку. Зафиксируйте двигатели и колеса на шасси робота с помощью болтов. Также для этой цели можно использовать эпоксидный клей или другие способы. Закрепите приспособление для сбора мусора (не знаю как точно перевести, но в оригинале оно называется Scotch Brite scrub pad) позади щетки. Чтобы закрепить все это мы использовали ось, идущую вдоль шасси робота. Также отдельно смонтируйте батареи на шасси робота – для их крепления можно использовать отдельную коробку или специальный контейнер.

Вид платформы робота сбоку

Работа схемы

Схема устройства представлена на следующем рисунке. Соедините ультразвуковой датчик с платой Arduino как показано на схеме и установите сверху платы Arduino шилд драйвера двигателей (Motor Driver shield).

Схема робота для очистки пола на основе Arduino и ультразвукового датчикаКонтакт Trig ультразвукового датчика соедините с контактом 12 платы Arduino, контакт Echo датчика — с контактом 13 платы Arduino, контакты питания и землю датчика – с контактами 5V и землей платы Arduino. Более подробно о взаимодействии ультразвукового датчика и платы Arduino можно прочитать в статье про измерение расстояний с помощью Arduino.

Шилд драйвера мотора должен иметь, по крайней мере, два выхода, которые необходимо подсоединить к вашим двигателям. Обычно они промаркированы метками “M1” и “M2” или “Motor 1” и “Motor 2”. Соедините ваши батареи с шилдом драйвера мотора и платой Arduino соответственно. Драйвер мотора также должен иметь входной канал (входные линии), который необходимо соединить с платой Arduino.

Исходный код программы

Откройте Arduino IDE и скопируйте в нее код программы, приведенный в конце статьи. Загрузите программу в плату Arduino. Протестируйте работу робота. Если он поворачивает слишком много или слишком мало во время своей работы поэкспериментируйте с задержками в программе.

Но перед загрузкой кода сначала скачать библиотеку для работы с драйвером мотора (Adafruit Motor Shield Library) чтобы у нас была возможность в программе управлять двигателями постоянного тока. Добавьте ее в папку библиотек Arduino IDE. Убедитесь что эта папка называется AFMotor. Более подробно об установке библиотек от Adafruit можно узнать по этой ссылке.

Рассмотрим наиболее важные фрагменты кода программы. Сначала в программе мы должны подключить библиотеку от Adafruit для управления шилдом драйвера мотора. Также мы должны инициализировать контакты Trig pin и Echo pin и двигатели. Еще необходимо установить режим работы для контакта Trig pin на вывод данных, а для контакта Echo pin – на ввод данных.

Далее следуют команды, выполняемые в цикле (в функции loop). Они содержат команды для управления ультразвуковым датчиком (запуска его в работу и считывание времени распространения звуковой волны, расчета расстояния до препятствия и на основании этого расстояния выдача команд на управление двигателями.

Если робот обнаруживает на своем пути препятствие, то он останавливает одно колесо и таким образом осуществляет поворот.

Следующий фрагмент кода заставляет вращаться оба мотора в результате чего робот движется вперед до тех пока не обнаружит препятствие впереди себя.

Далее приведен полный код программы.

Видео, демонстрирующее работу схемы

(Проголосуй первым!)
Загрузка...
32 просмотров

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *