FLIR Lepton Adapter¶
Modul Adaptor FLIR Lepton menghubungkan inti termal FLIR Lepton (dijual terpisah) ke OpenMV Cam, dengan mode AGC maupun mode termal-langsung untuk pengukuran suhu manusia / objek.
Untuk datasheet lengkap, foto, dan pemesanan, lihat halaman produk FLIR Lepton Adapter.
Sorotan¶
Kompatibel dengan inti FLIR Lepton 1.x / 2.x / 3.x (dijual terpisah)
Mendukung mode AGC dan termal-langsung dengan pemetaan suhu
Dapat melihat dalam kegelapan total
Kompatibel dengan semua papan dasar OpenMV Cam modular
Penggunaan¶
Kendalikan Lepton melalui csi.CSI dengan cid= csi.LEPTON. Driver secara internal memperbesar bingkai asli Lepton 80x60 (1.x/2.x) atau 160x120 (3.x) ke ukuran bingkai yang Anda tentukan:
import csi
import time
csi0 = csi.CSI(cid=csi.LEPTON)
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QVGA)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())
Untuk mendapatkan bingkai berwarna langsung dari sensor, ganti pixformat ke csi.RGB565 dan atur csi.CSI.color_palette ke image.PALETTE_IRONBOW — driver menghasilkan bingkai RGB565 dengan palet yang diterapkan, sehingga snapshot() langsung mengembalikan bingkai berwarna ironbow:
csi0.pixformat(csi.RGB565)
csi0.color_palette(image.PALETTE_IRONBOW)
Pengukuran suhu¶
Lepton radiometrik (Lepton 2.5 / 3.5) melaporkan data suhu per piksel yang telah dikalibrasi. Aktifkan mode pengukuran melalui csi.CSI.ioctl dengan csi.IOCTL_LEPTON_SET_MODE, lalu batasi jendela suhu dengan csi.IOCTL_LEPTON_SET_RANGE (min_celsius, max_celsius). Driver Lepton memetakan nilai piksel skala abu-abu 0 ke min_celsius dan 255 ke max_celsius secara linier, sehingga setiap piksel menjadi pencarian suhu dalam jendela yang dikonfigurasi. Piksel yang lebih dingin dari min_celsius jenuh di 0, piksel yang lebih panas dari max_celsius jenuh di 255.
csi.IOCTL_LEPTON_SET_MODE menerima dua tanda. Yang pertama mengaktifkan pengukuran; yang kedua memilih rentang suhu sensor:
Rentang rendah —
(True, False)— rentang sensor-10 °Chingga+140 °C(pemandangan skala ruangan). Batasi jendela ke area yang diinginkan, misalnya(20.0, 40.0)untuk pelacakan panas tubuh:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, False) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 20.0, 40.0)
Rentang tinggi —
(True, True)— rentang sensor-10 °Chingga~+450 °Ctipikal (~+400 °Cpada suhu ruangan) untuk objek panas. Batasi ke misalnya(0.0, 400.0)untuk pelacakan tungku atau elemen panas:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, True) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 0.0, 400.0)
Untuk mengonversi piksel skala abu-abu kembali ke Celsius:
def p_to_temp(p, min_t, max_t):
return (p * (max_t - min_t)) / 255.0 + min_t
Ini berlaku pada piksel individual maupun pada statistik agregat (misalnya stats.mean() dari Image.get_statistics) di dalam ROI saat menemukan area panas/dingin dengan Image.find_blobs.
Catatan
Pengukuran suhu memerlukan Lepton dalam mode skala abu-abu tanpa palet warna yang disetel — pemetaan piksel-ke-suhu linier hanya berlaku pada keluaran skala abu-abu mentah. Untuk mewarnai tampilan, lakukan secara terpisah dengan menggambar bingkai skala abu-abu ke buffer keluaran RGB menggunakan Image.draw_image dan color_palette= image.PALETTE_IRONBOW
out = image.Image(csi0.width(), csi0.height(), image.RGB565)
out.draw_image(img, 0, 0, color_palette=image.PALETTE_IRONBOW)