# OpenIPC Wiki [Оглавление](../README.md) Использование OpenIPC в качестве бюджетной экшн-камеры --------------------------------

Logo

Фото и видеокамеры давно совмещают в себе несколько устройств. Так, фотоаппарат, подключенный к компьютеру может быть использовать в качестве веб-камеры. Телефон в машине может служить видеорегистратором. Поэтому идея использовать IP-камеру как экшн-камеру родилась сама собой. Для сборки на таком модуле должны присутствовать: * Слот под microSD карту памяти * USB-порт под wifi адаптер * Аудио вход/выход для микрофона и динамика * Хороший чувствительный сенсор ### Сборка камеры Под эти требования подходят платы нескольких производителей: * CamHi: * gk7205v200 + imx307 * gk7205v300 + imx335 * SMTSEC: * gk7205v200 + imx307 * gk7205v300 + imx307 * gk7205v300 + imx335 5 мегапиксельный сенсор imx335 позволит, при дальнейшей обработке видео, использовать цифровую стабилизацию. В качестве корпуса хорошо подходят "шары", т.к. они имеют минимальный размер и обтекаемую форму. Пластмассовые имеют малый вес, но обладают множеством вентиляционный отверстий, поэтому использовать их в дождливую погоду или рядом с источником брызг не получится. Металлические тяжелее, но обладают герметичностью. Интересно выглядит распределительная коробка 50х50, которую можно сдвоить и получить кубик.

Корпуса вид спереди Корпуса вид сбоку

Для запуска камеры, ей необходимо подать как минимум 4В, поэтому прямое питания от одного литиевого аккумулятора невозможно. Нужно воспользоваться любыми повышающим преобразователем напряжения, например, MT3608, настроенным на 5В и выше. Также понадобится модуль зарядки аккумуляторов, подходящий вариант TP4056. Для индикации работы служит двухвыводной двухцветный светодиод, подключенный через токоограничительный резистор в разъём ирката. Сопротивления резистора подбирается исходя из необходимой яркости и настроенного напряжения на повышающем модуле.

Вид изнутри

Аккумуляторы подбираются подходящие по размеру. Хорошо подходят: * квадратные от мобильных телефонов * круглые от электронных сигарет * небольшие пакеты от различных электронных устройств Аккумулятора ёмкостью 3Ач с платой gk7205v200 + imx307 хватает приблизительно на 4 часа работы.

Аккумуляторы

Не забываем подключить микрофон. Для уменьшения наводок, желательно использовать экранированный провод. Вес камеры в пластмассовом корпусе составляет около 100 грамм. Крепление можно прикрутить непосредственно к корпусу или через стандартную для фототехникигайку 1/4".

Крепление Вес

### Настройка камеры Отключаем задержку u-boot'а: `fw_setenv bootdelay 0` Отключаем запуск неиспользуемых служб, замедляющих работу: **Внимание! Доступ по сети станет не возможен!** ``` cd /etc/init.d chmod -x S40network S49ntpd S50dropbear S50httpd S50snmpd S50telnet S60crond S92motion S93telegrambot ``` И создаём новую `S94actioncam`: ``` #!/bin/sh mount | grep mmc || exit cd /mnt/mmcblk0p1 number=`ls -dl */ | wc -l` number=$((number+1)) mkdir $number mv *.mp4 $number/ ``` И `S96led`: ``` #!/bin/sh /usr/bin/led_blink & ``` Файл `/usr/bin/led_blink`: ``` #!/bin/sh gpio_0=14 gpio_1=15 # pin_mux echo "$gpio_0" >/sys/class/gpio/unexport echo "$gpio_1" >/sys/class/gpio/unexport echo "$gpio_0" >/sys/class/gpio/export echo "$gpio_1" >/sys/class/gpio/export # dir echo "out" >/sys/class/gpio/gpio$gpio_0/direction echo "out" >/sys/class/gpio/gpio$gpio_1/direction while true do sleep 1 echo "0" >/sys/class/gpio/gpio$gpio_0/value echo "0" >/sys/class/gpio/gpio$gpio_1/value sleep 1 echo "0" >/sys/class/gpio/gpio$gpio_0/value echo "1" >/sys/class/gpio/gpio$gpio_1/value done ``` Не забываем сделать все файлы исполняемыми: ``` chmod +x S94actioncam S96led chmod +x /usr/bin/led_blink ``` `gpio_0` и `gpio_1` устанавливаются в соответствии с выбранной платой. При включении питания, будет загораться жёлтый светодиод, после старта стримера, он меняет цвет на зелёный и продолжает мигать с периодичностью в 1 секунду. Время загрузки составляет около 10 секунд. Эти же gpio прописываем в yaml'е: ``` cli -s .nightMode.irCutPin1 14 cli -s .nightMode.irCutPin2 15 ``` Включаем запись звука: ``` cli -s .audio.enabled true cli -s .audio.srate 24000 cli -s .audio.codec aac ``` Вставьте флэш-карточку в камеру и посмотрите, куда она смонтировалась: ``` mount | grep mnt ``` Этот путь нужно указать в настройках стримера: ``` cli -s .records.enabled true cli -s .records.path /mnt/mmcblk0p1/%Y-%m-%d-%H.mp4 ``` Теперь, после загрузки камеры, старые видео будут перемещаться в новую папку, а последний видеоролик лежать в корне флэшки. ### Известные проблемы Флэшку лучше использовать быструю, т.к. на динамично изменяющихся сценах возрастает битрейт видео, и может произойти выпадение кадров до нескольких секунд вместе с аудио. Каждый ролик начинается с нескольких секунд статичного кадра. Это связано с автонастройкой сенсора стримером. Т.к. запись видео прерывается некорректно, то некоторые файлы на компьютере могут открываться с большой задержкой. ### Улучшения * wifi для копирования записанных видеороликов и настройки * usb mass storage для копирования записанных видеороликов * динамик для оповещения о разряде и других событий сигналом или голосом * RGB светодиод для индикации работы * управление питанием по кнопке для корректной записи последнего закодированного блока на флешку * система питания на основе AXP173 (AXP176) для контроля за разрядом батареи * использования "двуглазых" плат с различными объективами * RTC для корректного наименования файлов * GPS для записи координат съёмки (в метаданные или субтитры) * гироскоп для стабилизации видео * дисплей с тачскрином/джойстиком для настроек * PQTools для настройки качества изображения

Куб 1 Куб 3 Куб 2