Родилась идея сделать бюджетную 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 (?) пакет, но была успешной при записи коротких отрезков аудио, при этом сильно страдало потоковое видео. Поэтому от этой опции пришлось отказаться.

Образ — скачать.