Sebelumnya, saya menulis artikel tentang menghubungkan set-top box pencitraan termal ke smartphone Flir One Gen 2. Sudah waktunya untuk menghapus modul lepton dari set-top box ini dan menghubungkannya langsung ke mikrokontroler dengan merakit perangkat night-vision dengan resolusi 160x120 piksel.
Untuk membangun perangkat pencitraan termal penglihatan malam Anda sendiri, Anda perlu:
1) Papan dengan mikrokontroler. Saya mengambil papan dari seorang teman China dengan mikrokontroler STM32F407VGT6. Kontroler yang baik: frekuensi 168 MHz dan RAM 192 KB.

2) Tampilan. Saya mengambil layar dengan resolusi 320x240. Tampilan seperti itu datang dengan berbagai pengontrol. Saya mendapatkannya dengan controller hx8347d.

3) Papan untuk menghubungkan lepton 3 pada SPI dan I2C.

4) Lepton itu sendiri 3. Unsur yang paling sulit dan mahal. Untuk mendapatkannya, saya membeli imager termal Flir One Gen 2 yang rusak di ebay dan mengeluarkan lepton darinya. Itu terlihat dalam pembesaran seperti ini:

Anda dapat mengecualikan item 3 dari daftar ini, kecuali, tentu saja, Anda berhasil mengambil buaian untuk lepton dari imager termal yang tidak berfungsi dan Anda dapat melepaskannya (dan kontaknya, dengan cara, akan dari bawah). Sayangnya, jarak antara kedua kaki di lepton cukup kecil, jadi opsi ini tidak diserahkan kepada saya.
Untuk mengumpulkan semua ini, Anda hanya perlu mensolder semuanya sebagai berikut:

Anda juga perlu menghubungkan daya. Untuk menyalakan papan lepton saya menggunakan 5 V, untuk papan STM32 3.3 V. Untuk mendapatkan 5 V dari baterai, saya menggunakan konverter TEL3-0511 (tegangan input dari 4,5 ke 9 V), dan sudah menurunkan 5 V ini pada LP2950CZ-3.3 biasa (omong-omong , memanas hingga 70 derajat. Di sini, Anda juga perlu menggunakan konverter DC / DC, tapi saya belum membelinya). Ngomong-ngomong, Lepton 3 makan. Ketika diberdayakan dari 6 V, konsumsi saat ini dari seluruh perangkat adalah sekitar 250 mA. Ketika lepton ingin mengklik rana untuk kalibrasi, arus naik ke 500 mA.
Semuanya disatukan terlihat seperti ini:


Untuk bekerja dengan lepton, Anda memerlukan sebuah program. Saya menggunakan CubeMX dan Keil 5. Dalam hal ini, semua binding perangkat lunak disederhanakan menjadi tidak mungkin.
Komunikasi dengan lepton dilakukan pada SPI. Saya belum pernah menggunakan I2C, karena tidak ada kebutuhan khusus untuk itu. Menurut I2C, Anda dapat mengontrol status lepton, mode operasinya, mengaktifkan / menonaktifkan mode kalibrasi otomatis, dan sebagainya. Tetapi untuk perangkat penglihatan malam, ini tidak terlalu perlu.
Untuk mendekripsi data, saya menulis modul:
Modulleptoncontrol.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];
Semua pekerjaan dengan modul ini terdiri dari pengiriman data sederhana yang diperoleh SPI.
Setelah merakit bingkai, pembacaan sensor dinormalisasi, dikurangi menjadi kisaran [0..255] dan ditampilkan pada layar dalam bentuk nuansa abu-abu. Namun, tidak ada yang mencegah menggunakan palet apa pun untuk mewarnai gambar.
Untuk menampilkan gambar pada tampilan, saya menggunakan modul FSMC yang dibangun pada pengontrol ini dalam mode bus data 8-bit.
Program lengkap dapat diunduh di
sini .
Video kerja (sayangnya, saya memotret pada kamera lama dengan kualitas yang sesuai - Saya tidak memiliki kamera video sekarang).
Ngomong-ngomong, Anda dapat menghubungkan imager termal Flir One Gen 2 ke papan debug STM32F407Discovery langsung melalui USB. Namun, koneksi tidak stabil - imager termal sering hilang.
Program untuk koneksi semacam itu ada di
sini . Mungkin seseorang akan mengerti apa itu dan bagaimana membuat koneksi stabil.
Juga, modul lepton 3 ini dengan mudah dan mudah terhubung ke Raspberry Pi.
Dalam hal ini, saya harus memodifikasi program dari
repositori , membuat
versi saya berfungsi dengan lepton 3.