Simplifier la détection de mouvement en utilisant l'ATtiny1627 Curiosity Nano
Avec la contribution de Rédacteurs nord-américains de DigiKey
2022-02-23
Le besoin de détection de mouvement continue de croître dans de nombreuses applications industrielles, commerciales, domestiques et embarquées. Le problème est que la détection de mouvement peut nécessiter des capteurs numériques coûteux avec lesquels il est difficile d'interfacer. En outre, une fois les données reçues, il faut encore développer des algorithmes pour détecter le mouvement, ce qui n'est pas une tâche aisée.
Plusieurs solutions peuvent détecter le mouvement, mais les solutions infrarouges (IR) sont les plus populaires. Les développeurs peuvent opter pour une solution active, courante dans de nombreux capteurs numériques autonomes, mais plus coûteuse et plus complexe à mettre en œuvre. L'alternative consiste à tirer parti des capteurs infrarouges passifs (PIR), qui sont moins coûteux et plus faciles à utiliser. Un PIR fournit une interface analogique avec laquelle la plupart des microcontrôleurs peuvent interfacer.
Cet article aborde les principes fondamentaux de la détection de mouvement avant de montrer comment les développeurs peuvent démarrer avec la détection de mouvement en utilisant un PIR connecté à la carte ATtiny1627 Curiosity Nano DM080104 de Microchip. Il présente ensuite une alternative au développement d'algorithmes complexes pour la détection de mouvement, reposant sur des techniques d'apprentissage automatique (Machine Learning, ML). Des conseils et astuces pour démarrer sont également inclus.
Principes fondamentaux de la détection de mouvement
Il existe de nombreuses technologies de détection qui peuvent détecter les mouvements, mais l'IR est le plus souvent utilisé. Les capteurs IR sont soit actifs, soit passifs. Les capteurs actifs se composent d'un émetteur LED IR et d'un récepteur à photodiode. Les capteurs actifs détectent les infrarouges réfléchis par les objets, puis utilisent les infrarouges reçus pour détecter si le sujet ou l'objet a bougé. En fonction de l'application, le capteur actif peut contenir plusieurs photodiodes pour voir la direction du mouvement. Par exemple, en détectant quels signaux IR sont en retard ou en avance, quatre photodiodes peuvent être utilisées pour détecter les mouvements directionnels tels que gauche, droite, avant, arrière, haut et bas.
Les capteurs infrarouges passifs ne peuvent pas transmettre d'IR, mais seulement en recevoir. Un capteur PIR utilise les infrarouges transmis par le sujet/objet concerné pour détecter sa présence et tout mouvement associé. Par exemple, un système de sécurité domestique est souvent équipé de capteurs de mouvement qui détectent les infrarouges émis par un humain ou un animal et déterminent s'il se déplace dans son champ de vision. La Figure 1 montre ce qu'un capteur PIR analogique peut détecter dans diverses conditions telles que l'absence d'IR, la présence d'IR, la stabilité d'IR et l'interruption (coupure) d'IR.
Figure 1 : Les capteurs PIR utilisent les infrarouges émis par les sujets ou les objets pour détecter leur présence et leur mouvement. Les différents stades de détection sont représentés : absence d'IR, présence d'IR, stabilité d'IR et interruption d'IR. (Source de l'image : Microchip Technology)
Lors de la sélection d'un type de capteur IR approprié pour une application, les développeurs doivent prendre en compte les compromis relatifs aux paramètres suivants :
- Coût du capteur
- Conditionnement
- Interface de microcontrôleur
- Algorithme de détection et puissance de calcul
- Portée du capteur et consommation d'énergie
Examinons un exemple de système de détection de mouvement PIR qui utilise l'ATtiny1627.
Présentation de l'ATtiny1627 Curiosity Nano
Un microcontrôleur (MCU) intéressant pour la détection de mouvement est l'ATtiny1627 de Microchip Technology. Ce microcontrôleur 8 bits intègre un convertisseur analogique-numérique (CAN) 12 bits pouvant être suréchantillonné à 17 bits. Il contient également un amplificateur à gain programmable (PGA) qui permet de régler la sensibilité. La combinaison de ces deux caractéristiques permet d'obtenir un système de détection de mouvement peu coûteux, adapté à de nombreuses applications.
La meilleure solution économique pour commencer est d'utiliser la carte de développement ATtiny1627 Curiosity Nano DM080104 (Figure 2). La carte de développement contient un microcontrôleur AVR qui fonctionne jusqu'à 20 mégahertz (MHz) avec 16 kilo-octets (Ko) de mémoire Flash, 2 Ko de SRAM et 256 octets d'EEPROM. La carte inclut un programmateur, une LED et un commutateur utilisateur. La carte est conçue pour être facilement connectée via des embases pour un prototypage rapide, ou elle peut être directement soudée sur une carte de production ou de prototype.
Figure 2 : L'ATtiny1627 Curiosity Nano intègre un microcontrôleur AVR programmable de 8 bits fonctionnant à des vitesses jusqu'à 20 MHz avec 16 Ko de mémoire Flash, 2 Ko de SRAM et 256 octets d'EEPROM. La carte de développement peut être facilement soudée ou connectée à une carte de base plus grande pour simplifier les systèmes de prototypage et de production. (Source de l'image : Microchip)
La carte est également dotée de quelques fonctionnalités supplémentaires qui peuvent être utiles aux développeurs. Premièrement, elle dispose de deux canaux d'analyseur logique, DGI et GPIO. Ces canaux peuvent être utilisés pour déboguer et gérer le microcontrôleur. Deuxièmement, les développeurs peuvent exploiter un port COM virtuel (CDC) embarqué pour le débogage ou l'enregistrement de messages. Enfin, plusieurs outils peuvent être utilisés pour écrire et déployer le logiciel. Par exemple, les développeurs peuvent utiliser Microchip Studio 7.0, un compilateur GCC, ou MPLAB X, qui utilise soit GCC, soit le compilateur XC8.
Microchip prend également en charge une douzaine de référentiels de code avec divers exemples pour l'ATtiny1627. Ces référentiels de code contiennent des exemples couvrant la détection de mouvement PIR, les mesures de température, les conversions analogiques, et plus.
Création d'un banc d'essai pour la détection de mouvement
La mise en place d'un banc d'essai pour la détection de mouvement est simple et peu coûteuse. Les composants nécessaires à la construction d'un banc d'essai incluent :
- L'ATtiny1627 Curiosity Nano DM080104
- L'adaptateur AC164162T Curiosity Nano
- Un capteur PIR MIKROE-3339 de MikroElektronika
Nous avons déjà présenté l'ATtiny1627 Curiosity Nano. L'adaptateur Curiosity Nano fournit une carte porteuse pour l'ATtiny1627 Curiosity Nano pouvant être utilisé pour le prototypage rapide (Figure 3). De plus, il offre trois connecteurs d'extension pour les cartes MIKROE Click boards ainsi que des embases accessibles pour l'accès aux signaux ou l'ajout de matériel personnalisé.
Figure 3 : L'adaptateur Curiosity Nano est doté de trois connecteurs d'extension pour les cartes MIKROE Click boards, et d'embases pour accéder aux signaux et ajouter du matériel personnalisé. (Source de l'image : Microchip)
Enfin, le capteur PIR MIKROE-3339, illustré à la Figure 4, fournit le capteur IR passif PL-N823-01 de KEMET sous une forme simple et extensible, qui peut être directement connecté à l'adaptateur Curiosity Nano. Il est important de noter que le MIKROE-3339 requiert quelques modifications lorsqu'il est utilisé avec les exemples de Microchip pour la détection de mouvement. Ces modifications sont disponibles en page 10 de la note d'application AN3641 de Microchip, Low-Power, Cost-Efficient PIR Motion Detection using the tinyAVR® 2 Family.
Figure 4 : La carte MIKROE-3339 Click board fournit un capteur PIR PL-N823-01 de KEMET sous une forme facile à prototyper. (Source de l'image : MikroElektronika)
Logiciel de détection de mouvement PIR
Les développeurs peuvent utiliser plusieurs options pour créer leurs solutions logicielles de détection de mouvement. La première solution consiste à utiliser le matériel d'exemple fourni par Microchip dans le document AN3641. Le référentiel de code pour l'exemple de logiciel de détection de mouvement est disponible sur Github.
L'application se déroule en plusieurs phases. Premièrement, l'application initialise et lance le capteur PIR. Deuxièmement, une routine de service d'interruption CAN est utilisée pour échantillonner périodiquement le capteur PIR. Troisièmement, les données CAN sont moyennées. Enfin, un algorithme de détection est utilisé pour signaler si un mouvement a été détecté. Si une activité est détectée, la LED intégrée clignote et un signal de détection est envoyé via le port série. Le déroulement complet du programme est illustré à la Figure 5.
Figure 5 : Le graphique représente le flux logiciel pour l'application de détection de mouvement de Microchip. (Source de l'image : Microchip)
La deuxième option pour la détection de mouvement est de tirer parti de l'initialisation et de la routine d'interruption CAN des exemples de Microchip, mais d'utiliser l'apprentissage automatique au lieu d'utiliser l'algorithme de détection. Les données PIR peuvent être collectées puis utilisées pour entraîner un réseau neuronal. Le modèle ML peut ensuite être converti pour être exécuté sur le microcontrôleur avec TensorFlow Lite pour microcontrôleurs, en utilisant des mathématiques à virgule fixe avec des poids de 8 bits.
Ce qui est intéressant ici, c'est que l'apprentissage automatique supprime la nécessité pour les développeurs de concevoir un algorithme pour leurs besoins spécifiques. Ils peuvent simplement échantillonner le capteur dans les conditions prévues et les cas d'utilisation dont ils ont besoin pour leur application. L'apprentissage automatique permet également aux développeurs de faire évoluer et d'ajuster rapidement leurs modèles à mesure que de nouvelles données sont disponibles.
Conseils et astuces pour la détection de mouvement avec l'ATtiny1627
De nombreuses options s'offrent aux développeurs qui souhaitent se lancer dans la détection de mouvement. Les conseils et astuces que les développeurs devraient prendre en compte pour simplifier et accélérer leur développement incluent :
- Construire une plateforme de prototypage économique en utilisant des composants prêts à l'emploi.
- Utiliser l'exemple de détection de mouvement de Microchip disponible sur GitHub.
- Concevoir du matériel de prototypage avec l'empreinte ATtiny1627 Curiosity Nano et souder directement la carte sur le matériel pour simplifier les premiers prototypes.
- Utiliser le compilateur XC8 de Microchip pour un code réduit, plus efficace et optimisé.
- Consulter le document AN3641 Low-Power, Cost-Efficient PIR Motion Detection Using the tinyAVR® 2 Family de Microchip avant de démarrer une application de détection de mouvement.
- Envisager sérieusement d'utiliser l'apprentissage automatique pour l'algorithme de détection de mouvement.
Les développeurs qui suivent ces « conseils et astuces » constateront qu'ils économisent beaucoup de temps et d'efforts lors du prototypage de leur application.
Conclusion
La détection de mouvement est de plus en plus utilisée dans de nombreuses applications, notamment là où l'absence de contact est un avantage. Les développeurs peuvent minimiser leurs coûts de nomenclature et simplifier leur conception en utilisant un capteur PIR et un microcontrôleur à faible coût. Comme illustré, l'ATtiny1627 est un excellent point de départ, et Microchip fournit une large gamme d'outils et de notes d'application pour aider les développeurs à se lancer. En outre, l'apprentissage automatique permet de minimiser la complexité de développement d'un algorithme de détection de mouvement.
Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.




