Вакуумный чистящий робот (пылесос) на Arduino


В данной статье мы рассмотрим создание на основе платы Arduino вакуумного пылесоса, который сможет объезжать препятствия и одновременно при этом пылесосить пол.

Внешний вид вакуумного чистящего робота на Arduino

За идею для данного проекта был взят чистящий робот-пылесос Roomba, который показан на следующем рисунке.

Робот-пылесос Roomba

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

Для создания задуманного нами автоматического вакуумного робота-пылесоса мы должны определиться со следующими вещами:

  • тип микроконтроллера;
  • необходимые датчики;
  • необходимые двигатели;
  • материалы для шасси робота;
  • батарейка.

Далее рассмотрим эти пункты более подробно. Мы уделим этому так много внимания потому что описанные далее моменты помогут вам при создании не только этого робота, но и других роботов, которые вы захотите сделать в дальнейшем.

Тип микроконтроллера

Выбор микроконтроллера является весьма важной задачей, поскольку микроконтроллер будет "мозгами" робота. Большинство проектов из разряда "сделай сам" (DIY projects) в настоящее время делается на основе плат Arduino и Raspberry Pi. Но они не всегда будут наилучшими конкретно для вашего проекта.

При выборе микроконтроллера для своего проекта следует принимать во внимание следующие вещи:

  1. В первую очередь необходимо учесть требования к количеству необходимых контактов ввода/вывода, объема флэш памяти, числу/типам коммуникационных протоколов и другим специальным требованиям.
  2. На следующем этапе необходимо произвести селекцию микроконтроллеров согласно их требуемым техническим характеристикам.
  3. На этом этапе необходимо произвести заключительный отбор микроконтроллеров основываясь на их стоимости и доступности.

Но в этом проекте мы не тратили много времени на эти изыскания и просто выбрали Arduino. Также на нашем сайте вы можете посмотреть примеры других роботов на основе платы Arduino:

Необходимые датчики

В сегодняшнем мире существует достаточно много разнообразных датчиков, которые являются как бы "глазами" и "ушами" робота. В этом проекте задачей нашего робота будет обнаружение и огибание препятствий, поэтому мы будем использовать инфракрасный датчик (IR sensor) (купить на AliExpress) и ультразвуковой датчик (Ultrasonic sensor), которые и будут обеспечивать видимость нашему роботу-пылесосу. Внешний вид этих датчиков показан на следующем рисунке.

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

Ультразвуковой датчик состоит из двух круглых "глаз", один из которых используется для передачи ультразвуковых сигналов, а другой – для их приема. Ультразвуковые сигналы излучаются, отражаются от препятствия и возвращаются обратно к ультразвуковому датчику. Поскольку время между передачей и приемом сигналов, а также скорость распространения звука известны, то расстояние до препятствия можно рассчитать по следующей формуле:

Distance = Time x Speed of Sound / 2

Делить на 2 необходимо потому что лучи распространяются до препятствия и обратно, то есть одну и ту же дистанцию проходят два раза. Более подробно обо всех этих процессах можно прочитать в статье про определение расстояний с помощью Arduino.

Необходимые двигатели

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

Материалы для шасси робота

Подготовка шасси робота часто представляет значительную проблему для начинающих радиолюбителей. Наилучшим материалом для изготовления шасси робота является акриловая смола, однако она требует для работы с ней сверлильного станка и других необходимых инструментов. Поэтому мы для данного проекта выбрали самый простой путь – использование деревянного шасси робота как можно видеть из фото робота в начале статьи.

Но будем надеяться что в ближайшее время проблема изготовления шасси робота перестанет быть актуальной в связи со все более широким распространением 3D-принтеров, на которых можно будет напечатать шасси робота любой формы.

Емкость батареи

Выбор емкости батареи для робота необходимо производить на заключительном этапе поскольку она будет зависеть от выбранных шасси и двигателей. Вакуумный пылесос будет потреблять ток 3-5A и еще необходимо запитывать 4 электродвигателя, поэтому потребуется достаточно тяжелая батарея. Мы для нашего проекта выбрали батарею 12V 20Ah SLAB (Sealed lead acid battery – запаянная свинцово-кислотная батарея).

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

  • лист дерева в качестве шасси робота;
  • инфракрасный и ультразвуковой датчики;
  • вакуумный пылесос, работающий от постоянного тока;
  • плата Arduino Uno;
  • батарея 12V 20Ah;
  • микросхема драйвера двигателей L293D;
  • соединительные провода.

Вакуумный пылесос, работающий от постоянного тока

Поскольку мы используем батарею 12V 20Ah, то и наш вакуумный пылесос должен работать от 12V. Возможный вариант подобного пылесоса показан на ниже приведенном рисунке. Я думаю, подобный пылесос можно без проблем приобрести на Aliexpress или Amazon.

Внешний вид вакуумного пылесоса для нашего проекта

Драйвер двигателей L293D

Драйвер двигателей представляет собой промежуточное устройство между платой Arduino и электродвигателями. Необходимость его использования обусловлена тем, что плата Arduino не может обеспечить на своих контактах достаточный ток для питания электродвигателей.

Внешний вид микросхемы драйвера мотора L293D

Микросхема драйвера двигателей L293D способна обеспечивать на своих выводах ток до 1A, что вполне достаточно для управления электродвигателями в нашем проекте.

Конструирование робота

Вакуумный пылесос – это наиболее сложный компонент (из используемых нами) для размещения на шасси робота. Его нужно установить под определенным углом на шасси (как показано на рисунке) чтобы он корректно функционировал. Вакуумный пылесос не будет управляться с платы Arduino, его будет необходимо включать и выключать вручную.

В листе дерева, который и будет являться шасси робота, необходимо просверлить ряд отверстий для того чтобы разместить на нем компоненты робота.

Вначале желательно протестировать работу робота (когда вы установите на него двигатели и драйвер мотора) с помощью приведенного ниже кода программы перед тем как подключать к нему датчики.

void setup()
{
Serial.begin(9600);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}
void loop()
{
delay(1000);
Serial.print("forward");
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
delay(500);
Serial.print("backward");
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
}

Если все работает без проблем, то вы можете подсоединять датчики согласно представленной схемы и использовать полный код программы, приведенный в конце статьи. Как можно видеть из представленных рисунков, мы разместили ультразвуковой датчик спереди робота и два инфракрасных датчика по бокам робота. Радиатор размещен сверху микросхемы L293D поскольку она будет достаточно сильно нагреваться во время работы робота.

Схема соединений в нашем проекте

Также вы можете установить на робота и дополнительные компоненты (щетки по бокам) как показано на следующих рисунках.

Дополнительная щетка для чистки Установка дополнительных щеток на нашего робота

Также вы можете изготовить уменьшенную версию вакуумного чистящего робота-пылесоса как показано на следующих рисунках.

Уменьшенная версия вакуумного чистящего робота-пылесоса

Эта уменьшенная версия робота изготовлена на основе картонной коробки и макетной платы ATMega16. Роль вакуумной всасывающей части здесь играет вентилятор постоянного тока, помещенный внутрь коробки. Этот робот будет работать, но чистящий эффект от него, как вы понимаете, будет минимальным.

Схема устройства и исходный код программы

Схема устройства представлена на следующем рисунке.

Схема вакуумного чистящего робота-пылесоса на Arduino

Все необходимые соединения, я думаю, интуитивно понятны.

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

Видео, демонстрирующее работу чистящего робота

(1 голосов, оценка: 5,00 из 5)
Загрузка...
2 337 просмотров

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

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