fir — lämpösensorin ajuri (fir == far infrared)#

fir-moduuli ohjaa kauko-infrapuna (FIR) -termopiloriryhmiä, jotka on kytketty OpenMV Cam -kameraan I2C:n kautta – tuettuna ovat 8x8-, 16x4-, 16x12- ja 32x24-sensorit (katso vakiot tämän sivun alaosasta). Jokainen kehys palauttaa pikselikohtaisen lämpötilan celsiusasteina, joka voidaan piirtää erillisenä lämpökuvana funktiolla snapshot() tai yhdistää CSI-sensorin näkyvän valon kehykseen funktiolla draw_ir(), yleensä väripaletin, kuten image.PALETTE_RAINBOW tai image.PALETTE_IRONBOW, läpi.

Esimerkkikäyttö:

import csi
import fir

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)

fir.init()

while True:
    img = csi0.snapshot()
    ta, ir, to_min, to_max = fir.read_ir()
    fir.draw_ir(img, ir)
    print("====================")
    print("Ambient temperature: %0.2f" % ta)
    print("Min temperature seen: %0.2f" % to_min)
    print("Max temperature seen: %0.2f" % to_max)

Funktiot#

fir.init(type: int = -1, refresh: int | None = None, resolution: int | None = None) None#

Alustaa kytketyn lämpösensorin.

type ilmaisee lämpösensorin tyypin:

Oletuksena type on -1, mikä saa funktion fir.init() automaattisesti etsimään ja alustamaan kytketyn lämpösensorin sen I2C-osoitteen perusteella. Huomaa, että fir.FIR_MLX90640 ja fir.FIR_MLX90641 jakavat saman I2C-osoitteen, joten sinun on välitettävä fir.FIR_MLX90641 parametriin type alustaaksesi nimenomaan sen.

refresh on lämpösensorin virkistystaajuus hertseinä:

Korkeampi virkistystaajuus heikentää tarkkuutta ja päinvastoin.

resolution on lämpösensorin mittausresoluutio bitteinä:

Korkeampi resoluutio pienentää suurinta lämpötila-aluetta ja päinvastoin.

fir.deinit() None#

Poistaa lämpösensorin alustuksen ja vapauttaa resurssit.

fir.width() int#

Palauttaa käytössä olevan lämpösensorin vaakaresoluution (pikseleinä).

fir.height() int#

Palauttaa käytössä olevan lämpösensorin pystyresoluution (pikseleinä).

fir.type() int#

Palauttaa käytössä olevan lämpösensorin tyypin. Yksi seuraavista: fir.FIR_MLX90621, fir.FIR_MLX90640, fir.FIR_MLX90641 tai fir.FIR_AMG8833.

fir.refresh() int#

Palauttaa nykyisen virkistystaajuuden (Hz), joka asetettiin fir.init()-kutsun aikana.

fir.resolution() int#

Palauttaa nykyisen resoluution (bittejä), joka asetettiin fir.init()-kutsun aikana.

fir.read_ta() float#

Palauttaa ympäristön lämpötilan (eli sensorin lämpötilan) celsiusasteina liukulukuna.

fir.read_ir(hmirror: bool = False, vflip: bool = False, transpose: bool = False, timeout: int = -1) Tuple[float, List[float], float, float]#

Palauttaa 4-monikon (ta, ir, to_min, to_max), joka sisältää ympäristön lämpötilan, litteän width * height -listan liukulukulämpötiloista, havaitun pienimmän lämpötilan ja havaitun suurimman lämpötilan. Kaikki arvot ovat celsiusasteina.

hmirror jos True, peilaa ir-taulukon vaakasuunnassa.

vflip jos True, kääntää ir-taulukon pystysuunnassa.

transpose jos True, transponoi ir-taulukon (vaihtaa leveyden ja korkeuden keskenään).

timeout jos ei -1, millisekuntien määrä, jonka verran odotetaan uutta kehystä.

fir.draw_ir(image: image.Image, ir: List[float], x: int = 0, y: int = 0, x_scale: float | None = None, y_scale: float | None = None, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | None = image.PALETTE_RAINBOW, alpha_palette: int | None = None, hint: int = 0, scale: Tuple[float, float] | None = None) None#

Piirtää ir-taulukon kohteeseen image siten, että sen vasen yläkulma on kohdassa (x, y).

ir on litteä width * height -lämpötilalista, jonka palauttaa fir.read_ir().

x_scale ohjaa, kuinka paljon piirrettyä kuvaa skaalataan x-suunnassa. Negatiivinen arvo kääntää vaakasuunnassa. Jos ei määritetty, vastaa arvoa y_scale kuvasuhteen säilyttämiseksi.

y_scale ohjaa, kuinka paljon piirrettyä kuvaa skaalataan y-suunnassa. Negatiivinen arvo kääntää pystysuunnassa. Jos ei määritetty, vastaa arvoa x_scale kuvasuhteen säilyttämiseksi.

roi on piirrettävän lähde-IR-datan kohdealueen suorakulmio (x, y, w, h).

rgb_channel on RGB-kanava (0=R, 1=G, 2=B), joka piirretään kohdekuvaan, kun kohde on RGB565. -1 (oletus) piirtää kaikki kanavat.

alpha ohjaa, kuinka suuri osa lähdekuvasta sekoitetaan kohteeseen (0-255). 255 on täysin läpinäkymätön; 0 ei aiheuta muutosta.

color_palette on väripaletin enum (esim. image.PALETTE_RAINBOW, image.PALETTE_IRONBOW) tai 256-pikselinen RGB565-kuva, jota käytetään hakutauluna harmaasävylähdearvolle.

alpha_palette on 256-pikselinen GRAYSCALE-kuva, jota käytetään alfa-hakutauluna, joka moduloi arvoa alpha kunkin lähdepikselin arvon mukaan.

hint on looginen TAI seuraavista:

scale on 2-monikko (min, max), joka ohjaa ir-taulukon skaalaukseen käytettävää pienintä/suurinta lämpötilaa (celsiusasteina). Oletuksena todellinen ir-minimi ja -maksimi.

fir.snapshot(hmirror: bool = False, vflip: bool = False, transpose: bool = False, x_scale: float | None = None, y_scale: float | None = None, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | None = image.PALETTE_RAINBOW, alpha_palette: int | None = None, hint: int = 0, scale: Tuple[float, float] | None = None, pixformat: int = image.RGB565, copy_to_fb: bool = False, timeout: int = -1) image.Image#

Ottaa kehyksen lämpösensorista ja palauttaa sen image.Image-objektina. Toimii samaan tapaan kuin sensor.snapshot(). Jos copy_to_fb on False, uusi kuva varataan MicroPythonin keosta (joka on rajallinen); aseta copy_to_fb arvoon True kirjoittaaksesi tuloksen sen sijaan kehyspuskuriin.

hmirror jos True, peilaa uuden kuvan vaakasuunnassa.

vflip jos True, kääntää uuden kuvan pystysuunnassa.

transpose jos True, transponoi uuden kuvan.

x_scale ohjaa, kuinka paljon uutta kuvaa skaalataan x-suunnassa. Negatiivinen arvo kääntää vaakasuunnassa. Jos ei määritetty, vastaa arvoa y_scale kuvasuhteen säilyttämiseksi.

y_scale ohjaa, kuinka paljon uutta kuvaa skaalataan y-suunnassa. Negatiivinen arvo kääntää pystysuunnassa. Jos ei määritetty, vastaa arvoa x_scale kuvasuhteen säilyttämiseksi.

roi on piirrettävän lähde-IR-datan kohdealueen suorakulmio (x, y, w, h).

rgb_channel on RGB-kanava (0=R, 1=G, 2=B), joka piirretään. -1 (oletus) piirtää kaikki kanavat.

alpha ohjaa, kuinka suuri osa lähdekuvasta sekoitetaan (0-255). 255 on täysin läpinäkymätön.

color_palette on väripaletin enum tai 256-pikselinen RGB565-kuva, jota käytetään hakutauluna harmaasävylähdearvolle.

alpha_palette on 256-pikselinen GRAYSCALE-kuva, jota käytetään alfa-hakutauluna.

hint on looginen TAI seuraavista:

scale on 2-monikko (min, max), joka ohjaa IR-taulukon skaalaukseen käytettävää pienintä/suurinta lämpötilaa (celsiusasteina). Oletuksena todellinen IR-minimi ja -maksimi.

pixformat ohjaa ulostulon pikseliformaattia. Täytyy olla image.GRAYSCALE tai image.RGB565.

copy_to_fb jos True, kirjoittaa tuloksen kehyspuskuriin sen sijaan, että varaisi sen keosta.

timeout jos ei -1, millisekuntien määrä, jonka verran odotetaan uutta kehystä.

Vakiot#

fir.FIR_SHIELD: int#

OpenMV Cam Thermopile Shield (MLX90621). Alias kohteelle fir.FIR_MLX90621.

fir.FIR_MLX90621: int#

MLX90621-lämpösensori (16x4).

fir.FIR_MLX90640: int#

MLX90640-lämpösensori (32x24).

fir.FIR_MLX90641: int#

MLX90641-lämpösensori (16x12).

fir.FIR_AMG8833: int#

AMG8833-lämpösensori (8x8).