J'ai travaillé sur la mise en place d'une webcam Raspberry Pi, grâce à un article sur PingBin. Cependant, je ne parviens pas à surmonter un problème où la caméra se perd après quelques heures de prise de photos.
J'ai pris la webcam HD Microsoft LifeCam Cinema 720p mentionnée dans l'article et connecté à un concentrateur haute vitesse enfichable à 7 ports. J'ai également doublement connecté un Raspberry Pi Model B au hub, à la fois pour l'alimentation et pour les données. Enfin connecté l'adaptateur WiFi USB Wi-Pi au hub et l'a configuré pour mon réseau. Voici une photo de ma configuration matérielle:
En ce qui concerne la configuration du logiciel, j'exécute une image Raspbian «wheezy» du 16/12/2012. J'ai rendu mon motion.conf disponible. J'ai configuré motion
en tant que démon pour prendre un instantané toutes les 10 secondes. J'ai un cronjob qui télécharge le dernier instantané sur un serveur Web pour le visionner.
Tout cela fonctionne très bien pendant quelques heures (la plus longue durée d'exécution a été d'environ une demi-journée), mais la caméra deviendra perdu, comme on peut le voir en regardant /var/log/syslog
:
10:46:25 motion: [1] v4l2_next: VIDIOC_QBUF: No such device10 : 46: 25 mouvement: [1] Erreur fatale du périphérique vidéo - Fermeture du périphérique vidéo10: 46: 25 mouvement: [1] Fermeture du périphérique vidéo / dev / vidéo010: 46: 30 mouvement: [1] Nouvelle tentative jusqu'à la connexion réussie avec la caméra10: 46 : 30 motion: [1] Impossible d'ouvrir le périphérique vidéo / dev / video0: Aucun fichier ou répertoire de ce type
Si je regarde ensuite la sortie de lsusb
, Je ne vois même plus la caméra répertoriée comme l'un des appareils connectés (il en va de même pour ls / dev / bus / usb / 001 /
):
Bus 001 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hubBus 001 Device 016: ID 0424: 9512 Standard Microsystems Corp. Bus 001 Device 017: ID 0424: ec00 Standard Mic rosystems Corp. Bus 001 Device 018: ID 1a40: 0201 Terminus Technology Inc. FE 2.1 7 ports HubBus 001 Device 019: ID 148f: 5370 Ralink Technology, Corp. Adaptateur sans fil RT5370
J'ai essayé tout ce à quoi je pouvais penser, y compris un cronjob racine qui arrête le mouvement
une fois par heure pendant quelques secondes pour donner une «pause» à la caméra:
sudo service motion stopsleep 5sudo service motion start
Cela n'a eu aucun effet notable. J'ai même essayé de rechercher comment désactiver par programme le port USB de l'appareil afin de redémarrer la caméra, mais il semble que ce ne soit pas possible (outre le fait que ce serait un piratage désolé). La caméra ne fournit pas d'interface puissance / niveau
mais seulement puissance / persistance
, donc j'ai même essayé de la basculer en vain:
echo 0 | sudo tee /sys/bus/usb/devices/usb1/1-1/1-1.3/1-1.3.2/power/persist
La seule façon dont j'ai pu obtenir motion
pour continuer à prendre des instantanés consiste à déconnecter physiquement la webcam du hub, puis à la reconnecter et à redémarrer le démon.
Toute idée sur la façon d'empêcher la caméra de fonctionner hors ligne? Il semble que la caméra s'éteigne après un certain temps de connexion à l'alimentation.
Mise à jour: J'ai abandonné cette caméra USB et j'utilise maintenant le module de caméra Pi avec beaucoup de succès.