diff --git a/ru/action-camera.md b/ru/action-camera.md new file mode 100644 index 0000000..0bba9d5 --- /dev/null +++ b/ru/action-camera.md @@ -0,0 +1,200 @@ +# 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 +