← Retour au portfolio English

Firefly MV / dc1394 setup

Vue d'ensemble de l'architecture — projet : cbicari/firefly-mv-dc1394-setup

Objectif

Ce projet configure une caméra de vision industrielle Point Grey Firefly MV (série FMVU), protocole IIDC/DCAM, sur Ubuntu (24.04/26.04), afin qu'elle puisse être :

Tout est piloté par un unique script idempotent, install.sh, qui peut être relancé sans risque.

Structure du dépôt

CheminRôle
install.shOrchestre l'ensemble de l'installation : paquets, règle udev, appartenance au groupe, module noyau, compilation de l'outil de test
udev/99-pointgrey-dc1394.rulesRègle udev accordant un accès USB non-root à la caméra
config/v4l2loopback.confOptions du module v4l2loopback (nom du périphérique, index, etc.)
config/v4l2loopback-load.confAssure le chargement automatique du module au démarrage
tools/dc1394_grab_test.cPetit programme C utilisant libdc1394 pour énumérer/capturer des images directement, à des fins de test
tools/start_virtual_cam.shDémarre le pont GStreamer qui alimente le périphérique de caméra virtuelle
camera_hardware.mdNotes sur le matériel physique de la caméra

Architecture

Une fois la caméra branchée et la règle udev active, l'installation crée deux chemins parallèles.

Schéma d'architecture de firefly-mv-dc1394-setup La caméra se connecte en USB, une règle udev accorde l'accès, puis le flux se divise entre un chemin de test libdc1394 et un chemin GStreamer vers v4l2loopback alimentant un périphérique de caméra virtuelle utilisé par des applications clientes. Caméra Firefly MV IIDC/DCAM via USB Règle udev Accorde l'accès au groupe plugdev libdc1394 API C, accès direct Pont GStreamer start_virtual_cam.sh dc1394_grab_test Test de capture brute v4l2loopback Module noyau (compilé via dkms) /dev/video10 « Firefly MV Virtual Camera » Applications clientes Cheese, navigateur, VLC, …

1. Couche d'accès matériel

La caméra s'énumère comme un périphérique USB. La règle udev (99-pointgrey-dc1394.rules) définit les permissions afin que tout utilisateur membre du groupe plugdev puisse ouvrir le périphérique sans sudo. install.sh copie cette règle dans /etc/udev/rules.d/, recharge udev, et ajoute l'utilisateur courant au groupe plugdev.

2. Chemin direct / test (libdc1394)

dc1394_grab_test.c est compilé avec libdc1394-2 et permet de vérifier que la caméra est visible et capable de fournir des images, indépendamment de toute la mécanique de caméra virtuelle. C'est le moyen le plus rapide de valider le matériel et la configuration udev.

3. Chemin webcam virtuelle (GStreamer + v4l2loopback)

Déroulement de l'installation (install.sh)

  1. Installer les paquets requis (libdc1394-dev, libusb-1.0-0-dev, v4l2loopback-dkms, greffons GStreamer, etc.).
  2. Installer la règle udev, puis recharger/déclencher udev.
  3. Ajouter l'utilisateur courant au groupe plugdev.
  4. Installer les fichiers de configuration du module v4l2loopback.
  5. Compiler v4l2loopback pour le noyau en cours via dkms autoinstall.
  6. Charger le module v4l2loopback.
  7. Compiler dc1394_grab_test.
  8. Vérifier la présence de /dev/video10 (« Firefly MV Virtual Camera »).

Utilisation typique après installation

# Test de capture brute via libdc1394
./tools/dc1394_grab_test 5

# Démarrer le pont webcam virtuelle (Ctrl+C pour arrêter)
./tools/start_virtual_cam.sh

Ouvrez ensuite Cheese, le sélecteur de caméra d'un navigateur, ou vlc v4l2:///dev/video10, et choisissez « Firefly MV Virtual Camera ».

Remarques