Sylvain Mahé Le site Web Retour à l'accueil Principes Partager mes idées et mes projets librement et gratuitement. Thématiques Mécatronique du système embarqué, artisanat pluridisciplinaire, bricolage commun, esthétique logicielle et matérielle, minimalisme fonctionnel, conceptualisation alternative, rédaction technique et littéraire, partage pédagogique documenté. Contact ✆ Téléphone : 06.45.49.96.98
✉ E-mail : contact@sylvainmahe.site
✎ Site Web : sylvainmahe.site
Écriture de la page : Sylvain Mahé
Une caméra thermique avec la classe TwiAmg88 L'AMG88 est une caméra thermique adaptée pour les projets miniaturisés et basse consommation électrique. Une caméra thermique est sensible au rayonnement infrarouge, c'est une partie du spectre électromagnétique qui ce situe entre le rayonnement visible et radio. On l'appel thermique, car plus les objets sont chauds, plus ils émettent du rayonnement infrarouge. L'AMG88 se présente comme une structure matricielle de forme carrée pourvue de 64 capteurs thermiques, la définition est donc de 8 x 8 (pixels). L'angle de vision de la matrice est de 60° angulaires en horizontale et en verticale. L'avantage d'une définition de 8 x 8 est le traitement aisé via des microcontrôleurs à largeur de registres de 8 bits, et également l'affichage direct (sans traitement de redimensionnement) des valeurs de température via par exemple une matrice 8 x 8 pixels. La photo suivante représente les températures (avec seuils) acquises par les 64 capteurs de la caméra puis affichés sur la matrice de 8 x 8 diodes électroluminescences : L'AMG88 communique en TWI (pour "Two Wire Interface" ou interface à deux fils) à la vitesse de 400KHz avec le microcontrôleur. Ports des automates programmables concernés par le TWI : Automate programmable MODULABLE 20 :
- Port GPIO 19 (PC4) = SDA (serial data line)
- Port GPIO 20 (PC5) = SCL (serial clock line)

Automate programmable MODULABLE 32 :
- Port GPIO 17 (PC0) = SCL (serial clock line)
- Port GPIO 18 (PC1) = SDA (serial data line)
La classe TwiAmg88 dédiée au fonctionnement du composant AMG88, permet très simplement de récupérer les valeurs des températures dans un tableau de 64 cases. Cette variable accessible en programmation se nomme temperature. Représentation des données : Noms des variables, intervalles, et unités de mesure :
temperature = 0°C à +80°C (composant avec un gain élevé)
temperature = -20°C à +100°C (composant avec un gain bas)
Exemple d'utilisation de la classe TwiAmg88 : #include <TwiAmg88.h> int main() { TwiAmg88 myInfraredCamera = TwiAmg88 (0x69); while (true) { myInfraredCamera.read(); //myInfraredCamera.temperature [0] représente la température en degrés Celsius du pixel 1 //myInfraredCamera.temperature [1] représente la température en degrés Celsius du pixel 2 //myInfraredCamera.temperature [2] représente la température en degrés Celsius du pixel 3 //etc... } return 0; } Dans cet exemple, un objet myInfraredCamera de type TwiAmg88 est déclaré, en paramètre est indiqué l'adresse 0x69 du composant AMG88 sur le bus TWI : Si vous ne connaissez pas l'adresse TWI du composant AMG88 et que ce dernier est le seul périphérique connecté au bus TWI, vous pouvez indiquer 0 en paramètre, car en interne une fonction se chargera d'effectuer une recherche et de trouver l'adresse du périphérique automatiquement. Puis dans la boucle while la fonction read associée à l'objet myInfraredCamera est appelée, ce qui permet de lire en une fois les 64 capteurs thermiques du composant AMG88. Cette action met à jour la variable temperature (le tableau de 64 cases) relative à l'objet myInfraredCamera. Vous pouvez utiliser cette variable à la suite dans votre programme (via par exemple une boucle de lecture des 64 cases du tableau). De nombreuses applications sont possibles avec la caméra thermique AMG88. La classe dédiée TwiAmg88 permet la mise en œuvre de ce composant en seulement quelques lignes de programmation de haut niveau. Libre à vous de l'utiliser dans vos projets notamment en robotique et dans l'industrie en général. Références : Récapitulatif des fonctions et variables de cette classe : float temperature [64] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; TwiAmg88 (const unsigned char DEVICE); void read();