Официальный сайт компании Arduino по адресу arduino.cc
Самодельный робот-пылесос.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Диаметр робота 30 сантиметров, высота 9 сантиметров. Корпус сделал из вспененного ПВХ толщиной 6 мм. ПВХ легко режется ножом, гнется над паром, или феном, клеится обычным суперклеем намертво.
В бампере у робота установил 4 инфракрасных датчика препятствия и два переключателя на случай столкновения, а так-же наклеил резиновые утеплители для окон, чтобы при столкновении с углами мебели, не превратил ее в труху.
Контейнер для пыли и мусора сделан из 4 мм. ПВХ. Фильтр из двух слоев тряпичной салфетки (продается в любом магазине, где торгуют чистящими средствами для дома) и вклеил их в рамку из плотного картона. Крышка контейнера держится на магнитах.
Турбина склеена из тонкого пластика, компакт-дисков и ПВХ.
Контейнер со снятым фильтром. Видны лопасти турбины. Турбину сделал неразборной поэтому не смогу показать ее внутренности.
Верхняя крышка склеена супер-клеем.
Сердце, кишки и прочие внутренности робота-пылесоса.
Контроллер инфракрасных датчиков с регуляторами расстояния до препятствия. Имеет 4 выхода для подключения к Ардуино. В обычном режиме выдает на выходе логическую единицу, если срабатывает любой из четырех датчиков, выдает ноль.
Выключатели столкновения были безжалостно вырваны из старой микроволновки. Когда пылесос упирается в препятствие (не срабатывают инфракрасные датчики) то бампер нажимает выключатель и пылесос отъезжает на несколько сантиметров назад, поворачивает и продолжает уборку. Выключатели поставил мощные, чтобы они возвращали бампер в исходное положение.
Мотор для передней щетки выдрал из старого принтера и подключил к Ардуино через Мосфет. Когда пылесос движется щетка крутится медленно, чтобы не разбрасывала мусор, а направляла его прямо к жерлу. Когда пылесос подъезжает к стене, или мебели щетка вращается быстро, чтобы хорошо смести мусор, который обычно скапливается вдоль стен и в углах.
Инфракрасные датчики заклеил сзади черным картоном и покрасил черным маркером, а то они иногда срабатывали от мигания светодиодов на драйвере мотора.
Турбину вращает высокооборотистый моторчик. Маркировки на нем нет и откуда вытащил не помню.
Питается все это хозяйство от четырех литий-ионных аккумуляторов формата 18650, через понижающий DC-DC преобразователь. Подключены две пары последовательно.
В белой трубке находится контроллер заряда - разряда аккумуляторов. Когда АКБ подходит к минимально допустимому разряду, контроллер отключает пылесос, когда заряжается и достигает полной зарядки, то отключает зарядное устройство.
Колеса и мотор-редукторы всем знакомы. Пришлось их немного подшаманить. Разобрал редукторы, промыл от силиконовой смазки, обильно намазал солидолом и собрал обратно. Мне показалось, что на пластмассовых осях выглядит это не надежно и как-то совсем по китайски. Пришлось укреплять.
Основание робота сделал из водостойкой фанеры, а точнее из разделочной доски.
Третье колесико пришлось углублять на 2,5 сантиметра. Надо было сразу заказывать шариковое колесико. Но как говорится, если бы бабушке бороду, то она будет дедушкой.
Щетку сделал из лески.
Список деталей:
Arduino Pro Mini - мозги.
L298N - драйвер моторов.
Понижающий DC -DC преобразователь.
Модуль с Мосфетом для управления передней щеткой.
4 инфракрасных датчика препятствия с контроллером.
Два переключателя для бампера.
Два колеса с мотор-редукторами.
Третье колесо, лучше шариковое не высокое.
Мотор для щетки.
Высокооборотистый мотор для турбины.
4 аккумулятора 18650 и контроллер для них.
Фанера, ПВХ, куча проводов, выключатель, гнездо для зарядки, магнитики, шурупы.
А главное иметь желание и кучу нервов :-)
Код:
#define in1 4 //пин правого мотора #define in2 5 //пин правого мотора #define in3 7 //пин левого мотора #define in4 8 //пин левого мотора #define lev_vik 2 //пин левого выключателя #define pra_vik 3 //пин правого выключателя boolean lev = true; //переменная состояния левого выключателя boolean pra = true; //переменная состояния правого выключателя boolean ir1 = true; //переменная состояния первого ик датчика boolean ir2 = true; //переменная состояния второго ик датчика boolean ir3 = true; //переменная состояния третьего ик датчика boolean ir4 = true; //переменная состояния четвертого ик датчика void setup() { randomSeed(analogRead(19)); // пины для левого и правого моторов на выход pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); //--------------------------------------------- //пин веника на выход pinMode(11, OUTPUT); //-------------------- //пины левого и правого выключателя на вход pinMode(lev_vik, INPUT); pinMode(pra_vik, INPUT); //----------------------------------------------- //пины ик датчиков на вход pinMode(14, INPUT); pinMode(15, INPUT); pinMode(16, INPUT); pinMode(17, INPUT); //------------------------------------------ venikmin(); // выключение веника delay(4000); vpered(); // езда вперед } void loop() { lev = digitalRead(lev_vik); //считывание состояния левого выключателя if (!lev) { //если срабатывает левый выключатель то stopm();//стоп venikmax(); // включение веника delay(300); nazad(); //едем назад delay(300); stopm();//стоп delay(300); vpravo(); //поворот на месте вправо delay(random(500, 1000)); stopm();//стоп delay(300); vpered(); // езда вперед venikmin(); // выключение веника } pra = digitalRead(pra_vik); //считывание состояния правого выключателя if (!pra) { //если срабатывает правый выключатель то stopm();//стоп venikmax(); // включение веника delay(300); nazad(); //едем назад delay(300); stopm();//стоп delay(300); vlevo(); //поворот на месте влево delay(random(500, 1000)); stopm();//стоп delay(300); vpered(); // езда вперед venikmin(); // выключение веника } //------------------------------ ir1 = digitalRead(14); // считывание показания первого ик датчика if (!ir1) { // если срабатывает первый ик датчик то stopm();//стоп venikmax(); // включение веника delay(300); vpravo(); //поворот на месте вправо delay(random(400, 900)); stopm();//стоп delay(300); vpered(); // езда вперед venikmin(); // выключение веника } //----------------------------- //------------------------------ ir2 = digitalRead(15); // считывание показания второго ик датчика if (!ir2) { // если срабатывает второй ик датчик то stopm();//стоп venikmax(); // включение веника delay(300); vpravo(); //поворот на месте вправо delay(random(400, 900)); stopm();//стоп delay(300); vpered(); // езда вперед venikmin(); // выключение веника } //----------------------------- //------------------------------ ir3 = digitalRead(16); // считывание показания третьего ик датчика if (!ir3) { // если срабатывает третий ик датчик то stopm();//стоп venikmax(); // включение веника delay(300); vlevo(); //поворот на месте влево delay(random(400, 900)); stopm(); //стоп delay(300); vpered(); // езда вперед venikmin(); // выключение веника } //----------------------------- //------------------------------ ir4 = digitalRead(17); // считывание показания четвертого ик датчика if (!ir4) { // если срабатывает четвертый ик датчик то stopm(); //стоп venikmax(); // включение веника delay(300); vlevo(); //поворот на месте влево delay(100); // ------------------------ stopm(); //стоп delay(300); vpered(); // езда вперед venikmin(); // выключение веника } //----------------------------- } //функция езды вперед void vpered() { //вращение левого мотора вперед digitalWrite(in4, LOW); digitalWrite(in3, HIGH); //----------------------------- //вращение правого мотора вперед digitalWrite(in1, HIGH); digitalWrite(in2, LOW); //----------------------------- } //функция езды назад void nazad() { //вращение левого мотора назад digitalWrite(in4, HIGH); digitalWrite(in3, LOW); //----------------------------- //вращение правого мотора назад digitalWrite(in2, HIGH); digitalWrite(in1, LOW); //---------------------------- } //функция езды на месте влево void vlevo() { //вращение левого мотора назад digitalWrite(in4, HIGH); digitalWrite(in3, LOW); //----------------------------- //вращение правого мотора вперед digitalWrite(in1, HIGH); digitalWrite(in2, LOW); //----------------------------- } //функция езды на месте вправо void vpravo() { //вращение правого мотора назад digitalWrite(in2, HIGH); digitalWrite(in1, LOW); //---------------------------- //вращение левого мотора вперед digitalWrite(in4, LOW); digitalWrite(in3, HIGH); //----------------------------- } //функция стоп void stopm() { //стоп правого мотора назад digitalWrite(in2, HIGH); digitalWrite(in1, HIGH); //---------------------------- //стоп левого мотора вперед digitalWrite(in4, HIGH); digitalWrite(in3, HIGH); //----------------------------- } //функция вращения веника медленно void venikmin() { // digitalWrite(11, LOW); //медленное вращение веника analogWrite(11, 90); // скорость вращения веника } //функция вращения веника быстро void venikmax() { // digitalWrite(11, HIGH); //включение вращения веника analogWrite(11, 220); // скорость вращения веника }
Браво, реально полезная вещь! Не то что всякие "умные" туалеты, велосипеды, итп.. ))
Спасибо!
Убираю раз в три дня и чистота в квартире идеальная. За сорок минут пока курю, варю кофе он убирает комнату и балкон, а главное не просто подметает, а засасывает всю пыль.
Класс!
Уборка конечно не идеальная, но бесплатному уборщику в зубы не смотрят.
:)
А как он относится к ковровому покрытию ?
А много-ли корова даёт молока? ;)
зачетная вещь!) надо ставить в производство
А как он относится к ковровому покрытию ?
Вот с этим пока туговато. Нужны колеса помощнее и на независимой подвеске. Видел такие в магазине робокрафт, но цена отпугивает 750 деревянных за колесо с мотор редуктором, а в Китае еще дороже из-за доллара.
А много-ли корова даёт молока? ;)
Не понял вопрос? Если про качество уборки, то есть видео.
Думал сам о такой штуке. Но боялся что не потяну, а вы прям вдохновили. Страха уже меньше :)
Спасибо!
Думал сам о такой штуке. Но боялся что не потяну, а вы прям вдохновили. Страха уже меньше :)
Спасибо!
Главное начать.
Я начинал с турбины, перепровал разные варианты, а потом уже начал делать робота.
Турбина самое главное.
Здорово. Наверно первый завершенный проект на моей памяти. Плюс еще и полезная штука. ПлюсПлюс зачетное описание процесса.
А много-ли корова даёт молока? ;)
Не понял вопрос? Если про качество уборки, то есть видео.
Это не для Вас. Я человеку хотел сказать, что не нужно ждать чудес.
На самом деле, классный робот получился.
:)
Здорово!
1. Насколько минут работы хватает полного заряда?
2. взаимное расположение щели для мусора и оси веника - так само получилось или экспериментировали и подгоняли? Кажется, что если немного промахнуться, то мусор будет пролетать мимо щели
а у меня вопрос где достать вспененный полиуретан?
не знаю именно про полиуретан, но нечто подобное тому, что на фото, я брал у рекламщиков - они их этого буквы режут для стендов. есть жесткий и мягкий, толщина 1..10 мм
осталось рекламщиков найти. какие цены и в каком городе?
Круто! слов нет, сколько терпения надо чтоб такое смастерить :)
хотя если честно считаю такие пылесосы бесполезными, мусор они конечно собирают, но вот пыль из глубины ковра врядле...
не зря же обычные пылесосы имеют вакумный насос мощьностью в 1,5киловата...
меня заинтересовал ваш блок разряда - заряда, скрывающийся в белой трубке.... что это такое, где его взять и как подключать?
у меня тоже ли-ион банки, 6шт ( 7,4в) но они без защиты, стоят в шприцах. потом я их вынимаю и заряжаю по 2шт в зарядке. хотелось бы обезопасить от переразряда...
ну вот, к примеру, у нас в чите лист 2х3м 5 мм около 3 тысяч.
http://forda.ru/materials/5333/
вспененный полистирол, он же ПВХ
знакомый ип-шник обрезки для поделок задаром отдает :)
достаточно крепкий материал.
надо поинтересоваться. может поблизости тоже есть рекламщики
Круто!
А на сколько хватает АКБ?
Здорово!
1. Насколько минут работы хватает полного заряда?
2. взаимное расположение щели для мусора и оси веника - так само получилось или экспериментировали и подгоняли? Кажется, что если немного промахнуться, то мусор будет пролетать мимо щели
1. На 40 - 50 минут.
2. Весь мусор который пролетает мимо щели, задерживает юбка из войлока (черная на фото) и когда пылесос отъезжает назад весь задержанный мусор втягивается в жерло.
Добивался этого путем эксперементов на картонных моделях.
а у меня вопрос где достать вспененный полиуретан?
Мне знакомый дал обрезки.
Продают в магазинах все для рекламы, но слишком дорого и только листами 2 на 3 метра.
меня заинтересовал ваш блок разряда - заряда, скрывающийся в белой трубке.... что это такое, где его взять и как подключать?
Заказывал здесь: http://zapas-m.ru/shop/CID_45.html
Подбирайте под количество банок. Я купил самый дешевый за 120 рублей для двух последовательно соединенных банок.
Надо было брать с балансиром, теперь жалею.
у меня 6 банок, по 3 в параллель и 2 связки из 3х банок соеденены последовательно.
как я понял в моем случае нужно брать чтото вроде:
http://zapas-m.ru/shop/UID_kontroller_zaryada_razryada_pcm_dlya_li_ion_b...
только непонятно, через эту плату можно заряжать батареи? но где подключать внешний источник питания? и какой он должен быть?
можно и такой взять на меньший ток
http://zapas-m.ru/shop/UID_297.html
зарядное подключается туда же куда и подключается нагрузка
насчет чем питать несовсем понятно честно сказать. скорее всего питать стабильным напряжением 8,4В через понижающий импульсный стабилизатор
но про ограничение тока заряда не нашел. наверно стабилизатор должен быть с ограничением тока
Мо-Ло-Дец!!!!!!!!!
http://www.mobipower.ru/modules.php?name=News&file=article&sid=293
Там есть схемка на ICL7660 попробуйте, судя по описанию идеальный вариант.
И повнимательней прочтите :Практическое замечание: на Рис.10. показана схема которая балансирует аккумуляторы с напряжением меньше 3В, поэтому её шестая ножка (LV) подключена к выходу 3. Для балансировки литиевых аккумуляторов с более высоким напряжением, вывод 6 нужно оставить свободным, никуда не подключать.
Для питания планирую такую батарейку взять. 4s 5000mA, сделаю из неё 2s 2p получится 10000 mA 6 - 8,4v.
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=36032
Мотор и регулятор для пылесоса уже есть, авиамодельный.
Вот думаю может EDF турбину авиамодельную взять для пылесоса...
Вот думаю может EDF турбину авиамодельную взять для пылесоса...
А что это такое и где можно глянуть?
насчет чем питать несовсем понятно честно сказать. скорее всего питать стабильным напряжением 8,4В через понижающий импульсный стабилизатор
у них на сайте есть разные зарядки, но у меня самодельная из трансформатора на 38 вольт (меньше не нашел), диодный мост и DC-DC преобразователь китайский, настроенный на 8,4 вольта. ток не ограничиваю, сколько возьмет столько и берет, а контроллер если ток превысит 3 ампера отключит зарядку, но такого еще не было.
Да вот выбор уже с моторорами, выбрать самую недорогую. Потому как дорогие это уже полноценный промышленный пылесос в несколько киловатт.
http://www.hobbyking.com/hobbyking/store/__682__681__Hardware_Accessorie...
Да вот выбор уже с моторорами, выбрать самую недорогую. Потому как дорогие это уже полноценный промышленный пылесос в несколько киловатт.
http://www.hobbyking.com/hobbyking/store/__682__681__Hardware_Accessories-EDF_Units_With_Motor.html
круто!) 5000 только за турбинку. Мне тут реклама прилетала 9000р за готовый робот пылесос http://from.oldi.ru/click.html?x=a62e&lc=ob&mc=F&s=qEa&u=V&y=S&
так что надо понимать что у нас - полезная штука которую дорого купить или же хобби где на цену не смотрим ))
Да, и в прямь, цены на роботы-пылесосы от 5 тыщ..)) Мне уже интересно, можно ли вообще что-то сделать самому полезное на МК, чего нельзя купить готовое? ))
Турбина за 5000 избыточна даже для ковра, ну разве что делать промышленный робот пылесос для стройки ну там гравий или осколки бетона с пола собирать. А вдруг кому то нужно! :)
Хотя сейчас посмотрел даже турбина за 15 уе будет избыточна для линолиума.
http://www.hobbyking.com/hobbyking/store/__6566__EDF55_with_H300_Motor_A...
Эта турбина до 200 ватт, даже если крутить на пол мощности это в три раза больше чем весь робот пылесос по вашей ссылке :)
Для меня кончно же это хобби.
200вт чего? Электрической мощности? То есть 12.5а от 4 х 18650?
вы сами в это верите?
Там же написано.
Spec:
Test Voltage: 11.1v
Test Current: 18A
Thrust: 470g
Power: 199.8w
Motor: ADH300L 4300kv
Outer Diameter: 58mm
Length: 42mm
Weight: 58g
Test Results:
@10v | 17A | 430g | 170W |
@11v | 18A | 470g | 199.8W
Верю, приблизительно так и есть. Реально видел в действии подобные турбины.
470 грамм тяги при почти 200 ватт мощности.
Если не верите, спросите у модельщиков.
всеравно с вакумным насосом в 1500вт турбина не сравниться, так что обычные пылесосы рулят! :)
Вакуумным насосом пыль не собирают насколько я знаю, он для других дел предназначен.
nitrior, а насколько крепки колеса и редуктор, или хлипковаты, кило веса смогут возить?
nitrior, а насколько крепки колеса и редуктор, или хлипковаты, кило веса смогут возить?
Мой весит 2 кило и ездиет. А вообще я взял бы колеса с мотор-редуктором на независимой подвеске и со встроенными энкодерами, но 750 рублей за один комплект, дорого.
Вот как я укрепил китайские колеса.
Да, и в прямь, цены на роботы-пылесосы от 5 тыщ..)) Мне уже интересно, можно ли вообще что-то сделать самому полезное на МК, чего нельзя купить готовое? ))
Видел я те которые от 5 до 10 тыс., они пыль не засасывают, а просто сметают мусор в коробочку.
18 ампер? А чем питать такое хозяйство? 18650 просто не отдадут такой ток, или взорвутся, или сработает защита.
18 ампер конечно многовато, можно на пол мощности и то многовато будет. буду турбину делать как у вас. А питать от LiPo. Они токи хорошие отдают.
p/s хотел сейчас купить Lipo на сайте HobbiKing, не получается, неужели и они тоже санкции на крымчан ввели или просто глюк, буду разбираться (((
... А вообще я взял бы колеса с мотор-редуктором на независимой подвеске и со встроенными энкодерами, но 750 рублей за один комплект, дорого.
может, я чего-то недопонимаю, но зачем энкодеры на колесах пылесосу? просветите :)
18 ампер конечно многовато, можно на пол мощности и то многовато будет. буду турбину делать как у вас. А питать от LiPo. Они токи хорошие отдают.
p/s хотел сейчас купить Lipo на сайте HobbiKing, не получается, неужели и они тоже санкции на крымчан ввели или просто глюк, буду разбираться (((
Вы тоже крымчанин? а откуда? я из Севастополя.
может, я чего-то недопонимаю, но зачем энкодеры на колесах пылесосу? просветите :)
хотел сделать три режима уборки: 1. Елочкой (когда упирается в стену, то поворачивает обратно на определенный угол и едет до следущего препятствия и так пока не объедет всю комнату). 2. Увеличивающимся квадратом ( почти как по спирали, только в форме квадрата. ну и так далее. без энкодеров это не реализуемо, так как нужно поворачивать на определенный угол.
может, я чего-то недопонимаю, но зачем энкодеры на колесах пылесосу? просветите :)
чтобы ехать прямо) отсчитывая равное число оборотов. в принципе и без них будет ездить только накапливая ошибку по оси Z
ну понял, это для идеального робота, у которого есть четко проложенный путь, которого надо придерживаться :)
но в условиях, когда пылесос едет, куда вздумается, энкодер лишним будет
а нужна ли эта программа? что будет с режимом елочка, если у стены стоит стул? или в режиме увеличивающегося квадрата пылесос наткнется на стол, стоящий где-нибудь на средней орбите? имхо, хаотично - лучше. но, конечно, лучше поэкспериментировать.
а сколько оборотов у турбины? какой двигатель?
Вы тоже крымчанин? а откуда? я из Севастополя.
[/quote]
Я тоже из Севастополя :)
А с HobbiKing похоже проблема для крымчан, или они переделают способ оплаты или ((((
С алиэкспресс проблем не возникло.
а сколько оборотов у турбины? какой двигатель?
на нем нет маркировки и откуда его выдрал не помню, но не менее 15 тыс. оборотов, турбина аж свистит, как будто пылесос идет на взлет :-)
Я тоже из Севастополя :)
А с HobbiKing похоже проблема для крымчан, или они переделают способ оплаты или ((((
С алиэкспресс проблем не возникло.
как приятно встретить земляка. напишите мне в скайп slom_3d или контакт https://vk.com/id8503257
я заказывал через пакфлай - посредник хобби кинга, и сегодня с алиэкспрес пришли 2 сервы, 2,5 недели шли. я считаю это быстро. для примера с москвы посылка 2 недели ехала.