Родилась идея сделать бюджетную web камеру, используя доступные ингредиенты. Желательно, чтобы у нее был готовый web-интерфейс, чтобы можно было управлять ею удаленно, вращая в разные стороны, чтобы можно было настройки менять, чтобы делать фото-/видео-, скачивать записанное, motion detection чтобы, чтобы, чтобы, чтобы…
Идея родилась давно, реализована и была испытана в качестве watchdogа в автотранспортном средстве… Ну это, когда вы выходите из авто под знаком эвакуации на 5 минут и боитесь, что вас увезут на эвакуаторе, пока вы в магазине очки выбираете, а webкамера стережет и шлет письма на телефон. Но это так, к слову. А в данной статье покажем, как сделать подобную камеру, как работает, как ее настроить и т.п.
Так как камера собирается бюджетная, скорее даже сверхбюджетная, то и составляющие соответствующие:
- raspberry pi zero w (критично, чтобы был встроенный wifi, дабы не брать еще и wifi свисток) 1,7к руб.;
- камерасо шлейфом -500 руб.
- сервоприводы sg-90 — 2шт. — 200 руб.
- пластиковый подвес, вот такой -100 руб.
- блок питания — 1000 руб.;
- коробка, в которой прислали raspberry pi-бесплатно.
Итого: 3500 руб.
Готово!
Программная часть построена вокруг Rpi web cam interface, в котором все работает по сути из коробки. Остается только добавить собственно кнопки управления на странице, скрипты и подключить сервы.
Для начала подключим подвес. Как собирать его обсуждать не будем, т.к. там все интуитивно просто — куда и как вставлять сервы sg-90. Подключаются сервы к raspberry pi также не замысловато, красные провода идут на питание от raspberry (5V), черные — Gnd, оранжевые на gpio raspberry (gpio17, gpio27):
Схемы
*на втором фото присутствует лишний оранжевый провод (первый в верхнем ряду).
*на втором фото присутствует лишний оранжевый провод (первый в верхнем ряду).
Запуск
Сама raspberry pi будет искать wifi точку доступа boss c паролем 1234554321, придется создать эту точку.
На самой raspberry особой настройки производить не требуется, и сразу после заливки на raspberry и загрузки образа, rpi web интерфейс доступен по адресу: 192.168.1.104:8080/html
Подвигать камерой можно нажимая на стрелки на странице, а также можно сделать скриншот, видео записать и т.д., опций на любой вкус и цвет:
При этом скорость передачи видео достаточно бодрая, без подвисаний.
Как поменять скрипты управления подвесом, если сервы двигаются в разные стороны?
Подключившись к raspberry pi по wifi («boss»,«1234554321») через vnc («pi», «raspberry»),
запустить mc и пройти по пути:
mc
cd /var/www/html
Найти там up.sh, down.sh, left.sh, right.sh и поменять их местами по потребности. Например left.sh в right.sh и наоборот, если подвес движется вправо вместо влево.
Скрипты были созданы при установке пакета servoblaster и именно он отвечает за работу с gpio.
Как его устанавливать (хотя здесь в этом нет необходимости) можно почитать в интернете, в файле образа также есть инструкция.
Как добавить-удалить кнопки в Rpi Web interface ?
Подключившись к raspberry pi по wifi («boss»,«1234554321») через vnc («pi», «raspberry») необходимо запустить mc командой sudo mc.
Далее перейти по пути и поправить файл userbuttons:
sudo mc
cd /var/www/html
nano userbuttons
Закомментировать ненужные кнопки:
После обновления страницы браузера, они пропадут:
Зачем вообще нужны эти кнопки? Для добавления опций управления прямо из web-интерфейса.
Закидывая в /var/www/html/macros скрипты управления gpio можно сделать вполне себе рабочий танк.
Выключить все это хозяйство можно также через web интерфейс на соответствующей вкладке:
Энтузиастами в проект Rpi web interface было добавлено уведомление в telegram при необходимости, но год назад это перестало работать. Инструкция как настраивалась эта опция также есть на образе.
Потянет ли raspberry pi zero еще и потоковое аудио?
Попытка настроить предпринималась, используя sox (?) пакет, но была успешной при записи коротких отрезков аудио, при этом сильно страдало потоковое видео. Поэтому от этой опции пришлось отказаться.
Образ — скачать.