Deux circuits électroniques de capture d'image : l'ESPion (1)
Rédigé par roi_matou
Aucun commentaire
Classé dans : Productions

L'intégration d'une caméra dans un nichoir pour petits passereaux, qui est le projet à l'origine de l'ESPion, impose plusieurs contraintes importantes. Contrainte d'espace d'abord : le circuit électronique et la caméra doivent tenir dans un nichoir d'environ 14x14x25cm, sans gêner l'entrée des oiseaux. En outre, la caméra doit être fixée à une distance suffisante du fond du nichoir pour avoir un cadre d'image assez large et pouvoir faire le point. La deuxième contrainte concerne l'alimentation électrique : le nichoir étant fixé à l'extérieur, dans un arbre et à bonne hauteur (2 à 2,5 mètres), le circuit ne doit pas dépendre d'une prise secteur et doit pouvoir fonctionner sur accumulateur. Le circuit électronique doit également être protégé des contraintes environnementales liées à son utilisation extérieure : la conception doit garantir l'étanchéité à l'eau et à la poussière et le maintien d'une température de fonctionnement acceptable. Autre conséquence de ce contexte d'utilisation, un raccordement au réseau internet pour récupérer le flux vidéo de la caméra n'est pas possible sans le déploiement d'une infrastructure importante ; la caméra doit dans ce cas disposer d'un stockage de données local et/ou d'une connectivité sans fil. Enfin, la caméra fonctionnant dans la quasi-obscurité du nichoir, elle doit pouvoir capter suffisamment d'informations pour que le projet présente un intérêt, ce qui implique qu'elle puisse capturer des images infrarouges et disposer d'un éclairage du même type (un éclairage en lumière visible étant exclu pour ne pas déranger les oiseaux). Si plusieurs solutions commerciales clé-en-main existent (à des prix prohibitifs), aucune d'entre elles ne répond à toutes les contraintes énumérées plus haut. L'objectif est donc de proposer une solution dans un budget contenu, moyennant quelques concessions.

La fonction de calcul a été confiée à un microcontrôleur ESP32-CAM. D'un point de vue technique, "[l]es microcontrôleurs se caractérisent par un plus haut degré
d'intégration, une plus faible consommation électrique, une vitesse de
fonctionnement plus faible (de quelques mégahertz jusqu'à plus d'un
gigahertz) et un coût réduit par rapport aux microprocesseurs
polyvalents utilisés dans les ordinateurs personnels." Les microcontrôleurs sont en général spécialisés dans la réalisation d'une tâche spécifique, comme l'ESP32, qui intègre un processeur de signal numérique "optimisé pour exécuter des applications de traitement numérique du signal" 1.
Il est en outre capable de gérer de nombreuses entrées et sorties, ce
qui lui permet d'intégrer dans sa configuration ESP32-CAM un module de
caméra OV2640 2 mégapixels à courte focale
et un lecteur de carte µSD. Ce microcontrôleur permet ainsi de capturer
un flux d'images, de l'enregistrer localement ou de le diffuser en
direct en Wifi. Ces caractéristiques en font le meilleur candidat pour
le projet.
L'ESP32-CAM possède néanmoins plusieurs inconvénients. Ses capacités de calcul limitées nécessitent d'abord d'optimiser le programme de streaming fourni en exemple. Celui-ci gère l'encodage du flux vidéo, génère le serveur web qui permet d'accéder au flux depuis un navigateur et propose plusieurs autres fonctionnalités, comme la reconnaissance faciale et diverses options de compatibilité. Yves Pelletier a ainsi réalisé une version minimaliste de ce programme (simplification de l'interface web, retrait de la fonction de reconnaissance faciale, retrait des options de compatibilité) qui permet de passer de “1400 lignes de code réparties en 4 fichiers” à un seul fichier de 225 lignes. L'interface de paramétrage de la caméra (exposition, luminosité, contraste...) disparaissant dans l'opération, ces options sont rendues accessible via quelques lignes de code rajoutées au programme simplifié. Ensuite, l'ESP32-CAM possède une antenne Wifi intégrée d'une portée insuffisante, qui dans le cadre de ce projet doit être remplacée par une antenne externe, au prix d'un peu de travail de soudure2. La résolution du signal vidéo peut également être limitée dans le programme du microcontrôleur en fonction de la qualité de la réception du Wifi. Enfin, l'opération la plus délicate consiste à retirer la colle qui immobilise la bague de mise au point du module de caméra OV2640, puis à retirer le filtre infrarouge logé derrière3. Ces interventions au scalpel peuvent s'avérer destructives si elles sont mal réalisées, mais elles permettent d'une part de gagner en netteté (mise au point), et d'autre part de parer à l'absence de lumière visible dans le nichoir. Sans son filtre infrarouge, et grâce à l'ajout d'une LED infrarouge au circuit (voir le schéma ci-dessous), la caméra peut dès lors capturer des images dans le spectre invisible, en "fausses couleurs", sans déranger les occupants4.

Une fois résolues les contraintes de taille, de coût, de capture et de récupération du flux vidéo, reste à dimensionner l'alimentation électrique. L'ESP32-CAM fonctionnant ici de manière autonome, le choix s'est porté sur un accumulateur de secours 5V USB (autrement appelé powerbank). Ce type de produits possède en général un bon rapport encombrement/capacité/prix, et son interface USB permet de l'employer à d'autres fins en dehors de la période d'utilisation du nichoir. La capacité de l'accumulateur a été déterminée par l'autonomie souhaitée de la caméra, qui devait correspondre à peu près à la période allant de la nidification d'un couple à l'envol des jeunes. Pour les mésanges et les moineaux, on peut ainsi compter 2 semaines d'incubation, 3 semaines de présence au nid avant l'envol, auxquelles on peut ajouter 2 semaines de nidification en amont, soit un total de 7 semaines. Afin de disposer d'une telle autonomie, l'ESP32-CAM a été pourvu d'un dispositif d'allumage/extinction via un relais radiocommandé (acheté sous forme de module prêt à l'emploi). Ainsi, seul le relais est alimenté en permanence (5mA en veille) et la caméra n'est allumée que lorsqu'on la regarde, c'est-à-dire lorsque le nichoir est manifestement occupé. Grâce à ce système et un accumulateur de 10000mAh, le circuit a pu effectivement fonctionner pendant 7 semaines.
L'accumulateur, le relais radiocommandé et l'antenne Wifi externe ont été placés dans un boîtier IP65 accolé au nichoir afin de ne pas l'encombrer, de protéger ces éléments contre les intempéries et de récupérer l'accumulateur sans déranger le nid si nécessaire. Seuls le module de caméra et la LED infrarouge ont été fixés sous le toit du nichoir, dans un boîtier de récupération en plastique transparent, à l'abri de l'humidité. L'accumulateur a été installé mi-mars afin de lui épargner les températures trop froides qui auraient entamé son autonomie.

A
l'arrivée, on obtient un dispositif dont l'efficacité est certes modeste (fonctionnement
intermittent, résolution faible, latence possible, qualité visuelle), mais qui est très peu
intrusif, peu coûteux par rapport aux
solutions existantes, plutôt robuste, économe en énergie et très autonome. Sa réalisation, qui peut s'avérer délicate, présente plusieurs intérêts :
- Il permet d'approfondir l'exploration des microcontrôleurs et d'un langage de programmation compilé (le C), déjà abordés dans la réalisation du Megafon Lenina ;
- Il nécessite d'aborder quelques notions d'optique importantes (nature de la lumière, vision humaine et couleurs, longueurs d'onde, distance focale, exposition...);
- Il constitue une première approche des principes de l'image numérique;
- Il permet de se questionner sur les contraintes fortes liées au déploiement de systèmes embarqués ;
- Il oblige à replacer la pratique de l'électronique de loisirs dans une hiérarchie où le respect de l'écologie des passereaux prime sur l'enjeu technique ou pédagogique.
Parmi les améliorations possibles, l'ajout d'un port USB externe pour la recharge de l'accumulateur pourrait se révéler très utile pour ne pas avoir à ouvrir le boîtier. Les réglages de l'image et le calibrage de la puissance de la LED infrarouge pourraient en outre être optimisés.
Matériel
ESP32-CAM avec module de caméra OV2640 et antenne wifi x1 > 12,05€ (/pièce) ; convertisseur USB-série TTL 3,3/5V x1 > 5,30€ (/pièce) ; relais radiocommandé 433MHz x1 > 9,87€ ; boîtier ABS 158x82x54mm IP65 x1 > 6,59€ (/pièce) ; passes-fils polypropylène IP66 x3 > 0,39€ (/pièce, lot de 10) ; nichoir en mélèze avec trou d'envol 32mm x1 > 29,90€ (/pièce) ; batterie externe USB 5V/10000mAh x1 > 17,99€ (/pièce) ; résistance 220Ω x1 > 0,169€ (/pièce, lot de 10) ; LED infrarouge (890nm) x1 > 0,511€ (/pièce, lot de 10) ; carte de circuit imprimé pour prototypage > 2,06€ (/pièce) ; fil de câblage multibrins (souple) 24AWG > 0,15€ (15,00€/30m) ; étain à souder > 0,10€ (9,50€/100g).
Coût de revient estimé : 82,33€. Le coût est calculé à
partir des catalogues RS Components (composants), Banggood (modules), Boulanger (batterie) et LPO (nichoir). Les prix
relevés sont ceux des composants à l'unité ou vendus en petites quantités.
Ressources
- https://electroniqueamateur.blogspot.com/2020/01/esp32-cam-premiere-utilisation-avec.html
- https://electroniqueamateur.blogspot.com/2020/01/esp32-cam-un-web-server-minimaliste.html
- https://marksbench.com/electronics/removing-ir-filter-from-esp32-cam
- https://framboiseaupotager.blogspot.com/2017/09/controler-distance-tout-appareils.html
- https://randomnerdtutorials.com/esp32-cam-connect-external-antenna
- https://projetsdiy.fr/esp32-cam-aithinker-flash-firmware-test
Fichiers
Notes
1 Il s'agit du Tensilica Xtensa LX6, prédécesseur du LX7 décrit sur la page dédiée du constructeur.
2 Cette opération est décrite dans le wiki. À noter que certains modules sont livrés déjà prêts pour l'utilisation d'une antenne externe.
3 Idem. L'opération est entièrement décrite (en anglais) et illustrée sur le blog Mark's Bench.
4 Attention, à haute intensité ou sur une longue durée, la lumière infrarouge peut provoquer des dommages à l’œil, tout comme la lumière visible. Bien qu'elle soit de faible puissance, il convient donc de limiter autant que possible la quantité de lumière émise par la LED en ajustant la valeur de la résistance placée en série. Par ailleurs, l'ESP32-CAM et équipé d'une LED blanche intégrée qui a été désactivée dans le programme (cf. le code source).
4 Attention, à haute intensité ou sur une longue durée, la lumière infrarouge peut provoquer des dommages à l’œil, tout comme la lumière visible. Bien qu'elle soit de faible puissance, il convient donc de limiter autant que possible la quantité de lumière émise par la LED en ajustant la valeur de la résistance placée en série. Par ailleurs, l'ESP32-CAM et équipé d'une LED blanche intégrée qui a été désactivée dans le programme (cf. le code source).