FLIR Lepton -adapteri

FLIR Lepton -adapterimoduuli yhdistää FLIR Lepton -lämpöytimet (myydään erikseen) OpenMV Cam -kameraan, ja siinä on sekä AGC- että suora lämpötilatila ihmisten / esineiden lämpötilan mittaamiseen.

FLIR Lepton -adapteri

Täydellinen tietolehti, kuvat ja tilausohjeet löytyvät FLIR Lepton -adapterin tuotesivulta.

Kohokohdat

  • Yhteensopiva FLIR Lepton 1.x / 2.x / 3.x -ytimien kanssa (myydään erikseen)

  • Sekä AGC- että suora lämpötilatila lämpötilakartoituksella

  • Näkee täydellisessä pimeydessä

  • Yhteensopiva kaikkien modulaaristen OpenMV Cam -peruskorttien kanssa

Käyttö

Ohjaa Leptonia csi.CSI:n kautta asetuksella cid= csi.LEPTON. Ajuri skaalaa sisäisesti Leptonin natiivin 80x60-kehyksen (1.x/2.x) tai 160x120-kehyksen (3.x) mihin tahansa asettamaasi kehyskokoon:

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

Saadaksesi värilliset kehykset suoraan sensorista, vaihda pikseliformaatiksi csi.RGB565 ja aseta csi.CSI.color_palette arvoon image.PALETTE_IRONBOW — ajuri tuottaa RGB565-kehyksiä, joihin paletti on jo sovellettu, joten snapshot() palauttaa ironbow-väriset kehykset suoraan:

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

Lämpötilan mittaus

Radiometriset Leptonit (Lepton 2.5 / 3.5) raportoivat kalibroitua pikselikohtaista lämpötiladataa. Ota mittaustila käyttöön funktiolla csi.CSI.ioctl käyttäen lippua csi.IOCTL_LEPTON_SET_MODE, ja rajaa sitten lämpötilaikkuna lipulla csi.IOCTL_LEPTON_SET_RANGE (min_celsius, max_celsius). Lepton-ajuri kuvaa lineaarisesti harmaasävypikselin arvon 0 arvoon min_celsius ja 255 arvoon max_celsius, joten jokaisesta pikselistä tulee lämpötilahaku määritetyn ikkunan sisällä. Pikselit, jotka ovat kylmempiä kuin min_celsius, saturoituvat arvoon 0, ja pikselit, jotka ovat kuumempia kuin max_celsius, saturoituvat arvoon 255.

csi.IOCTL_LEPTON_SET_MODE ottaa kaksi lippua. Ensimmäinen kytkee mittauksen päälle; toinen valitsee sensorin lämpötila-alueen:

  • Matala alue(True, False) — sensorin alue -10 °C+140 °C (huoneenkokoiset näkymät). Rajaa ikkuna kohdealueeseen, esim. (20.0, 40.0) kehonlämmön seurantaan:

    csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, False)
    csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 20.0, 40.0)
    
  • Korkea alue(True, True) — sensorin alue tyypillisesti -10 °C~+450 °C (~+400 °C huoneenlämmössä) kuumille esineille. Rajaa esim. (0.0, 400.0) uunin tai kuuman elementin seurantaan:

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

Harmaasävypikselin muuntaminen takaisin celsiusasteiksi:

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

Tämä toimii yksittäisille pikseleille tai aggregoiduille tilastoille (esim. stats.mean() funktiosta Image.get_statistics) ROI:n sisällä, kun paikannetaan kuumia/viileitä alueita funktiolla Image.find_blobs.

Muista

Lämpötilan mittaus edellyttää, että Lepton on harmaasävytilassa ilman asetettua väripalettia — lineaarinen pikselistä lämpötilaksi -kuvaus pätee vain raakaan harmaasävylähtöön. Värittääksesi sen näyttöä varten tee se erikseen piirtämällä harmaasävykehys RGB-lähtöpuskuriin funktiolla Image.draw_image ja asetuksella 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)