FLIR Lepton adapter

A FLIR Lepton adaptermodul a FLIR Lepton hőkamera-magokat (külön kapható) csatlakoztatja az OpenMV Cam kamerához, AGC és közvetlen hőmérséklet üzemmóddal egyaránt, ember- és tárgyhőmérséklet méréséhez.

FLIR Lepton adapter

A teljes adatlapért, fényképekért és rendelési információkért lásd a FLIR Lepton adapter termékoldalt.

Kiemelt jellemzők

  • Kompatibilis a FLIR Lepton 1.x / 2.x / 3.x magokkal (külön kapható)

  • AGC és közvetlen hőmérséklet üzemmód egyaránt, hőmérséklet-leképezéssel

  • Teljes sötétségben is lát

  • Kompatibilis az összes moduláris OpenMV Cam alaplappal

Használat

A Lepton vezérlése a csi.CSI segítségével történik, cid= csi.LEPTON beállítással. A meghajtó belsőleg felskálázza a Lepton 80x60-as (1.x/2.x) vagy 160x120-as (3.x) natív képkockáját az általad beállított framesize értékre:

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())

Ha közvetlenül az érzékelőtől szeretnél színezett képkockákat kapni, váltsd a pixformat értéket csi.RGB565-re, és állítsd a csi.CSI.color_palette értékét image.PALETTE_IRONBOW-ra — a meghajtó az alkalmazott palettával adja ki az RGB565 képkockákat, így a snapshot() közvetlenül ironbow színezésű képkockákat ad vissza:

csi0.pixformat(csi.RGB565)
csi0.color_palette(image.PALETTE_IRONBOW)

Hőmérséklet-mérés

A radiometrikus Lepton modulok (Lepton 2.5 / 3.5) kalibrált, képpontonkénti hőmérsékleti adatokat szolgáltatnak. A mérési üzemmódot a csi.CSI.ioctl segítségével, a csi.IOCTL_LEPTON_SET_MODE használatával kapcsolhatod be, majd a csi.IOCTL_LEPTON_SET_RANGE (min_celsius, max_celsius) paranccsal szűkítheted le a hőmérsékleti ablakot. A Lepton meghajtó lineárisan képezi le a 0 szürkeárnyalatos képpontértéket a min_celsius értékre, a 255-öt pedig a max_celsius értékre, így minden képpont a beállított ablakon belüli hőmérséklet-kereséssé válik. A min_celsius értéknél hidegebb képpontok 0-nál telítődnek, a max_celsius értéknél melegebbek pedig 255-nél.

A csi.IOCTL_LEPTON_SET_MODE két jelzőbitet vesz át. Az első a mérést kapcsolja be; a második az érzékelő hőmérséklet-tartományát választja ki:

  • Alacsony tartomány(True, False) — az érzékelő tartománya -10 °C és +140 °C között (szobaméretű jelenetek). Szűkítsd le az ablakot az érdeklődési területre, pl. (20.0, 40.0) testhő-követéshez:

    csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, False)
    csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 20.0, 40.0)
    
  • Magas tartomány(True, True) — az érzékelő tartománya jellemzően -10 °C és ~+450 °C között (szobahőmérsékleten ~+400 °C) forró tárgyakhoz. Szűkítsd le pl. (0.0, 400.0) értékre kemence vagy forró alkatrész követéséhez:

    csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, True)
    csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 0.0, 400.0)
    

Egy szürkeárnyalatos képpont visszaalakítása Celsius-fokra:

def p_to_temp(p, min_t, max_t):
    return (p * (max_t - min_t)) / 255.0 + min_t

Ez egyedi képpontokon vagy összesített statisztikákon (pl. a Image.get_statistics által adott stats.mean() értéken) is működik egy ROI-n belül, amikor forró/hideg területeket keresel az Image.find_blobs segítségével.

Megjegyzés

A hőmérséklet-méréshez a Leptonnak szürkeárnyalatos üzemmódban kell lennie, beállított színpaletta nélkül — a lineáris képpont-hőmérséklet leképezés csak a nyers szürkeárnyalatos kimeneten érvényes. A megjelenítéshez történő színezést végezd külön, úgy, hogy a szürkeárnyalatos képkockát egy RGB kimeneti pufferre rajzolod az Image.draw_image segítségével, color_palette= image.PALETTE_IRONBOW beállítással:

out = image.Image(csi0.width(), csi0.height(), image.RGB565)
out.draw_image(img, 0, 0, color_palette=image.PALETTE_IRONBOW)