Робоподнос - самоходный 3D стол

94

Сегодня будем делать бесполезную, для большинства, но веселую штуковину. Над названием еще предстоит хорошенько подумать, пока колеблюсь между «РобоСтол» и «Робоподнос». Если есть идеи получше, пишите в комментах. 

В очередной из визитов главного моего подписчика, в поисках чего бы такого поковырять взгляд Ивана пал на гусеничное шасси, купленное в свое время на Gearbest. Должен отметить, губа у него не дура. Шасси состоит из двух одинаковых модулей гусениц, закрепленных на хлипком акриловом основании. Модуль гусеницы выполнен из какого-то скользкого и прочного пластика. Ведущее зубчатое колесо опирается на шарикоподшипник с внешней стороны и на подшипник редуктора. Свободная звезда опирается на два шарикоподшипника. Гусеница выполнена из другого жесткого пластика на металлических штифтах, а для лучшего сцепления поверхностью имеются силиконовые накладки. Чтобы гусеница не провисала и снять нагрузку со звезд, есть пластиковый подпор. Вращает это все 12V мотор через металлический редуктор. На обратной стороне мотора есть оптический тахометр, что позволяет иметь обратную связь с мотором. А именно знать сколько оборотов совершил двигатель.

Короче говоря, быстренько были спаяны вместе WiFi модуль WEMOS D1 mini, модуль L298N, это шасси да и 12-ти вольтовый аккум от бесперебойника. Быстренько написал прошивку, чтобы можно было через веб интерфейс управлять роботом. И все — безудержное веселье.

В последствии я заменил большой аккумулятор на три литиевые банки. И в таком виде он провалялся у меня несколько месяцев на полке. Пока я при съемках обзора блока питания, не решил по приколу прикрутить к роботу круглую столешницу. Просто, двумя саморезами. Мне показалось забавным, если робот вывезет ЛБП в начале видео. Это было криво, косо, не прочно. Но забавно. Тогда же я решил, что нужно сделать его по человечески. Чем сегодня и займемся. Сделаем его минимально возможной высоты, прочно закрепим гусеницы и красивую электронную часть.

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



Мозгом устройства является микроконтроллер esp8266 с WiFi, распаянный на модуле Wemos D1 mini, который позволяет удобно прошивать его через USB.  Но с другой стороны, дает заметную задержку управления. Для стабильной работы поставил рядом с питающими выводами на 5V и 3.3V электролиты выдранные со старой материнской платы. Они обязательны чтобы микроконтроллер не зависал от перепадов напряжения и помех от моторов.

Второй модуль в системе — модуль на базе микросхемы L298N. Она позволяет управлять двумя коллекторными двигателями с напряжением питания до 35V. Так же тут имеется линейный  стабилизатор на 5V для питания логики драйвера и микроконтроллера.

Питается схема от трех литиевых банок 18650. Полностью заряженные аккумуляторы будут выдавать напряжение 12,6V и 9,6V, соответсвенно у разряженных. Есть нюанс — падение напряжения на драйвере около 2V, т. е. максимальное напряжение которое может поступать на двигатели это 10,6V что немного ниже 12V рассчетных. Моторы будут работать не в полную силу. Ничего страшного, с таким понижением оборотов редукторами, крутящего момента на гуслях более чем достаточно.

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

Дополнительно оформил возможность подключения тахометров. По сути, на валу двигателя надето колесо с прорезями, которое вращается в зазоре оптопары. С одной стороны стоит инфракрасный диод, с другой фототранзистор. Когда прорезь встает соосно с осью диода и фототранзистора, последний открывается и получается условная 1. Соответственно, пока фототранзистор не засвечен, он закрыт. Это 0. Считая эти переключения, микроконтроллер может  точно знать расстояние пройденное гусеницей. Для питания диода поставил токоограничивающие резисторы, а выход фото транзистора подтянул к земле. По хорошему, оптопару нужно подключать через компаратор, чтобы иметь четкий логический сигнал. Но думаю, и так заработает. Мы же не космический корабль строим, а фановую игрушку.

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

Нарисовал схему и развел плату. Да, схема очень простая и можно было бы все сделать навесным монтажем. Но, на мой взгляд печатная плата в этом плане дает плюс 100500 очков к надежности. Плату сделал двустороннюю, по методу ЛУТ, который я уже описывал на канале. Не знаю, почему многие боятся двусторонних плат? Это не на много сложнее односторонних, зато дает широкие возможности в плане монтажа.

Механическая часть тут проще электронной. В качестве основы — клееная деревянная столешница диаметром полметра из строительного магазина. У меня она покрашена в белый цвет, т. к. осталась еще от 3Д стола, который я делал несколько лет назад.
Гусеницы имеют по 5 точек крепления, использовал их все, чтобы было очень прочно. Прикрутил в отверстия латунные втулки длинной 25мм.
Чтобы стойки не продавили дерево, использовал монтажные металлические пластины из того же строительного. По прикрученным стойкам сделал разметку на одной пластине.
Совместил пластины при помощи бумажного скотча и просверлил дырки диаметром 3мм.
Прикрутил винтиками М3 пластины к гусеницам.
Сделал радиальную разметку, чтобы гусеницы были паралельны и прикрутил их к столу самроезами.
Плату управления прикрутил так чтобы все провода нормально дотягивались до нее.
Для устойчивости, на перед и зад робота установил колесики, подогнав их по высоте проставками из аллюминиевой трубки.



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

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