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.

FLIR Lepton Adapter

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 °C hingga +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 °C hingga ~+450 °C tipikal (~+400 °C pada 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)