Plus tôt, j'ai écrit un article sur la connexion d'un décodeur d'imagerie thermique à un smartphone Flir One Gen 2. Il est temps de retirer le module lepton de ce décodeur et de le connecter directement au microcontrôleur en assemblant un dispositif de vision nocturne avec une résolution de 160x120 pixels.
Pour construire votre propre appareil d'imagerie thermique de vision nocturne, vous aurez besoin de:
1) Carte avec microcontrôleur. J'ai pris une planche d'un ami chinois avec le microcontrôleur STM32F407VGT6. Un si bon contrôleur: fréquence 168 MHz et 192 Ko de RAM.

2) Affichage. J'ai pris un écran avec une résolution de 320x240. Ces écrans sont livrés avec différents contrôleurs. Je l'ai eu avec le contrôleur hx8347d.

3) Carte pour connecter le lepton 3 sur SPI et I2C.

4) Le lepton lui-même 3. L'élément le plus difficile et le plus cher. Pour l'obtenir, j'ai acheté un imageur thermique Flir One Gen 2 défectueux sur ebay et j'en ai retiré un lepton. Il ressemble à un grossissement comme ceci:

Vous pouvez exclure l'élément 3 de cette liste, sauf si, bien sûr, vous parvenez à prendre un berceau pour un lepton d'un imageur thermique défectueux et vous pouvez le dessouder (et ses contacts, soit dit en passant, seront par le bas). Malheureusement, la distance entre les jambes du lepton est assez petite, donc cette option ne m'a pas été soumise.
Pour collecter tout cela, il vous suffit de tout souder comme suit:

Vous devez également connecter l'alimentation. Pour alimenter la carte lepton, j'utilise 5 V, pour la carte STM32 3,3 V.Pour obtenir 5 V de la batterie, j'utilise le convertisseur TEL3-0511 (tension d'entrée de 4,5 à 9 V), et abaisse déjà ces 5 V sur un LP2950CZ-3.3 normal (d'ailleurs) , chauffe jusqu'à 70 degrés. Ici aussi, vous devez utiliser un convertisseur DC / DC, mais je ne l'ai pas encore acheté). Au fait, Lepton 3 mange bien. Lorsqu'il est alimenté à partir de 6 V, la consommation de courant de l'ensemble de l'appareil est d'environ 250 mA. Lorsque le lepton veut cliquer sur l'obturateur pour l'étalonnage, le courant monte à 500 mA.
Tout ensemble ressemble à ceci:


Pour travailler avec un lepton, vous avez besoin d'un programme. J'ai utilisé CubeMX et Keil 5. Dans ce cas, toutes les liaisons logicielles sont simplifiées à l'impossibilité.
La communication avec un lepton s'effectue sur SPI. Je n'ai pas utilisé I2C, car il n'était pas particulièrement nécessaire. Selon I2C, vous pouvez contrôler l'état du lepton, ses modes de fonctionnement, activer / désactiver le mode d'étalonnage automatique, etc. Mais pour un appareil de vision nocturne, ce n'est pas particulièrement nécessaire.
Pour décrypter les données, j'ai écrit un module:
Moduleleptoncontrol.h#ifndef LEPTON_CONTROL_H #define LEPTON_CONTROL_H #include <stdbool.h> #include <stdio.h> // ( ) #define LEPTON_ORIGINAL_IMAGE_WIDTH 160 #define LEPTON_ORIGINAL_IMAGE_HEIGHT 120 // VoSPI #define VOSPI_FRAME_HEIGHT 60 // VoSPI #define VOSPI_FRAME_WIDTH 80 // VoSPI (164 RAW14 244 RGB) #define VOSPI_PACKAGE_SIZE 164 // VoSPI #define VOSPI_PACKAGE_LINE_SIZE 160 // VOSPI #define VOSPI_SEGMENT_LINE_AMOUNT 60 void LEPTONCONTROL_Init(void);// void LEPTONCONTROL_CalculateCRC(unsigned short *crc,unsigned char byte);// crc bool LEPTONCONTROL_PushVoSPI(unsigned char data[VOSPI_PACKAGE_SIZE],bool *first_line);// VoSPI unsigned short *LEPTONCONTROL_GetRAW14Ptr(void);// #endif
leptoncontrol.c #include "leptoncontrol.h" #include "stm32f4xx_hal.h" static unsigned short RAW14Image[LEPTON_ORIGINAL_IMAGE_HEIGHT*LEPTON_ORIGINAL_IMAGE_WIDTH];
Tout travail avec ce module consiste en une simple soumission de données obtenues par SPI.
Travailler avec le module Après assemblage du cadre, les lectures du capteur sont simplement normalisées, réduites à la plage [0..255] et affichées à l'écran sous la forme de nuances de gris. Cependant, rien n'empêche d'utiliser une palette pour colorier l'image.
Pour afficher l'image sur l'écran, j'utilise le module FSMC intégré à ce contrôleur en mode bus de données 8 bits.
Le programme complet peut être téléchargé
ici .
Vidéo de travail (malheureusement, j'ai tourné sur un vieil appareil photo avec la qualité appropriée - je n'ai pas de caméra vidéo avec moi maintenant).
PS Soit dit en passant, vous pouvez connecter l'imageur thermique Flir One Gen 2 à la carte de débogage STM32F407Discovery directement via USB. Cependant, la connexion est instable - l'imageur thermique est souvent perdu.
Le programme d'une telle connexion est
ici . Peut-être que quelqu'un comprendra ce que c'est et comment rendre la connexion stable.
De plus, ce module lepton 3 se connecte facilement et simplement au Raspberry Pi.
Dans ce cas, j'ai dû modifier le programme à partir du
référentiel , ce qui rend ma
version fonctionnant avec lepton 3.