Création d’un serveur Web avec interface vidéo pour exploiter le FLIR Lepton 3.5
Dans l’optique de fusionner le flux thermique avec le flux optique pour disposer d’une caméra thermique avec une meilleure qualité, nous allons mettre en place une interface Web pour retransmettre la vidéo du FLIR Lepton 3.5. Pour cela, nous allons installer Leptonic grâce à la source suivante : « https://github.com/themainframe/leptonic ».
Branchement du FLIR Lepton 3.5 au Raspberry Pi 400 en GPIO
La mise en place du serveur web va reposer sur les bus de données SPI et I2C communiqués avec le Raspberry. Le FLIR Lepton 3.5 sera donc branché en GPIO grâce à la carte d’interfaçage FLIR Lepton Breakout Board v2.0.
Les branchements sont décrits sur la page du composant (voir ici).
Mise en place de l’interface Web sur le Raspberry
Prérequis
Dans un premier temps, nous lisons les prérequis :
- OS Linux
- 0MQ/ZeroMQ (libzmq3-dev) pour l’interface caméra / frontend IPC
- Activation de l’interface SPI et I2C
- NodeJS pour le frontend (utilisation de yarn / npm)
- Taille du buffer de spidev assez grande pour recevoir un segment VoSPI entier du Lepton 3.5 (10004 bits avec télémétrie activée, 9840 sans)
Nous commençons donc par activer les interfaces SPI et I2C. Il faut cliquer sur l’icone Raspberry du bureau puis aller dans Préférences et Configuration du Raspberry Pi. Cela peut aussi se faire en utilisant la commande « sudo raspi-config » sur le terminal.
Nous installons les librairies ZeroMQ (bibliothèque de messagerie asynchrone) avec la commande suivante :
Terminal
1 |
sudo apt-get install libzmq3-dev |
Enfin, nous finalisons les prérequis par la modification du spidev bufsiz. C’est le tampon alloué par l’utilisateur pour les périphériques SPI, par défaut il est de 4096 bits.
Terminal
1 2 3 4 5 6 |
sudo nano /boot/cmdline.txt # édition du fichier cmdline spidev.bufsiz=10100 # ajout de l'argument en fin de ligne sudo reboot # on redémarre la machine cat /sys/module/spidev/parameters/bufsiz # on verifie que le buff size est mis à jour |
Après redémarrage, la dernière commande nous affiche bien « 10100 », le spidev bufsize a donc été mis à jour.
Compilation de Leptonic
Ensuite, sur le répertoire principal, nous allons télécharger le GitHub leptonic :
Terminal
1 2 3 4 5 6 |
git clone https://github.com/themainframe/leptonic # télécharge le dossier leptonic à partir de GitHub cd leptonic # on se place dans le dossier téléchargé make # compile le Leptonic IPC serveur make examples # compile les exemples cd frontend # on se place dans le dossier frontend npm install # installation des dépendances de NodeJS |
Exécution – Interface Web du Lepton sur le Raspberry
Pour exécuter, nous allons ouvrir 2 terminal sur le Raspberry :
- Démarrage du serveur IPC
- Démarrage de l’interface Web avec l’application Frontend
Terminal
1 2 |
cd leptonic # on se place dans le répertoire leptonic ./bin/leptonic /dev/spidev0.0 # on démarre un serveur IPC de l'interface 0 des périphériques SPI |
Terminal
1 2 |
cd leptonic/frontend # on se place dans le répertoire frontend npm start # démarrage de l'interface Web |
Visualisation de l’interface Web du Lepton sur un navigateur
Enfin, nous pouvons visualiser l’interface sur un navigateur de n’importe quelle machine connectée sur le même réseau que le Raspberry.
Pour cela, il suffit de rentrer l’adresse suivante dans le navigateur « adresse-IP-Raspberry:3000 ». En effet, nous utilisons le port 3000 qui est un port TCP, il utilise le Transmission Control Protocol.
Dans notre cas, nous allons sur Firefox et nous écrivons « 192.168.1.197:3000 », comme sur l’image ci-dessous :