úterý 29. října 2013

Raspberry Pi a USB web kamera

Potřeboval jsem rychle udělat kameru, která by byla přístupná na síti a online streamovala data a případně na základě vyhodnocení pohybu posílala notifikaci. Protože vlastním Raspberry Pi využil jsem volně dostupný program motion. Základním požadavkem  tohoto řešení je využití kompatibilní webové kamery a ve většině případů i aktivní USB hub (tedy hub s externím napájením). Kompatibilitu USB kamery a hubu je možné ověřit na těchto stránkách: RPi USB WebcamsRPi Powered USB Hubs. Konfigurace obsahuje několik jednoduchých kroků.

Použitý HW
- Raspberry Pi s instalovaným Raspbian (Kernel 3.6)
- Microsoft LifeCam  VX-7000 (napájená z aktivního USB hubu)
- Belkin USB 2.0 Hub 4-port Economy

0. předpokládá se zkonfigurované Raspberry Pi s pevně nastavenou IP adresou (při použití DHCP je problém s funkčností). Připojení přes LAN nebo Wifi bez omezení.

1. aktualizace SW a driverů Raspberry Pi plus instalace RPI a motion
sudo apt-get install rpi-update
sudo rpi-update
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install motion

2. ověření, že máme rozpoznanou USB kameru
lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 045e:0750 Microsoft Corp. Wired Keyboard 600
Bus 001 Device 005: ID 045e:0723 Microsoft Corp. LifeCam VX-7000 (UVC-compliant)

3. upravíme konfiguraci motion 
sudo nano /etc/motion/motion.conf

Konfigurační soubor je poměrně rozsáhlý a tak je nejjednodušší upravit nejprve klíč control_localhost, aby bylo možné konfiguraci upravovat přes web rozhraní. Nastavíme control_localhost na OFF, any bylo možné upravovat parametry vzdáleně. Na web rozhraní se dostaneme přes url ve tvaru IP_adresa_raspberry:8080. Port 8080 je implicitní nastavení, které lze změnit. Následující parametry pro motion se většinou nastavují.

daemon: nastavíme na ON, aby se motion nastartoval jako služba po startu raspberry.
webcam_localhost: nastavíme na OFF, abychom se mohli připojit na web kameru vzdáleně 
stream_port: port na kterém bude přístupný video stream (implicitní hodnota 8081),
control_localhost: nastavíme na OFF, any bylo možné upravovat parametry vzdáleně
control_port: port interface pro editaci konfigurace motion přes web 
framerate: počet snímků za sekundu (nedoporučuje se nastavovat více jak 5)
post_capture: počet snímků, které se mají pořídit při detekci pohybu 

4. nastavíme motion jako daemon službu
sudo nano /etc/default/motion
a nastavíme klíč start_motion_daemon=yes

Nyní ověříme, zda nám motion naběhne jako daemon služba pomocí příkazu
sudo service motion start

POZNÁMKA
Připojení web kamery přes aktivní USB hub není vždy nutné. V konkrétním případě (pro daný model USB kamery) je nutné vyzkoušet, zda bude stačit pro napájení web kamery výkon dodávaný z Raspberry Pi.

Odkazy
http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionGuideBasicFeatures
The USB video device class (also USB video class or UVC) 

Žádné komentáře:

Okomentovat