Skip to content

Latest commit

 

History

History
202 lines (142 loc) · 10 KB

action-camera.md

File metadata and controls

202 lines (142 loc) · 10 KB

OpenIPC Wiki

Оглавление

Использование 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