Робот-танк. Новости

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

1 . Прикрутил камеру с двумя сервами, подключил с Raspberry, доработал код на Ардуино для управления сервами с геймпада и с веб приложения. Непричесанный код здесь

https://pastebin.com/0TANSzx1

Но он нуждается в доработке. Танк выглядит так.

IMG_20200421_104519

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

2. Настроил вывод с камеры на веб страницу при помощи программы https://elinux.org/RPi-Cam-Web-Interface

При установке выбрал знакомый мне nginx в качестве вебсервера. Теперь на 80 порту Малины можно любоваться картинкой с камеры

3. Настроил веб интерфейс управления танком с выводом изображения с камеры при помощи Node red Dashboard. Флоу ниже

https://pastebin.com/uuzU8JS9

Снимок

Танк управляется при помощи кнопок на экране, а также при помощи клавиатуры. Картинка просто вырезается с интерфейса RPI Cam при помощи фрейма. Теперь можно сидя за компом управлять движением танка по местности =)

ну и видосик

ezgif.com-optimize

 

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

Отправка снимков с камеры Dahua в Telegram при помощи Node Red

Идея такая была:

По запросу из бота Телеграма получать снимок с IP камеры. Применение технологии может быть различное. Например, охранная сигнализация или СКУД.

1. Камера своими средствами обнаружения движения выдает сигнал тревоги, сигнал принимается в среде разработки, отправляется GET запрос на снимок, снимок получается и отправляетcя в Телеграм.

Или можно докрутить идею:

2. На снимке средствами OpenCV распознается лицо и предоставляется доступ авторизованному человеку.

Итак, перейдем с флоу Node red.

22

Тут показан алгоритм для приема снимка в Телеграм по запросу и также вывод снимка на UI Dashboard по нажатию кнопки. Код ниже

https://pastebin.com/bqFqzQ2G

Вкратце опишу, что творится здесь.

По команде /snap из бота получаем команду на GET запрос на IP камеру. Тут важный момент, в камерах Dahua работает дайджест аутентификация, так что этот момент надо учесть в настройках нода http request. Также нужно настроить выхлоп в бинарном виде binary buffer. URL запроса для моей камеры Dahua такой IP/cgi-bin/snapshot.cgi

23

Далее функциональным нодом выполняем инструкции API Telegram для отправки фото в бот:

https://pastebin.com/cZhCGBQ7

Далее идет отправка в Telegram.

Ниже алгоритм для отправки снимка в Dashboard по нажатию кнопки. Get запрос аналогичный, далее идет base64 кодирование бинарного массива и выгрузка в UI.

24.PNG

25.PNG

 

Код для вставки в шаблон виджета ниже:

https://pastebin.com/5W6bsWzH