36 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Как сделать робот-пылесос своими руками на Ардуино

Робот-пылесос своими руками Ардуино изготавливается из подручных материалов. Оборудование способно перемещаться по комнате, изменять направление движения после контакта с посторонними предметами и удалять пыль с поверхности пола.

Требуемые компоненты

Для сборки пылесоса на Ардуино потребуются компоненты:

  • блок управления;
  • отдельный контроллер для управления работой электродвигателей (обозначается на схемах как H-Bridge);
  • электрические двигатели постоянного тока с редукторами для привода боковых колес;
  • комплект колес;
  • источник питания (аккумуляторы или батарейки, суммарное напряжение 5 В);
  • турбина (используется узел, предназначенный для охлаждения процессоров или чипов видеокарт);
  • адаптер питания (при использовании компонентов, рассчитанных на напряжение 12 В);
  • комплект магнитов;
  • коммутационный шнур USB;
  • комплект кабелей для подключения блока Ардуино к цепям оборудования;
  • листовой плотный картон;
  • термический клей в тубе;
  • пистолет для нанесения клея;
  • резервуар для сбора пыли (готовый пластиковый или металлический контейнер);
  • пластиковые хомуты;
  • металлическая банка от напитков (для изготовления крепежных элементов).

Процесс сборки

Пошаговый процесс сборки робота-пылесоса Ардуино:

  1. Разложить компоненты конструкции будущего изделия на ровной поверхности для определения взаимного расположения и габаритов корпуса.
  2. Вырезать из картона круглое основание.
  3. Выполнить на детали прорези для боковых колес, которые располагаются по поперечной оси симметрии.
  4. Закрепить электрические приводы колес пластиковыми хомутами к корпусу.
  5. Прорезать канал для забора воздуха и зафиксировать клеем турбину над полученным окном. Узел крепится на противоположной от двигателей ходовой части стороне поддона.
  6. Разметить зону установки контейнера для пыли, который размещается над окном с роторным рабочим колесом.
  7. Установить и закрепить термическим клеем на внутренней части магниты (по предварительно размеченному контуру резервуара для пыли). Ответные магнитные элементы размещаются через лист бумаги на противоположной стороне поддона. Емкость для пыли приклеивается к магнитам, которые плотно прижимаются к боковой поверхности резервуара. Лист бумаги удаляется, коробка удерживается на запланированной монтажной точке взаимным притяжением магнитов.
  8. Закрепить на верхней плоскости поддона аккумуляторную батарею и контроллер Ардуино. Допускается установка элементов в направляющие узлы, изготовленные из древесины или пластика. Пользователи используют стандартные блоки управления Ардуино, часть владельцев самостоятельно корректирует прошивку микропроцессора путем подключения изделия к компьютеру.
  9. Разместить блок H-Bridge поверх контроллера и соединить электронику пылесоса с аккумулятором. Для соединения кабелей применяется пайка и установка коммутационных штекеров.
  10. Подключить электрические двигатели к выводам блоков управления.
  11. Вырезать картонные заготовки для фронтального бампера. Детали монтируются на передней части корпуса, точка соединения допускает перемещение бампера после столкновения робота с препятствием.
  12. Припаять отрезки кабеля к прямоугольным жестяным пластинам (требуется изготовить 2 элемента). Металлические пластинки устанавливаются на расстоянии от внутренней стороны импровизированных бамперов. На внутренней поверхности бампера наклеивается фольга, на которую подается положительное напряжение от батареи. При столкновении пластинка соединяется с фольгой и работает как датчик препятствия. В сигнальной цепи от пластины устанавливается дополнительное сопротивление, снижающее риск ложных срабатываний.

Для очистки воздуха от пыли применяется фрагмент от кухонной салфетки, изготовленной из волокнистого синтетического материала. Элемент устанавливается под основанием контейнера пылесборника и удерживается магнитами. В самом контейнере прорезается прямоугольный канал, через который затягивается воздух с пылью. Для регулировки зазора между резервуаром и напольным покрытием применяется сменное дистанционное кольцо из картона или пробки.

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

Собрал на днях такого вот монстра)))

С рамой не стал сильно заморачиваться и сделал из алюминиевого уголка. Управляется ардуинкой с ИК пульта. (Автопилот есть но жду датчики приближения чтоб не врезался)

Ходовая на 2х металлических мотор редукторах. На приводной вал одета металлическая шпилька от анкера и закреплено таким образом колесо.

Читать еще:  Как быстро научиться варить сварочным инвертором

Дно и пылеприемник из текстолита.

Турбина склеена из картона, пропитана клеем и приклеена сверху к вентилятору кулера (родные лопасти кулера отломаны заранее) сам пылесборник из банки с закручивающейся крышкой.

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

И видео работы сего аргегата)))

Сильно не пинайте за топорность конструкции. Сделано на коленке

Не очень удобный.

но говорит автопилот есть, и скоро будут какие-то датчики приближения

Автопилот тоже есть, но жду датчики приближения чтоб не врезался и бутет полноценная подметалка)))

главное собаку не заведи в доме. а то будет как тут

Наслышан про коричневые полосы по всему дому))))

Я чет по музыке подумал, что первое, что сделает пылесосик — начнет скакать как лоурайдерская тачка и из него пойдет манящий аромат для расширения границ восприятия.

Выбор трека для видео порадовал, 10 из 10)

Когда руки растут из правильного места!

Пошлый вопрос 😀

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

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

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

Автор, а как мотор редукторы закрепили к колёсам?

@bronia8787 почему убрал желтые движки с колес? насколько я помню они в кит наборах к этим колесам идут

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

ну на коленке не на коленке,а автор молодец)))

А есть пошаговая инструкция как его собрать.

Подробный пост будет но позже

Молодец! Обратная связь есть чтоб прямее ехал, или он и так достаточно прямо ездит?

Едет прямо. Но можно настроить перемещение и скорость как угодно

Лень — двигатель прогресса

Восстание пылесосов не за горами =))

У робота пылесоса сам пылесос очень слабый, крыльчатка меньше вашей, но за 2 часа набивает пылесборник до полного, основной рабочий элемент робота пылесоса — турбощетка, она собирает мусор в мусоросборник и поднимает пыль в воздух, а пыль с воздуха легко собирает даже такой слабый пылесос, собирает и уплотняет так что пыль с фильтра можно снять пластом взяв за край, для мусора и пыли разные отсеки и объем пылесборника меньше объема мусоросборника раз в 15.

ну время покажет как будет работать вся конструкция. Как все сделаю запилю подробный пост

можно еще корпус на 3д принтере распечатать

еще бы 3D принтер бы ))))))

Купи фильтры Нера безразмерки (

200 р во всяких Эльдорадах) и убери колготки — фильтрация у них никакая. Заодно и тягу проверишь, с фильтрами чуть тяжелее будет. А в остальном — руки из плеч, молодцом) Вопрос только в себестоимости.

Создание прототипа робота пылесоса на базе Arduino Uno

  • Цена: $5.80
  • Перейти в магазин

Arduino — это открытая платформа, которая позволяет собирать всевозможные электронные устройства. Arduino будет интересен креативщикам, дизайнерам, программистам …., и желающим собрать собственный гэджет. Устройства могут работать как автономно, так и в связке с компьютером. Всё зависит от идеи.
Платформа состоит из аппаратной и программной частей. Для программирования используется упрощённая версия C++. Разработку можно вести как с использованием бесплатной среды Arduino IDE, так и с помощью произвольного C/C++ инструментария.
Для программирования и общения с компьютером понадобится USB-кабель.

Читать еще:  Неисправности электрочасти и их устранение

Для постройки прототипа робота — пылесоса заказал плату Arduino Uno. Вместе c Uno заказал: Драйвер двигателей, для управления двигателями, Ик датчики «органы чувств» робота пылесоса, Ну и проводочки, куда без них? Преобразователь DC-DC и аккумуляторы заказывал в других онлайн магазинах.

Составляющие моего устройства:

— Arduino -центральный контроллер
— Драйвер двигателей — устройство, которое преобразовывает управляющие сигналы малой мощности в токи, достаточные для управления моторами
— ИК датчики — датчики препятствий расстояние обнаружения препятствия 3-80см
— ИК датчики — датчики препятствий расстояние обнаружения препятствия 2-20см
— Электродвигатель турбины
— Электродвигатель боковых щеток
— Электродвигатель центральной щетки
— Электродвигатель перемещения
— Аккумуляторы литиевые

Вот, что получилось.
Фотки не все, загружаю, какие остались.

Компоненты устройства:

Вид снизу:

Вид сверху:

Вид сбоку:

Перед первым пуском:





Первый пуск)) без корпуса


#define DriveVector1 2
#define DriveSpeed1 3
#define DriveVector2 4
#define DriveSpeed2 5
#define InSensor1 12
#define InSensor2 11
#define LedLamp 13

int sensorStatus1, sensorStatus2;
int HIGHValue, LOWValue;

void setup()
<
// put your setup code here, to run once:
pinMode(DriveVector1, OUTPUT);
pinMode(DriveVector2, OUTPUT);
pinMode(DriveSpeed1, OUTPUT);
pinMode(DriveSpeed2, OUTPUT);
pinMode(LedLamp, OUTPUT);
pinMode(InSensor1, INPUT);
pinMode(InSensor2, INPUT);
HIGHValue = HIGH div 2;
LOWValue = LOW;
>

sensorStatus1 = digitalRead (InSensor1);
sensorStatus2 = digitalRead (InSensor2);

void BodyForward()
<
digitalWrite(DriveVector1, LOWValue);
digitalWrite(DriveSpeed1, HIGHValue);
digitalWrite(DriveVector2, LOWValue);
digitalWrite(DriveSpeed2, HIGHValue);
>

void BodyBackward()
<
digitalWrite(DriveVector1, HIGHValue);
digitalWrite(DriveSpeed1, LOWValue);
digitalWrite(DriveVector2, HIGHValue);
digitalWrite(DriveSpeed2, LOWValue);
>

void BodyRight()
<
digitalWrite(DriveVector1, HIGHValue);
digitalWrite(DriveSpeed1, LOWValue);
digitalWrite(DriveVector2, LOWValue);
digitalWrite(DriveSpeed2, HIGHValue);
>

void BodyStop()
<
digitalWrite(DriveVector1, 0);
digitalWrite(DriveSpeed1, 0);
digitalWrite(DriveVector2, 0);
digitalWrite(DriveSpeed2, 0);
>

Робот-пылесос на ардуино


Итак начнем пожалуй с конструкции и принципа работы пылесоса.

Из схемы видно, что пылесос оборудован 6 инфракрасными датчиками. Они срабатывают при приближении пылесоса к препятствию, давая комманду остановиться и развернуться не врезаясь в него. Если же ни один из 6 датчиков не сработал и робот пылесос сталкивается с препятствием, то тогда срабатывает один из 2 выключателей, которые соединяют бампер (в котором находятся ИК датчики) и корпус робота.
Внимательные читатели заметили, что на схеме не показано питание робота. Тут решение вполне стандартное, использованы 4 аккумулятора формата 18650, подключенных последовательно две пары, через контроллер заряда-разряда АКБ. Далее с контроллера через выключатель подсоединены повышающий и понижающий DC-DC преобразователи. + 12 вольт питает моторы колес и моторы передних щеток. +5 вольт питает всю остальную электронику. Турбина питается от 7 — 8 вольт, так что для нее преобразователь не нужен. Выглядит это так:

В итоге список основных компонентов выглядит так:
ардуино про мини
L298N Motor Driver Module
колеса
повышающий конвертер
понижающий конвертер
ИК датчик 6 шт.
контроллер заряда-разряда
крыльчатка для турбины (около 200 руб)
ПВХ для изготовления корпуса
АКБ 18650 4 шт.
2 моторчика для щеток (модель не сильно важна)
1 моторчик для турбины
2 выключателя столкновения.
Один из вариантов скетча для хаотичной уборки

#define ir_1 A0 //пин 1 ИК-датчика
#define ir_2 A1 //пин 2 ИК-датчика
#define ir_3 A2 //пин 3 ИК-датчика
#define ir_4 A3 //пин 4 ИК-датчика
#define ir_5 A4 //пин 5 ИК-датчика
#define ir_6 A5 //пин 6 ИК-датчика

#define lev_vik 11 //пин левого выключателя
#define pra_vik 12 //пин правого выключателя

//для выравнивания скорости колес
byte max_skor_lev = 254;
byte max_skor_prav = 244;
//———————————

Читать еще:  Электрогидравлический эффект и его применение в промышленности

byte min_skor = 0;

randomSeed(analogRead(A7));
// пины энкодеров на вход
pinMode(3, INPUT); // пин левого энкодера на вход
pinMode(2, INPUT); // пин правого энкодера на вход
//————————-
// пины для левого и правого моторов на выход
pinMode(mot_ena, OUTPUT);
pinMode(mot_in1, OUTPUT);
pinMode(mot_in2, OUTPUT);
pinMode(mot_in3, OUTPUT);
pinMode(mot_in4, OUTPUT);
pinMode(mot_enb, OUTPUT);
//——————————————-
// пины ИК-датчиков на вход
pinMode(ir_1, INPUT);
pinMode(ir_2, INPUT);
pinMode(ir_3, INPUT);
pinMode(ir_4, INPUT);
pinMode(ir_5, INPUT);
pinMode(ir_6, INPUT);
//————————-
// пины левого и правого выключателей на вход
pinMode(lev_vik, INPUT);
pinMode(pra_vik, INPUT);
//—————————
delay(3000);

// если срабатывает левый выключатель на бампере
if (digitalRead(lev_vik) == LOW)
<
ROB_STOP();
delay(200);
ROB_NAZAD();
delay(150);
ROB_STOP();
delay(200);
ROB_PRAV();
delay(random(400, 1500));
ROB_STOP();
delay(200);
ROB_VPERED();
>
//————————————————
// если срабатывает правый выключатель на бампере
if (digitalRead(pra_vik) == LOW)
<
ROB_STOP();
delay(200);
ROB_NAZAD();
delay(150);
ROB_STOP();
delay(200);
ROB_LEV();
delay(random(400, 1500));
ROB_STOP();
delay(200);
ROB_VPERED();
>
//————————————————
// если срабатывает 2 ИК-датчик
if (digitalRead(ir_2) == LOW)
<
ROB_STOP();
delay(200);
ROB_PRAV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
>
//————————————————
// если срабатывает 3 ИК-датчик
if (digitalRead(ir_3) == LOW)
<
ROB_STOP();
delay(200);
ROB_PRAV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
>
//————————————————
// если срабатывает 4 ИК-датчик
if (digitalRead(ir_4) == LOW)
<
ROB_STOP();
delay(200);
ROB_LEV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
>
//————————————————
// если срабатывает 5 ИК-датчик
if (digitalRead(ir_5) == LOW)
<
ROB_STOP();
delay(200);
ROB_LEV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
>
//————————————————
// если срабатывает 1 ИК-датчик
if (digitalRead(ir_1) == LOW)
<
ROB_PRAV();
delay(10);
ROB_VPERED();
>
//————————————————
// если срабатывает 6 ИК-датчик
if (digitalRead(ir_6) == LOW)
<
ROB_LEV();
delay(10);
ROB_VPERED();
>
//————————————————

// поворот направо на месте
void ROB_PRAV()
<
// левый мотор вперед
digitalWrite(mot_in1, LOW);
digitalWrite(mot_in2, HIGH);
analogWrite(mot_ena, max_skor_lev);
// правый мотор назад
digitalWrite(mot_in3, LOW);
digitalWrite(mot_in4, HIGH);
analogWrite(mot_enb, max_skor_prav);
>
//——————
// поворот налево на месте
void ROB_LEV()
<
// правый мотор вперед
digitalWrite(mot_in3, HIGH);
digitalWrite(mot_in4, LOW);
analogWrite(mot_enb, max_skor_prav);
// левый мотор назад
digitalWrite(mot_in1, HIGH);
digitalWrite(mot_in2, LOW);
analogWrite(mot_ena, max_skor_lev);
>
//———————
// езда вперед
void ROB_VPERED()
<
// левый мотор вперед
digitalWrite(mot_in1, LOW);
digitalWrite(mot_in2, HIGH);
analogWrite(mot_ena, max_skor_lev);
// правый мотор вперед
digitalWrite(mot_in3, HIGH);
digitalWrite(mot_in4, LOW);
analogWrite(mot_enb, max_skor_prav);
>
//————————————-
// езда назад
void ROB_NAZAD()
<
// левый мотор назад
digitalWrite(mot_in1, HIGH);
digitalWrite(mot_in2, LOW);
analogWrite(mot_ena, max_skor_lev);
// правый мотор назад
digitalWrite(mot_in3, LOW);
digitalWrite(mot_in4, HIGH);
analogWrite(mot_enb, max_skor_prav);
>
//————————————
// стоп
void ROB_STOP()
<
// левый мотор стоп
digitalWrite(mot_in1, LOW);
digitalWrite(mot_in2, LOW);
analogWrite(mot_ena, min_skor);
// правый мотор стоп
digitalWrite(mot_in3, LOW);
digitalWrite(mot_in4, LOW);
analogWrite(mot_enb, min_skor);
>
//———————————

Ну и небольшое интервью с автором этого проекта. Автора зовут Дмитрий Иванов, живет в г.Сочи.
-Дмитрий, как пришла идея сделать робот-пылесос?
«Увидел на ютубе видео, где робот-пылесос делал уборку, захотел себе купить такой, но когда посмотрел цену, то подумал и решил делать сам. Сначала сделал первую версию робота, у него были слабые моторы на колесах, несъемный контейнер для мусора и пыли, мало датчиков препятствия и я сделал вторую версию, лишенную этих недостатков.»
-Сколько в итоге денег и времени ушло на его изготовление?
«Примерно 5000 тыс. руб. плюс два месяца работы»
-Что было самым сложным в процессе постройки?
«Самое сложное сделать корпус и турбину, подогнать все детали»
-Есть планы продолжать совершенствование робота?
«В планах покрасить корпус, сделать несколько режимов уборки, подключить блютус модуль и написать программу для телефона на андроиде (управление режимами, ручное управление, отображение заряда АКБ). Ну и сделать под пылесосом синюю подсветку для красоты»
На этом оптимистичном моменте думаю закончим рассказ про эту версию робота-пылесоса, хотя осталось много неосвещенных интересных моментов на эту тему. И поэтому завершаем вопросом:

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×