Raspberry pi 3 подключение usb камеры
Сегодня статья посвещана организации процесса фото - и видиосъёмки с микрокомпьютера Raspberry pi с последующим сохранением данных в облако в атоматическом режиме.
У меня стояла задача создать систему фото- и видеонаблюдения за птицами у кормушки.
Так как кормушка у меня находилась во дворе дома, то я решил собрать устройство на базе raspberry pi с подключённым проводным интернетом.
Это было сделано на случай, если влага или другие погодные условия выведут электронику из строя, то весь видео и фотоматериал останется в облаке.
В качестве оборудования я использовал:
Raspberry pi 3 B +
7 дюймовый сенсорный дисплей для микрокомпьютера
LAN провод 20 метров
удлинитель и блок питания (преобразователь 5В и 2А)
Этап первый: установка операционной ситемы.
Для микрокомпьютера существуют множество сборок ОС. Я использую официальную Raspberry PI OS
можно скачать специальную программу, которая установит вам данную систему.
Операционная система устанавливается на microSD желательно 8 - 32 Гб памяти.
Этап второй: подключение Pi camera.
Pi camera распозноётся сразу из коробки микрокомпьютером с данной операционной системой.
Подключите камеру до включения микрокомпьютера. Жёстко закрепите камеру, так чтобы не произошло отсоединения шлейфа или касания контактов камер с контактами микрокомпьютера.
Частая проблема с такими камерами - это сгорание при плохом соединении контактов шлейфа и электростатический разряд. Подобная проблема не редкость, но из-за неё микрокомпьютер перестанет обнаруживать pi camera.
Этап третий: подключение сенсорного 7 дюймового дисплея.
Этот этап не обязательный, но он удобен если есть привычка работать в графическом интерфейсе без возможности подключения к большому монитору компьютера.
Этап четвёртый: драйвера для дисплея.
Для этого вам нужно перейти в нужный репозиторий на github и скачать нужную версию для вашего дисплея. Все драйвера можно найти здесь. Там же вы найдёте инструкцию по скачиванию и установке драйверов.
используя внешний монитор с HDMI входом
Не забудьте предварительно подключить LAN провод или подключиться по WI-FI , чтобы иметь выход в интернет.
Если вы пользуетесь первым способом и вы не знаете как найти ip адрес своего микрокомпьютера, то вам могут помочь данные ИНСТРУКЦИИ
Этап пятый: Настройка конфигурации микрокомпьютера.
Для того чтобы ваша камера заработала необходимо перейти во вкладку Raspberry PI Configuration и поставить галочку напротив команды Enable для параметра "Camera"
Этап шестой: Программа для получения фото и видеозахвата с pi camera
Ранее я с ребятами разрабатывали исследовательский проект "Беспилотный автомобиль"
Как раз на базе raspberry pi и pi camera была разработана модель трёхколёсного робота ориентирующегося в пространстве.
Из данного проекта была взята программа, но убран алгоритм распознавания границ и цвета.
Данная программа делает фотографию в разрешении 640x480. Можно делать и в более лучшем качестве.
Также можно записать и видео:
Здесь можно поэкспериментировать с разрешение и яркостью, чтобы получить оптимальный результат и при этом не такой громозкий в размере файл.
При данных разрешениях 10 часов непрерывных съёмок даёт объём около 2,2 Гб
Этап седьмой: передача файлов в облако
В качестве хранилище данных я выбирал между Яндекс Диском и Google Диском. Пока остановился на яндекс Диске.
Инструкция по настройке диска для автоматической приёма данных с устройства представлено ЗДЕСЬ
Пример передачи фотграфий на яндекс диск:
Согласно программе, каждый промежуток времени микрокомпьютер отправляет фотографию в папку "Nablyd", расположенной на яндекс диске.
Время на создание фотографии и её отправку уходит порядка 1 - 2 секунды, поэтому дополнительных задержек нет необходимости ставить.
Видеообзор устройства и процесса видеосъёмки.
Заключение
Данным способом пользуюсь часто и провожу наблюдение за живой природой.
Другие варианты для проведение видео и фотосъёмок не смогли реализоваться в основном для прямой трансляции или записи в облако применяют IP камеру, но у меня такой не было.
- Либо подключаюсь к плате через VNC
- Либо подключаю ее физически к монитору, клавиатуре, мыши и проделываю все ниже указанное.
И так сперва подключу usb камеру к плате и поиграюсь:
pi@raspberrypi:~ $ uname -a && lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
pi@raspberrypi:~ $ dmesg -T
[Wed Feb 15 09:12:06 2017] usb 1-1.5: new high-speed USB device number 6 using dwc_otg
[Wed Feb 15 09:12:06 2017] usb 1-1.5: New USB device found, idVendor=046d, idProduct=0804
[Wed Feb 15 09:12:06 2017] usb 1-1.5: New USB device strings: Mfr=0, Product=0, SerialNumber=2
[Wed Feb 15 09:12:06 2017] usb 1-1.5: SerialNumber: 125C4680
[Wed Feb 15 09:12:06 2017] media: Linux media interface: v0.10
[Wed Feb 15 09:12:06 2017] Linux video capture interface: v2.00
[Wed Feb 15 09:12:07 2017] usb 1-1.5: Warning! Unlikely big volume range (=6144), cval->res is probably wrong.
[Wed Feb 15 09:12:07 2017] usb 1-1.5: [5] FU [Mic Capture Volume] ch = 1, val = 1536/7680/1
[Wed Feb 15 09:12:07 2017] uvcvideo: Found UVC 1.00 device (046d:0804)
[Wed Feb 15 09:12:07 2017] USB Video Class driver (1.1.1)
pi@raspberrypi:~ $ ls /dev/video0 -lh
crw-rw----+ 1 root video 81, 0 Feb 15 09:12 /dev/video0
pi@raspberrypi:~ $ lsusb | grep Webcam
Bus 001 Device 006: ID 046d:0804 Logitech, Inc. Webcam C250
Для определения параметров с какими может работать данная USB камеру в системе потребуется поставить пакет v4l-utils:
pi@raspberrypi:~ $ sudo apt-get install v4l-utils -y
Теперь чтобы отобразить все подключенные опознанные устройства видеозахвата:
pi@raspberrypi:~ $ v4l2-ctl --list-devices
Теперь чтобы отобразить параметры текущей USB камеры (Webcam C250):
pi@raspberrypi:~ $ v4l2-ctl --all --device=/dev/video0
Driver Info (not using libv4l2):
Driver name : uvcvideo
Card type : UVC Camera (046d:0804)
Driver version: 4.4.38
Extended Pix Format
Device Caps : 0x04200001
Extended Pix Format
Video input : 0 (Camera 1: ok)
Width/Height : 640/480
Pixel Format : 'YUYV'
Bytes per Line: 1280
Size Image : 614400
Bounds : Left 0, Top 0, Width 640, Height 480
Default : Left 0, Top 0, Width 640, Height 480
Pixel Aspect: 1/1
Selection: crop_default, Left 0, Top 0, Width 640, Height 480
Selection: crop_bounds, Left 0, Top 0, Width 640, Height 480
Frames per second: 30.000 (30/1)
Read buffers : 0
Из вывода подчеркнул такую информацию, что камера поддерживает streaming (Потоковое видео), размер картинки 640 на 480, система посредством драйвера uvcvideo может с ней взаимодействовать.
Для простой демонстрации видеозахвата использую утилиту luvcview:
pi@raspberrypi:~ $ apt-cache search luvcview
luvcview - USB Video Class grabber
pi@raspberrypi:~ $ sudo apt-get install luvcview -y
pi@raspberrypi:~ $ luvcview -s 640x480 -i 30 -f YUYV
luvcview 0.2.6
SDL information:
Video driver: x11
A window manager is available
Device path: /dev/video0
Frame format: YUYV
Frame size: 640x480
Frame rate: 30 fps
Пронаблюдал, что в ходе экспериментов (изменение характеристик: разрешения, частоты, контрастности, эффектов) у меня на экране рабочего стола (при подключении через VNC или физически на мониторе) стала появляться иконка желтой молнии и процессоры указанные на скриншоте выше нагреваются.
Смотрю текущую температуру:
pi@raspberrypi:~ $ vcgencmd measure_temp
а если я в открытой программе еще и экспериментировал с настройками видеоизображения, то температура все еще повышалась и повышалась.
pi@raspberrypi:~ $ vcgencmd measure_temp
Либо получить температуру можно еще и так:
pi@raspberrypi:~ $ echo "$((cpu/1000)) c"
pi@raspberrypi:~ $ nano cputemp.sh
echo "$(date) @ $(hostname)"
echo "GPU => $(/usr/bin/vcgencmd measure_temp)"
echo "CPU => $((cpu/1000))C"
pi@raspberrypi:~ $ chmod +x cputemp.sh
pi@raspberrypi:~ $ ./cputemp.sh
Wed Feb 15 14:17:38 MSK 2017 @ raspberrypi
, что приложить к ним (процессорам на представленном скриншоте выше) палец невозможно. Замечу, что радиаторы смонтированы.
Вот можно, что так ведется себя плата только в момент тестирования, а не в боевом исполнении, что ж нужно по тестировать.
Итого плата успешно заработала с моей USB камерой, но вот если посредством какого бы то ни было приложения производить детектирование видео потока можно столкнуться что без должного охлаждения/обдува Ваша плата может выйти из строя/выключится. В виду того факта что нагревается от обильных вычислений. Так что по аккуратнее нужно быть. А пока собственно всё, чуть позже я вернуть к этой теме, с уважением Олло Александра aka ekzorchik.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще :)
Карта МКБ: 4432-7300-2472-8059
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
Сегодня раз мои рабочие дни выпали на праздничные дни дня защитника отечества и ввиду того факта, что все работает без сбоев есть время чтобы заняться самообразованием. А речь пойдет о том, как к плате Raspberry Pi 3 Model B и подключенной к ней USB Camera С250 управлять ею через утилиту fswebcam. Утилита fswebcam предназначена для захвата изображений с камер, а для всяких эффектов на изображение задействуется библиотека LibGD (GD Graphics Library). Где возможности библиотеки:
- Удаление первых кадров
- Изменение размера изображения
- Наложение подписи на изображение
- Сжатие для PNG и JPEG
По сути эта утилита еще один инструмент в продолжении заметки luvcview опубликованной ранее.
Итак моя система на плате Raspberry Pi 3 Model B:
pi@raspberrypi:~ $ uname -a && lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Устанавливаю пакет fswebcam:
pi@raspberrypi:~ $ apt-cache search fswebcam && sudo apt-cache show fswebcam | grep Version
fswebcam - Tiny and flexible webcam program
pi@raspberrypi:~ $ sudo apt-get install fswebcam -y
Направив камеру на себя к примеру, а после переключившись на консоль набираю:
pi@raspberrypi:~ $ fswebcam test.jpg
Trying source module v4l2.
No input was specified, using the first.
Adjusting resolution from 384x288 to 352x288.
Captured frame in 0.00 seconds.
--- Processing captured image.
Writing JPEG image to 'test.jpg'.
Информация по сформированной картинке:
pi@raspberrypi:~ $ file test.jpg
test.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, comment: "CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 255", baseline, precision 8, 352x288, frames 3
И получаю снимок того куда была направлена USB камера:
Так на экране есть временные отметки ( это хорошо), и не даром я сделал первоначальные настройки где настроил правильное время и часовой пояс. Данные реальные и точны.
Из предыдущей заметки где я показывал, как получить всю информацию по USB камере я выделил, либо с использование утилиты fswebcam прямо здесь и сейчас:
pi@raspberry:~ $ fswebcam -d v4l2:/dev/video0 -i 0 --list-controls
что данная камера поддерживает разрешение 640×480, а зная это можно сформировать картинку указав с каким разрешение захватить изображение:
pi@raspberrypi:~ $ fswebcam -r 640x480 image2.jpg
pi@raspberrypi:~ $ file image2.jpg
image2.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, comment: "CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 255", baseline, precision 8, 640x480, frames 3
Чтобы на изображение не записывать временную отметку, можно добавить ключ запрещающий это дело:
pi@raspberrypi:~ $ fswebcam -r 640x480 --no-banner image3.jpg
Как говорит документация по данной утилите, все выше указанное можно оформить скриптом:
pi@raspberrypi:~ $ nano webcam
fswebcam -r 640x480 --no-banner /home/pi/screenshot$DATE.jpg
pi@raspberrypi:~ $ ./webcam
Trying source module v4l2.
No input was specified, using the first.
Captured frame in 0.00 seconds.
--- Processing captured image.
Writing JPEG image to '/home/pi/screenshot19_02_2017_164301.jpg'.
Тут все просто, либо же дополнить скрипт чтобы делал каждые 5 секунд снимок экрана:
pi@raspberrypi:~ $ nano webcam2
fswebcam -r 640x480 --no-banner /home/pi/screenshot$DATE.jpg
pi@raspberrypi:~ $ chmod +x webcam2
pi@raspberrypi:~ $ ./webcam2
Чтобы его прервать следует нажать Ctrl + C. Сохраненные снимки будут доступны в каталоге, в моем случае в домашнем.
Помимо указания всех параметров в одну строку можно использовать конфигурационный файл где предопределил необходимые параметры запуск будет уже не столь пугающим:
pi@raspberrypi:~ $ nano fswebcam.conf
palette YUYV
title "I on Work"
info "The Office"
pi@raspberrypi:~ $ fswebcam -c fswebcam.conf
Captured frame in 0.00 seconds.
--- Processing captured image.
Setting title "I on Work".
Setting info text "The Office".
Executing 'mkdir -p /home/pi/archive/24022017 2> /dev/null'.
Writing JPEG image to '/home/pi/archive/24022017/01-2402201730.jpg'.
А картинка получается:
Получается с использованием этой утилиты fswebcam можно сделать, что запустив ее раз или по планировщику в заданные моменты она будет делать снимать того куда направлена USB камера и добавлять на снимок meta информацию, такую как: дату, время,заданное месторасположение. А уже потом через любой скрипт можно из множества изображений сделать видеоряд.
pi@raspberrypi:~ $ fswebcam -r 640x480 -S 30 --flip h --title "I work" --subtitle "The Office" --info "Monitor Active" --jpeg 9 -save office.jpg -q -l 60
Вообще советую посмотреть справку по параметрам: fswebcam —help, man fswebcam
И так я рассмотрел работу своей usb камеры и платы Raspberry Pi 3 Model B с использованием утилиты fswebcam, конечно я понимаю что это не все, а лишь малая часть, но ведь надо же с чего-то начитать, а уже потом в задачу подбирается инструмент для ее решения. Короче это просто заметка, что получать изображения сохранением кадров с USB камеры можно через утилиту fswebcam и не обязательно это может быть плата Raspberry. А раз так, то и заметку где я смотрел за своим газовым котлом можно переделать, утилита fswebcam снимает изображения, а в конце дня происходит слияние множества снимков в единый видео файл. На этом всё с уважением Олло Александр aka ekzorchik.
Вот подошел момент когда я перепробовал различные схемы в организации подключения к своей плате Raspberry Pi 3 Model B камер, пока это были USB камеры, но на них же все не останавливается. А потому сегодня (06.03.2017) я разберу как к утилите motion прикрутить Web— интерфейс ( имя ему: motionEye) и завести на мониторинг одну, несколько различных IP камер c USB камерами у меня что-то не задалось. Все действия будут происходить на моем миникомпьютере Raspberry Pi 3 Model B.
Хочу отметить что установленный дистрибутив на карту MicroSD относится к версии января 2017 года плюс моя заметка по первоначальной настройке:
pi@raspberrypi:~ $ sudo apt-get update && sudo apt-get upgrade -y
pi@raspberrypi:~ $ sudo rpi-update
pi@raspberrypi:~ $ sudo reboot
pi@raspberrypi:~ $ uname -a && lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
pi@raspberrypi:~ $ sudo apt-get install python-pip python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev libx264-142 libavcodec56 libavformat56 libmysqlclient18 libswscale3 libpq5 python-tornado python-jinja2 python-imaging motion v4l-utils -y
После устанавливаю утилиту ffmpeg посредством deb пакета :
pi@raspberrypi:~$ sudo dpkg -i pi_jessie_motion_4.0.1-1_armhf.deb
pi@raspberrypi:~ $ sudo pip install motioneye
pi@raspberrypi:~ $ sudo mkdir -p /etc/motioneye
pi@raspberrypi:~$ sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf
pi@raspberrypi:~ $ sudo mkdir -p /var/lib/motioneye
pi@raspberrypi:~ $ sudo cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
pi@raspberrypi:~ $ sudo systemctl daemon-reload
pi@raspberrypi:~ $ sudo systemctl enable motioneye
Created symlink from /etc/systemd/system/multi-user.target.wants/motioneye.service to /etc/systemd/system/motioneye.service.
pi@raspberrypi:~ $ sudo systemctl start motioneye
После проверяю, что в системе поднялся порт 8765 по которому доступен Web— интерфейс motioneye:
pi@raspberrypi:~ $ sudo netstat -tulpn | grep :8765
tcp 0 0 0.0.0.0:8765 0.0.0.0:* LISTEN 5144/python
pi@raspberrypi:~$ ip r
default via 10.7.8.1 dev eth0 metric 202
10.7.8.0/23 dev eth0 proto kernel scope link src 10.7.8.53 metric 202
И вот передо мной окно аутентификации в Web интерфейс:
Чтобы авторизоваться используем дефолтные данные , где
Username: admin
Password: нет пароля
и нажимаем Login
Нажимаю по данной гиперссылке и добавляю IP камеру:
Camera Type: Network Camera
URL: rtsp://10.7.7.48:554/cam/realmonitor?channel=1&subtype=0
Username: admin
Password: admin
Camera: здесь уже само подставилось: Rtsp Server/2.ORTSP/TCP Camera
и нажимаю OK
После чего как камера успешно добавилась в панели администрирования motionEye можно видеть какие параметры можно настраивать и сам видео поток получаемый с камеры в правой части:
Хорошо, для эксперимента добавляю еще 2 камеры:
rtsp://admin:admin@10.7.7.55:554/cam/realmonitor?channel=1&subtype=0
rtsp://admin:admin@10.7.7.30:554/cam/realmonitor?channel=1&subtype=0
Проверяю температуру (пока кулер не подключал):
pi@raspberrypi:~$ vcgencmd measure_temp
Да уж, видеонаблюдение на миникомпьютере без соответствующего охлаждения ну уж нет, так что кулер нужен.
Добавил еще парочку IP камер:
rtsp://admin:admin@10.7.7.48:554/cam/realmonitor?channel=1&subtype=1
rtsp://admin:admin@10.7.7.79:554/cam/realmonitor?channel=1&subtype=0
pi@raspberrypi:~$ vcgencmd measure_temp
Пока тестировал добавление камер, выявил, что не все можно подключить к Web-интерфейсу, подключаются только те камеры у которых: Тип = ONVIF(h264), в моем случае это были все из серии RVI, может еще какие, но под рукой у меня их нет.
Но тут важно понимать, что сам ZoneMinder очень требователен к ресурсам, а Raspberry Pi 3 Model B этим не может похвастаться, у него просто другие задачи.
Чтобы включить запись видеопотока , нужно зайти в настройки камеры и переключить: Movies в положение ON, а тип записываемого видео:
Preserve Movies: Forever (хотя на свое усмотрение можно указать другое).
А после для активации изменений нажать Apply.
Если камера пишет, то в интерфейсе MotionEye экран камеры отображается красным по контуру:
Чтобы просмотреть видео которое было записано нужно в окошке камеры нажать на иконку стрелочки в право в круге:
И откроется вот такое вот информативное кстати окно управления записанными видео файлами, кстати по умолчанию запись идет если есть движение в кадре:
Просмотреть видео в окне нельзя, но скачивается оно в формате mp4 так что проблем с проигрыванием на компьютере/планшете/смартфоне быть не должно.
Местонахождение сохраняемых видео файлов в системе Raspbian:
pi@raspberrypi:~$ ls /var/lib/motioneye/
Camera1 Camera2 Camera3 Camera4 Camera5
Где Camera2 это для каждой камеры создается свой каталог и он не удаляется если удалить камеру из Web-интерфейса.
Ниже пример содержимого из камеры Camera1 за текущую дату и видеофрагменты:
pi@raspberrypi:~$ ls /var/lib/motioneye/Camera1/2017-03-06/
16-09-22.mp4 16-10-59.mp4.thumb 16-15-28.mp4 16-29-42.mp4.thumb
16-09-22.mp4.thumb 16-11-43.mp4 16-15-28.mp4.thumb 16-51-50.mp4
16-10-59.mp4 16-11-43.mp4.thumb 16-29-42.mp4 16-51-50.mp4.thumb
В файле /etc/motioneye/motion.conf указаны какие камеры сейчас добавлены, а в месте с ними какие конфигурационные файлы под камеру используются.
pi@raspberrypi:~$ sudo nano /etc/motioneye/motion.conf
Внутри этих файлов, к примеру: thread-5.conf предопределен дефолтный путь место сохранения видеофайлов, в целях практического сохранения его лучше предопределить, либо на подключенный к Raspberry Pi 3 Model B внешний жесткий диск, либо в облако (OwnCloud,Dropbox,Yandex-disk). Диск практичнее, примотав его скотчем к плате или выделить под всю систему отдельный бокс.
pi@raspberrypi:~$ sudo nano /etc/motioneye/thread-1.conf
Что еще примечательного, так это то что каждый пункт настройки в Web-интерфейс снабжен всплывающим описание, за что отвечает данная настройка.
В ходе такого осмотра возможностей обнаружил для себя, что можно не только писать видео фрагменты, но и сохранять изображения:
Still Images: On
Preverse Pictures: Forever
После не забываем для принятия изменений нажать Apply.
pi@raspberrypi:~$ ls /var/lib/motioneye/Camera1/2017-03-06/
17-15-31.jpg 17-15-36.jpg 17-15-41.jpg 17-15-46.jpg 17-15-51.jpg
17-15-32.jpg 17-15-37.jpg 17-15-42.jpg 17-15-47.jpg 17-15-52.jpg
17-15-33.jpg 17-15-38.jpg 17-15-43.jpg 17-15-48.jpg 17-15-53.jpg
17-15-34.jpg 17-15-39.jpg 17-15-44.jpg 17-15-49.jpg
17-15-35.jpg 17-15-40.jpg 17-15-45.jpg 17-15-50.jpg
Сохраненные изображения смотрятся также при щелчке по соответствующему значку в экране камеры:
Следом открывает, что-то вроде проводника по изображениям по аналогии с видео файлами:
Если сохраненных изображений много, то при открытии одного, есть возможность листать сохраненные кадры, см. скриншот ниже.
Для обновления на новую версию motionEye:
pi@raspberrypi:~ $ sudo pip install motioneye --upgrade
pi@raspberrypi:~ $ sudo systemctl restart motioneye
Для удаления MotionEye:
pi@raspberrypi:~ $ sudo pip uninstall motioneye -y
pi@raspberrypi:~ $ sudo rm -rf /etc/motioneye/
pi@raspberrypi:~ $ sudo rm /etc/systemd/system/motioneye.service
pi@raspberrypi:~ $ sudo rm -Rf /var/lib/motioneye
pi@raspberrypi:~ $ sudo apt-get remove --purge motion -y
pi@raspberrypi:~ $ ps aux | grep motion
root 441 1.2 2.9 64056 27800 ? Ssl 19:07 0:48 /usr/bin/python /usr/local/bin/meyectl startserver -c /etc/motioneye/motioneye.conf
root 932 0.0 1.3 27720 12528 ? S 19:07 0:00 /usr/bin/python /usr/local/bin/meyectl startserver -c /etc/motioneye/motioneye.conf
pi 4787 0.0 0.2 4280 2020 pts/0 S+ 20:11 0:00 grep --color=auto motion
pi@raspberrypi:~ $ sudo kill -9 441 932
Работает, теперь мне осталось прикупить несколько бюджетных камер (камеры должны поддерживать: ONVIF) из Китая и наладить их установку в необходимом мне месте моего дома. Итого я нашел то приложение которое может воплотить мою задумку, в частности: мониторинг за котлом, за периметром, за моими попугаями (Pirrura Frontalis). На этой ноте я прощаюсь, с уважением Олло Александр aka ekzorchik.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще :)
Карта МКБ: 4432-7300-2472-8059
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
Эта инструкция о том как подключить USB-камеру к Raspberry Pi или BeagleBone Blue и использовать ее с ROS (Robot Operating System) — чтобы читать данные с камеры через ROS image_view и даже транслировать видео поток в веб-браузер!
В конце видео демонстрация на роботе EduMip.
1) В качестве бонуса мы создадим распределенную систему ROS.
2) Приложение Roscore и приложение для просмотра изображений будут работать на ПК (мастер) и узел камеры на Raspberry Pi (ведомый).
3) Чтобы настроить master и slave, нам нужно обновить переменные среды на обоих устройствах.
4) На мастере: найдите IP-адрес устройства. Для ethernet net_dev может быть как enpXXs0 или ethX:
5) Использовать IP-адрес в качестве значения для переменной ROS_IP:
6) И для ROS_MASTER_URI:
7) Если вы хотите использовать эти значения для будущих сеансов, вы можете сохранить значения в файле .bashrc в своем домашнем каталоге:
8) Подключитесь к Raspberry Pi через ssh:
9) Для RPi в качестве подчиненного устройства добавьте главный IP-адрес для ROS_MASTER_URI
10) И IP-адрес Raspberry Pi для ROS_IP
11) Теперь пришло время подключить USB-камеру.
12) Проверьте, распознана ли камера системой::
13) Установите узел ROS usb_cam с необходимыми зависимостями:
14) У узла usb_cam уже есть тестовый файл запуска:
15) Прежде чем запускать этот файл, давайте запустим ядро ROS на master:
16) И теперь запустите узел usb_cam на slave:
17) Теперь мы можем видеть созданные темы. Мы можем проверить их либо на master, либо на slave.
18) Перевидите текущий процесс в фоновый режим с помощью CTRL + Z и выполните команду bg, чтобы продолжить выполнение в фоновом режиме. (на варианте Ubuntu не full desktop и без экрана, запустите просто еще один терминал)
19) Чтобы увидеть темы в терминале:
20)… или в графическом интерфейсе:
21) Чтение данных камеры с помощью image_view:
22) Или используя rqt_image_view
23) Перенести фоновую задачу на передний план:
24) Последний эксперимент на сегодняшний день — потоковая передача в web
25) Установка узла ROS веб-видео-сервер:
26) Чтобы сделать это правильно, создайте рабочую область для catkin для нашего пользовательского файла запуска:
27) Затем создайте пакет ROS:
28) Создайте файл запуска с помощью nano, vim итд.:
На Beaglebone Blue с usb камерой A4Tech у меня сработал такой код:
29) Соберите пакет:
30) Снова запустите ядро ROS на master:
31) И запустите созданный файл запуска:
32) Порт веб-видео-сервера по умолчанию — 8080
33) Открыть URL в веб-браузере: :8080
Ссылки на документацию:
USB камеры можно использовать практически любые, у которых есть драйвера для linux, также аналогично можно использовать Raspberry Pi Camera Module ссылка выше.
Пример как это работает на BeagleBone Blue с камерой A4Tech:
Поиск карты тройка на видео с USB камеры BealeBone Blue (алгоритм распознавания работает на ноутбуке с master ROS).
Читайте также: