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

Обновлено: 25.04.2024

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

Описание самодельного робота пылесоса

Если вы все сделаете правильно, у вас получится модель, соответствующая этому описанию:

  • диаметр устройства составляет 30 сантиметров, высота – 9 сантиметров. Корпус сделан из вспененного поливинилхлорида. При этом толщина самого корпуса достигает 6 миллиметров;
  • в бампере установлены 4 датчика, посредством которых будет фиксироваться положение робота-пылесоса в пространстве. При этом имеется пара переключателей, подсоединенных на случай непредвиденных столкновений. Края обиты резиновой прокладкой, чтобы при случайном столкновении с мебелью не повредить ее;
  • емкость для пыли и мусора изготовлена из поливинилхлорида толщиной в 4 миллиметра. Фильтр для пыли изготовлен из 2 обыкновенных тряпичных салфеток, которые можно купить в каком угодно бытовом магазине. Крышка, защищающая содержимое мусорного контейнера, прикреплена к основанию при помощи магнитов;
  • турбина изготовлена из тонких пластиковых листов, фрагментов компьютерных дисков и поливинилхлорида;
  • верхняя крышка устройства держится на суперклее;


Робот пылесос — Часть1 Механика


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

Я вот, например, почитав робофорум. решил собрать робот пылесос. Причина такого выбора не столько в полезности данного устройства, сколько в том что, разрабатывая его, можно сконцентрироваться на конкретной задаче: робот способный автономно убирать мусор при минимальном обслуживании.

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

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

-Занимать как можно меньше места, но при этом иметь вместительный контейнер для мусора.

-Хорошо убирать загрязнения на любых поверхностях, но при этом обладать низким энергопотреблением и уровнем шума.

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


Макеты мусороуборочных узлов.

В конце — концов, остановился на схеме: широкая боковая щётка + пылесос. Радиальная щётка, расположенная с правой стороны, загребает мусор к жерлу пылесоса, расположенному по центру. Горизонтально-цилиндрическую щётку, как у Румбы, решил не ставить, так – как она лишь незначительно увеличивает качество уборки, но при этом сильно осложняет конструкцию жерла пылесоса. Устройство пылесосящего узла представлено на фото ниже.






Однако возникает вопрос: Где взять турбину и двигатель для пылесоса?

Можно спаять турбину из стеклотекстолита и жести


Турбина из жести.

Можно взять готовую турбину от большого пылесоса, предварительно обрезав её на токарном станке.


Готовая турбина, обрезанная на токарном станке до нужного диаметра(вентилятор от компьютера для сравнения).

А ещё её можно купить, в виде дешёвого китайского автомобильного пылесоса.

Не сочтите за рекламу, но рекомендую брать именно этот пылесос(kioki), так как в нём гарантировано правильная турбина с мощным двигателем и удобным краплением (при цене, в среднем, 500р). Хотя, что касается двигателя – то его лучше заменить. У стандартного потребление порядка 3А, при замене на двигатель QX-RS-385-2073 с потреблением 1.2А, мощность всасывания падает незначительно, зато робот начинает меньше шуметь и дольше бегает без подзарядки. Что касается самодельных турбин, они хоть и хорошо всасывают, но их довольно сложно отцентрировать так чтобы не было вибрации.

Боковая щётка собрана из двигателя от магнитофона, подключённого к оси с трещоткой (вынул из игрушечного шуруповёрта) через червячную передачу. Кисточки вынуты из половой швабры, и закреплены на диске из стеклотекстолита с помощью секундного клея.


Радиальная щётка.

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

Готовых колёс нужного размера не нашлось, поэтому пришлось вырезать их 10милеметровой фанеры и обклеить теплоизоляционной лентой, для лучшего сцепления с поверхностью. Отверстия в колесе – для энкодеров, хотя в конечном счёте я отказался от их применения из-за низкой точности.


Мотоблоки желательно ставить на независимую подвеску. В данной модификации робота я решил проверить, действительно ли она нужна, установив двигатели без подвески, в результате возникли проблемы при заезде на толстый ковёр. Оси двигателей должны совпадать диаметром окружности робота, так будет проще реализовать развороты на месте.


Подруливающее колесико.

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


Переключатели


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


Механика робота в собранном виде.

Для проверки механической части робота была собрана следующая, простая, схема управления:


Движение в пространстве


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

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


Виртуальная стена позволяет ставить ограничения на работу робота-пылесоса

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

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

Схема сборки робота-пылесоса в домашних условиях

Чтобы правильно сделать робот-пылесос своими руками, необходимо придерживаться следующего алгоритма (схема должна выполняться в четко указанной последовательности):


Механическая часть робота-пылесоса

  • Установить бампер. В этой модели он изготавливается из поливинилхлорида. Однако возможны и металлические аналоги. В любом случае при столкновении он должен физически воздействовать на переключатель, который заставит аппарат двигаться в другую сторону. Также стоит отметить, что после столкновения бампер должен возвращаться на первоначальное место.
  • Установить корпус. Чтобы все содержимое конструкции было надежно защищено, лучше всего использовать корпус из поливинилхлорида. При этом на нем можно сделать надрезы, чтобы он лучше снимался. Крышка корпуса крепится при помощи магнитов. В идеале их должно быть не менее 8 (приветствуются вариации, в которых использовано большее их количество).


Изготовление робота-пылесоса в домашних условиях

Робот-пылесос своими руками 86

Arduino, Программирование робототехники

Планы на будущее

Вы можете помочь и перевести немного средств на развитие сайта

Рекомендации по эксплуатации

Правила использования оборудования:

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

Что для вас предпочтительней: живое общение, или любимый мессенджер?

Общение — это когда видишь собеседника лично. Все остальное — иллюзия общения. 293 ( 29.24 % )

Общаюсь и в живую, и в соц сетях. Один способ вовсе не исключает другой. 620 ( 61.88 % )

Используя такую технику для дома правильно, можно существенно сэкономить свое время.

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

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

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

Итак, для сборки робота-пылесоса нужно разобраться с его составными частями, пойдем по порядку. Он должен сам передвигаться по комнате, поэтому нужны двигатели, в зависимости от конечной конструкции их должно быть от 2-х до 4-х, а также возможность переключения направления вращения и скорость, значит, нужна плата для управления двигателями. Если вы используете двигатели постоянного тока, то нужна плата с 4-мя транзисторами (H-мост).

Кроме пылесоса нужна подвижная (вращающаяся) щетка, которая будет отчищать поверхность, поднимать ворс половика, сметать мусор. Для этого нужен еще один или два моторчика.

Система, которая будет всем этим управлять. Простейший вариант на Arduino. Для такой задачи подойдет любая из плат, по размерам удобно разместить вариант Nano или Pro mini.

Идея №1: робот-пылесос из картона

Основа робота делается из плотного картона. Его лучше склеить в пару слоев, а волокна разместить перпендикулярно. Для его технической начинки нужен такой набор деталей:

  1. Любая плата Arduino.
  2. Breadboard или простая макетная плата, в принципе можно и без неё, всё просто спаять.
  3. 2 ультразвуковых датчика расстояния (дальномер).
  4. Турбина от пылесоса.
  5. Небольшой двигатель или кулер от компьютера.
  6. Двигатели с редукторами и колеса.
  7. Контроллер для двигателя.
  8. Провода для соединений схемы.
  9. Аккумуляторы и контроллер заряда.

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

Контроллер

Модуль управления

Для регулировки скорости на пин ENA или ENB подаётся ШИМ сигнал, а для задания направления вращения подают разноименные сигналы на IN1 и IN2 для одного двигателя и IN3, IN4 для другого двигателя. При этом если на пине IN1 у нас логическая единица, а на пине IN2 – логический ноль, двигатель крутится в одну сторону, чтобы сменить направление нужно поменять местами 1 с 0. Его нужно собрать с ардуино по такой схеме (пины можно использовать любые, это вы укажете в скетче).

Схема на ардуино

Схема на ардуино

Далее нужно делать основу из картона и закрепить на ней колеса, должно получиться что-то вроде этого:

Основа из картона

Основа из картона

Вот вид с нижней стороны. Два ведущих колеса с угловым редуктором и поворотное колесо:

Колесная база

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

Сборка корпуса

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

Бампер

Контактные бампера можно сделать и своими руками, для этого нужен тонкий, но жесткий провод, например от витой пары. Для этого формирует контактную площадку на внутренней стороне бампера из фольги, и закрепляем проводник как это показано ниже. При столкновениях робота-пылесоса с мебелью и стенами они будут соприкасаться. Вам остается отрегулировать расстояние от проволоки до фольги, чтобы добиться нужной чувствительности и исключить ложные срабатывания. На фольгу подается 5В, а провод идёт на вход Ардуино, подтянутый к минусу через резистор на несколько кОм.

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

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

Устройство питается от аккумуляторов, для питания системы управления можно применить линейные стабилизаторы типа l7805. Чтобы отрегулировать скорость вращения моторов подойдет понижающий преобразователь, например LM2596.



Самое сложное — это сконструировать и собрать пылесос. Вот его приблизительный чертеж:

Схема пылесоса

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

Турбина робота

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

Вид турбины изнутри

Вид турбины изнутри

Вот и вся пошаговая инструкция по сборке робота-пылесоса, сделанного из подручных материалов. Алгоритм его работы такой: робот-пылесос едет вперед, пока не встретит препятствие. После столкновения (или приближения, если вы используете УЗ дальномеры) останавливается, отъезжает назад на заданное расстояние, разворачивается на произвольный угол и едет дальше.

Идея №2: почти заводской робот

Предлагаем вашему вниманию не более сложный проект робота-пылесоса. Вот его внешний вид в собранном состоянии:

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

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

Система навигации в нем собрана из комплекта 6-ти ИК-датчиков препятствия. На случай, если не сработал ни один из них, то предусмотрены два контактных датчика (концевых выключателя). Система управления двигателями на таком же драйвере с микросхемой L298N. Для его сборки вам понадобится:

  1. Плата Ардуино, в оригинале использовалась Pro-mini.
  2. USB-TTL переходник для прошивки этой модели ардуино. Если вы будете использовать Arduino Nano, то он не нужен, т.к. в ней есть возможность прошивки по USB.
  3. Драйвер для моторчиков L298N.
  4. Моторчики для колес с редуктором.
  5. 6 ИК-датчиков.
  6. Моторчики для турбины (по возможности помощнее).
  7. Крыльчатка турбины пылесоса.
  8. Моторчики для щеток могут быть любыми.
  9. 2 датчика столкновения.

Всё это собрать по такой схеме:

Схема сборки робота-пылесоса

Схема сборки робота-пылесоса

Для сборки цепи питания робота-пылесоса нужны:

  1. 4 литиевых аккумулятора, подойдут типа 18650.
  2. 2 преобразователя постоянного напряжения (повышающий и понижающий).
  3. Контроллер для заряда и разряда 2-х аккумуляторов (искать в интернете по запросу 2s li-ion controller). В схеме используется последовательное включение двух параллельно включенных банок, в итоге их выходное напряжение получается больше 7,4В, а параллельная цепочка нужна для повышения ёмкости и автономности работы.

Роботы-пылесосы с Алиэкспресс

Роботы-пылесосы с Алиэкспресс

Вот схема питания этого робота:

Схема питания

Кроме этого нужен пластик (ПВХ) или любой другой материал для корпуса робота, можно его распечатать на 3D-принтере, если у вас есть такая возможность.

Для работы самоделки нужна прошивка, вот пример алгоритма хаотичной уборки, мы взяли его с сети. Ссылка для скачивания скетча: прошивка для робота-пылесоса.

В этой статье были рассмотрены 2 конструкции робота-пылесоса, которые можно повторить и собрать своими руками. Сделать автоматическое средство для уборки помещения можно, вложившись в бюджет от 30 до 100 долларов. Самыми дорогими деталями являются аккумуляторы, двигатели и платы ардуино. Если у вас получилось собрать самодельный робот-пылесос или вы придумали другую конструкцию, присылайте примеры в комментарии, будем рады открытому общению!

Напоследок рекомендуем просмотреть видео, на которых наглядно демонстрируется еще несколько идей, как сделать робот-пылесос в домашних условиях:

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

Дмитрий Иванов

Саша, это совсем разные вещи, к малине можно подключить камеру и там linux. Почитай ее характеристики и все поймешь.

Дмитрий Иванов

Саша Киселёв

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

Саша Киселёв

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

Саша Киселёв

Саша Киселёв

BTSerial.begin(9600);
Serial.begin(9600);
vservo.attach(9);
vservo.write(90);
vspeed(255,255);
>
void loop() <
if (BTSerial.available())
<
vcmd = (char)BTSerial.read();
Serial.println(vcmd);
if (vcmd == 'F') <
vforward();
>
if (vcmd == 'L')
<
vleft();
>
if (vcmd == 'R')
<
vright();
>

Саша Киселёв

BTSerial.begin(9600);
Serial.begin(9600);
vservo.attach(9);
vservo.write(90);
vspeed(255,255);
>
void loop() <
if (BTSerial.available())
<
vcmd = (char)BTSerial.read();
Serial.println(vcmd);
if (vcmd == 'F') <
vforward();
>
if (vcmd == 'L')
<
vleft();
>
if (vcmd == 'R')
<
vright();
>

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

2015-07-25 в 16:36, admin , рубрики: arduino, DIY, diy или сделай сам, гаджеты, программирование микроконтроллеров, Разработка робототехники, робот-пылесос, сделай сам

//для выравнивания скорости колес
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);
>
//--------------------------------

Читайте также: