Question:
Comment configurer le Pi Zero pour qu'il agisse comme une webcam USB à l'aide de la caméra enfichable?
user3797758
2016-07-15 01:03:17 UTC
view on stackexchange narkive permalink

Il existe de nombreux guides qui vous expliquent comment configurer le raspberry Pi Zero en tant que périphérique mass_storage ou périphérique Ethernet, la plupart d'entre eux mentionnant la possibilité de faire en sorte que le Pi agisse comme une webcam mais aucun n'a expliqué comment le faire.

J'ai essayé de suivre le guide dans la documentation en conjonction avec la documentation UVC (webcam) pour essayer de comprendre comment le configurer mais donc loin je ne peux même pas faire reconnaître à mon ordinateur qu'il y a quelque chose de branché. La seule chose que je peux trouver sur le sujet est ce fil qui me fait penser que c'est un peu obscur.

Comment configurez-vous la caméra? Y a-t-il un guide? est-ce que je mène une bataille perdue?

* "Est-ce que je mène une bataille perdue?" * -> Je pense que vous allez devoir finir par en apprendre beaucoup sur le système et le protocole USB à moins que vous ne trouviez un code prêt à l'emploi pour cela. Comme peut-être des semaines et des mois d'apprentissage ...
Je lis là-dessus depuis un moment maintenant, le problème est que je ne sais pas ce que signifient certaines des entrées pour définir la fonction de la webcam ou (pour mieux dire) ce que l'hôte attend. Sur le deuxième lien se trouve la documentation, mais certaines choses sont un peu obscurcies sans les bonnes connaissances. Lorsque vous recherchez des décharges de descripteurs USB de webcams commerciales, certains champs sont vides ... L'autre chose est que je n'ai aucune idée de la langue des fonctions USB et que je devais mettre le code pour qu'il fonctionne ... Quelque chose que je impossible de trouver en ligne
Ma première incursion dans l'écriture de pilotes de périphériques Linux était destinée à faire fonctionner une caméra USB non prise en charge. Quand je suis arrivé là où j'ai réalisé à quel point une ingénierie rétrograde était nécessaire, j'ai arrêté - ce n'était pas une poursuite valable pour moi. Cependant, la vidéo USB est maintenant normalisée, ce qui signifie que la plupart des caméras standard génériques ne nécessitent pas de pilote spécial au-delà de cela. Tout cela devrait être accessible au public, et c'est ce que vous voulez que le zéro imite - un appareil [conforme à la norme UVC] (https://en.wikipedia.org/wiki/USB_video_device_class). N'essayez pas de faire de la rétro-ingénierie sur une caméra commerciale!
Eh bien, le problème pour moi est que je ne sais pas comment faire reconnaître le Raspberry Pi zero, c'est pourquoi je suis allé à la recherche de descripteurs USB de webcam commerciaux pour faire la lumière sur ce que l'hôte USB attend d'un périphérique standard. Le problème suivant est de faire en sorte que le Pi prenne une photo via la caméra embarquée à la demande
J'ai vu ce lien, avec de bonnes critiques d'autres personnes: http://www.davidhunt.ie/raspberry-pi-zero-with-pi-camera-as-usb-webcam/ Il a également une preuve vidéo de son fonctionnement, j'espère CA aide.
Six réponses:
#1
+4
jdonald
2017-10-16 07:18:34 UTC
view on stackexchange narkive permalink

J'ai cette énumération et le streaming de données synthétiques non compressées vers FaceTime via mon Raspberry Pi Zero W. L'exemple ConfigFS dans la documentation du gadget du noyau fonctionne pour la plupart. Il a quelques fautes de frappe quand il s'agit de la bonne navigation dans le chemin ../ .. , le champ streaming_maxpacket qui n'existe plus dans ConfigFS, et vous devrez définir bDeviceClass = 239, bDeviceSubClass = 0x02, bDeviceProtocol = 0x01. Cependant, pour les débutants, il est en fait plus simple d'exécuter simplement l'ancien modprobe g_webcam . Je suppose que vous avez le dtoverlay = dwc2 requis et que vous avez testé d'autres modules de gadgets tels que g_serial . Il semble que vous utilisiez déjà g_ether ou l'équivalent ConfigFS pour votre solution de mise en réseau de contournement.

Lorsque vous activez le module g_webcam, il n'énumère pas sur un Mac classique / PC Windows / Linux jusqu'à ce que le programme uvc-gadget de l'espace utilisateur soit en cours d'exécution. Mettre en place cela a ses pièges car les correctifs requis n'ont jamais été entièrement revus par Laurent Pinchart et introduisent leurs propres bogues. Vous pouvez trouver mon dépôt corrigé avec des correctifs ici. Je l'ai exécuté avec ./uvc-gadget -d -u / dev / video0 sur Raspbian 8 Jessie et Raspbian 9 Stretch.

Je décris essentiellement les mêmes étapes comme vous l'avez vu joe60 sur les forums Raspberry Pi, mais comme c'est une procédure très sujette aux erreurs, avoir un autre point de référence ne devrait pas faire de mal.

Notez que même une fois que le cas de base fonctionne, il y a une grande croix -produit de cas pour le format ( -f ), le type de mémoire ( -o ), bulk vs isochronous ( -b ) et les données d'image source ( -d vs -i vs -v ), dont la plupart peuvent avoir une prise en charge limitée dans l'application uvc-gadget.

Le problème avec cela est qu'il nécessite une connexion Internet et une connexion suffisamment rapide pour télécharger et télécharger à nouveau. Cela pourrait fonctionner correctement pour certains et avec un peu d'effort, je pourrais créer quelque chose qui est hébergé sur l'appareil cible auquel il est connecté pour obtenir des images, donc aucune connexion Internet n'est requise. À ce stade, j'ai essentiellement décidé de construire un appareil FPGA pour obtenir des images directement à partir du capteur d'image. Mais votre droit plus de références, mieux c'est pour quelqu'un qui essaie cela, peut-être qu'à un moment donné, cela sera possible via une simple connexion USB, mais d'ici là ... :)
À la réflexion, j'ai commencé à construire quelque chose qui fonctionne de la même manière https://github.com/crener/MultiCapture. C'est principalement pour les images fixes de plusieurs caméras, mais cela pourrait aider quelqu'un qui essaie de faire exactement cela. C'est un peu difficile mais les travaux et la documentation sont incertains, mais faites un problème sur github et je vais vous aider :)
#2
+2
Raatje
2019-02-10 09:28:01 UTC
view on stackexchange narkive permalink

Après de nombreuses recherches, je l'ai enfin fait fonctionner maintenant

pour le faire fonctionner, j'ai utilisé le script suivant pour la configuration des configfs https://gist.github.com/kbingham/c39c4cc7c20882a104c08df5206e2f9f

et cette version de l'outil uvc-gadget https://github.com/wlhe/uvc-gadget

Vous dites simplement "regardez ce lien comment cela fonctionne" mais nous recherchons des réponses longues qui fournissent des explications et un contexte. Ne donnez pas une réponse courte en indiquant simplement des liens; expliquez pourquoi votre réponse est juste, idéalement avec des citations. Les réponses qui n'incluent pas d'explications peuvent être supprimées ou vous risquez de faire baisser les votes.
On dirait que c'est fondamentalement la réponse officielle de la fondation Pi car ils lient pour publier ici qui partage les mêmes ressources, si vous faites défiler jusqu'à une réponse de "Gordon Hollingworth" sur ce blog https://www.raspberrypi.org/ blog / nouveau-produit-raspberry-pi-appareil-photo-de-haute-qualite-en-vente-maintenant-a-50 /
#3
+1
MrMesees
2017-07-01 01:47:34 UTC
view on stackexchange narkive permalink

Il existe un pilote de mode gadget g_webcam. J'imagine que si vous jouiez avec la source, vous pourriez rediriger un flux uvc vers la webcam, même si ce serait probablement lent, cela remplirait votre mission.

source: https: // github .com / torvalds / linux / blob / master / Documentation / usb / gadget-testing.txt # L656

#4
  0
paj
2017-05-31 02:20:16 UTC
view on stackexchange narkive permalink

Ce guide vous montre comment installer et exécuter un conteneur Docker et un flux vidéo en direct sur YouTube à partir d'un point zéro.

#5
  0
Alan Corey
2017-10-11 01:22:56 UTC
view on stackexchange narkive permalink

Si l'ordinateur ne reconnaît pas l'appareil photo, le câble est peut-être à l'envers à l'endroit où il se branche, il n'y a que des contacts d'un côté. L'achat d'une caméra USB ou IP est une autre option, j'ai des liens D qui envoient via wifi. Résolution inférieure mais censée être des caméras distantes avec des fonctionnalités telles que la détection de mouvement et un serveur Web intégré.

Le câble USB de type A est peut-être à l'envers?
Non, entre la caméra et le Pi. Lorsque le câble de la caméra se branche sur le Pi, les contacts peuvent être du mauvais côté. Ou la même chose à l'autre extrémité du câble, il n'y a pas de clé pour vous empêcher de le mettre à l'envers. Je ne sais pas comment vous diffusez de la vidéo sur le Pi, probablement V4L.
Donc, votre solution à "Comment faire pour que le Pi Zero agisse comme une webcam?" est brancher l'appareil photo ou en acheter un nouveau?
Faire fonctionner la caméra réelle avec le Zero est assez délicat sans les éléments plus sophistiqués. Je n'ai aucun intérêt pour la vidéo. Je viens de mettre cette page en ligne http://ab1jx.1apps.com/ham/toys/picam/index.html mais j'ai encore besoin de prendre des photos de la caméra vers les connecteurs Pi. Si même le raspistill ne fonctionne pas, c'est ce que je couvre.
Je suis également peu intéressé par la vidéo. Au moment où j'ai posté cette question, je voulais utiliser l'USB pour contrôler essentiellement la caméra depuis un autre ordinateur. Depuis, j'ai codé un utilitaire de capture en réseau qui me permettra de prendre plusieurs images en même temps à partir de différentes caméras sur différents Pis. Ce serait toujours cool de tout faire fonctionner directement en tant que Webcams, mais pour le moment, j'utilise chaque Pi comme un périphérique Ethernet avec mon logiciel en cours d'exécution.
J'ai des doutes sur la qualité de l'image qu'il est possible de sortir de la caméra et je ne sais pas combien de temps y consacrer car j'ai de meilleures caméras. Rien d'autre n'est cependant aussi programmable, tout le reste est un logiciel en conserve. Une expérience consisterait à déterminer le temps d'exposition optimal en trouvant et en regardant le pixel le plus lumineux de la scène. Procrastiner sur le montage d'une meilleure loupe binoculaire afin que je puisse retirer l'objectif de l'appareil photo pour voir pourquoi les images sont si horribles. Peut-être qu'il y a un résidu du ruban adhésif qu'ils ont placé sur le nouvel objectif comme protection.
J'ai regardé ce site et les images que j'obtiens avec l'appareil photo officiel sont meilleures que celle bon marché que vous utilisez ... Je suppose que l'assemblage de l'objectif n'est pas aussi bon ...
Quelle version de caméra avez-vous cependant, c'est une 1.3. C'est un appareil photo officiel, je pense, âgé d'à peine 5 ans. Peut-être qu'il a été construit pour raspberrypi.org mais n'a jamais quitté la Chine jusqu'à présent, il a été dans un entrepôt. Ou il a été retourné comme défectueux bien que le petit ruban adhésif sur l'objectif semblait intact. Je n'en avais jamais essayé un à l'extérieur et je le compare à 400 $ Nikons.
#6
  0
Hanan Abdulla
2017-10-20 08:39:14 UTC
view on stackexchange narkive permalink

Pour pouvoir diffuser et prendre des instantanés, vous pouvez utiliser cette bibliothèque de streamer qui diffuse essentiellement du JPEG. Il est personnalisable et simple à utiliser. Et vous n'avez pas besoin de savoir comment cela fonctionne. Il prend également en charge la caméra RPi officielle en dehors des caméras USB avec un pilote Linux.

Voici le lien vers mjpg-streamer.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...