Давно хотел иметь дома какую-нибудь передвигающуюся штуку, оборудованную камерой, чтобы можно было удалённо поперемещаться и посмотреть, что в доме творится.Конечно можно поразвесить камеры по углам, но хотелось именно поиграть в мобильность. Ну и заодно посмотреть, как программируются такие штуки. Наконец я решился и купил себе набор для самостоятельной сборки робота на базе Raspberry Pi. Мой выбор пал на всё готовенькое: конструктор Yahboom Raspbot.
Подкупал тот момент, что в продаже существует два варианта: c Raspberry Pi и и без него. Понятно, что купить одноплатник отдельно обойдётся сильно дешевле.
Что робот умеет?
- Ездить :)
- Пищать
- Передавать изображение с камеры на мобильник
- Вертеть камерой на 180 градусов по горизонтали и на 180 по вертикали
- Определять расстояние до препятствий
- Передвигаться по чёрной линии
- Управляться с IR пульта
- За счёт софта определять цвет, что за предмет попал в кадр, двигать камерой, удерживая предмет или лицо в кадре, двигаться самому вслед за предметом
Всё это возможно "из коробки". Кроме того, есть доступ к Web-странице со средой программирования на Python, где можно посмотреть готовые обучающие программы и написать свои. Кроме того заявляется, что можно остановить стоковую программу и запустить свою вместо нее (чего я пока не пробовал)
В каком виде приходит?
Не пугайтесь, на английском тоже есть. Но ещё лучше собирать, ориентируясь по видео процесса сборки. Ссылка есть на официальном сайте производителя. Там же находятся и учебные материалы. Что интересно, на видео сборки показан один момент, про который в инструкции не говорится: в определённый момент надо подключить батарею, чтобы сервоприводы выставились в нулевое положение. (А по бумажной инструкции батарея только в самом конце подключается)
Всё. После этого робот готов к использованию. Скачиваете программу на телефон, включаете робота, на телефоне выбираете пункт (не помню как звучит точно) "покажи роботу к какой сети коннектиться", на экране телефона появляется QR-код, вы показываете его в камеру робота, он пикнет. Готово. Можно поехать на кухню, посмотреть как там дела.
О недостатках
Ну, теперь о грустном.В моем случае камера не была приклеена к плате и висела на щлейфе. Что интересно, двусторонний скотч к камере приклеен был, а к плате нет: не была снята защитная плёнка. Пришлось подцепить плёнку ножиком и приклеить камеру самому
Ещё у робота в нулевом положении камера слегка косит вправо. Но очень незначительно. Я даже не сразу заметил.
Есть ошибки в софте: есть вариант движения с обнаружением препятствий ультразвуковым датчиком + с точной коррекцией инфракрасными датчиками. В программе есть лишняя условная вершина
elif distance >= 15 and LeftSensorValue == False and RightSensorValue == False :
car.Car_Stop()
time.sleep(0.1)
car.Car_Spin_Right(90,90)
time.sleep(1)
В результате, когда путь свободен он просто крутится на месте. В учебной программе этот код можно закоментарить, но вот как добраться до ТАКОГО ЖЕ бага в стоковом коде я не придумал. А там таже ошибка. Кроме того, инфракрасные датчики приближения у меня вообще не работают - я пробовал по разному подносить руку, робот считает что препятствия нет. С ультразвуковым всё нормально. Работает корректно.
Что ещё пришлось сделать вручную?
Для движения по чёрной линии у Yahboom Raspbot есть четыре инфракрасных датчика направленных в пол.
Рядом с каждым датчиком синий светодиод. Когда датчик считает, что под ним белый цвет - светодиод не горит. Когда чёрный - горит.
В моём случае крайние датчики понимали разницу между белым и чёрным, а два средних нет. Я не сразу догадался, что рядом с каждым датчиком есть крутилка для регулировки чувствительности.
Мои доработки
Моя первоначальная цель была управлять роботом удалённо. Из коробки он мог управляться только телефоном в той же сети WiFi. Эта проблема легко решилась прокидыванием портов на роутере (какие именно порты прокидывать видно в телефоне в настройках робота)
Вторая проблема посложнее. Робот от аккумулятора может жить только несколько часов. А мне хотелось включать его по команде. Для этих целей я взял одноканальное реле для ESP-01. Саму ESP запрограммировал в HomeAssistant в EspHome, и туда же вывел управление реле.
Купил в Чип_и_Дип стоек для плат и разъёмов, выпилил из оргашки пластину и установил на робота. Мне повезло - на шасси были отверстия ещё для каких-то плат расширения. Ими я и воспользовался.
Реле я запитал от отдельного пауэрбанка. 6600 mAh хватает где-то на полтора суток. С пауэрбанком возникла одна сложность - он не считает это реле за нагрузку и отключается. Приходится его обманывать. Подключать для зарядки телефон, а потом телефон вынимать а реле сразу тыкать. Тогда логика не успевает сообразить, что нагрузка куда-то делась. (Да, я знаю, что есть мини UPS без такого контроля, но у меня таковой нет и какую выбрать модель, я не знаю. Если вы в курсе - поделитесь в коментариях.)
Кстати, на фотке видно, что на шасси остаются свободные разъёмы для подключения "ещё чего-нибудь" и место для OLED-дисплея. И не видно, что есть ещё пара свободных разъёмов для сервомоторов. В документации эти разъёмы описаны, но что именно туда предлагается подключать и как этим управлять, (к примеру, как вывести что-то на дисплей) я не нашёл.
Мои впечатления и зачем я вот это всё написал.
Несмотря на недостатки мне понравился набор. Простой в сборке. Можно что-то попробовать попрограммировать самому. Приличный учебный курс, объясняющий в общих чертах как всё устроено внутри. И при этом в русскоязычном сегменте очень мало о нём информации. Вот я и подумал. А почему бы и нет? Больше роботов! Хороших и разных.
И да, по простоте душевной я хочу оставить ссылку на магазин supereyes.ru, где я купил эту штуку (предвосхищая вопросы, они мне за это не платят просто решилчто если у магазина чуть выростут продажи и это поможет ему не закрыться, а привезти ещё каких-нибудь интересных штучек, то от этого выиграем и мы, простые строители умнодомства)
Но в холодильник не дотянется