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.
typeilmaisee lämpösensorin tyypin:fir.FIR_SHIELD: 16x4 pikseliä (MLX90621).fir.FIR_MLX90621: 16x4 pikseliä.fir.FIR_MLX90640: 32x24 pikseliä.fir.FIR_MLX90641: 16x12 pikseliä.fir.FIR_AMG8833: 8x8 pikseliä.
Oletuksena
typeon-1, mikä saa funktionfir.init()automaattisesti etsimään ja alustamaan kytketyn lämpösensorin sen I2C-osoitteen perusteella. Huomaa, ettäfir.FIR_MLX90640jafir.FIR_MLX90641jakavat saman I2C-osoitteen, joten sinun on välitettäväfir.FIR_MLX90641parametriintypealustaaksesi nimenomaan sen.refreshon lämpösensorin virkistystaajuus hertseinä:fir.FIR_MLX90621: Oletuksena 64 Hz. Voi olla 1, 2, 4, 8, 16, 32, 64, 128, 256 tai 512 Hz.fir.FIR_MLX90640: Oletuksena 32 Hz. Voi olla 1, 2, 4, 8, 16, 32 tai 64 Hz.fir.FIR_MLX90641: Oletuksena 32 Hz. Voi olla 1, 2, 4, 8, 16, 32 tai 64 Hz.fir.FIR_AMG8833: Kiinteä 10 Hz.
Korkeampi virkistystaajuus heikentää tarkkuutta ja päinvastoin.
resolutionon lämpösensorin mittausresoluutio bitteinä:fir.FIR_MLX90621: Oletuksena 18. Voi olla 15, 16, 17 tai 18.fir.FIR_MLX90640: Oletuksena 19. Voi olla 16, 17, 18 tai 19.fir.FIR_MLX90641: Oletuksena 19. Voi olla 16, 17, 18 tai 19.fir.FIR_AMG8833: Kiinteä 12.
Korkeampi resoluutio pienentää suurinta lämpötila-aluetta ja päinvastoin.
- fir.type() int¶
Palauttaa käytössä olevan lämpösensorin tyypin. Yksi seuraavista:
fir.FIR_MLX90621,fir.FIR_MLX90640,fir.FIR_MLX90641taifir.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änwidth * height-listan liukulukulämpötiloista, havaitun pienimmän lämpötilan ja havaitun suurimman lämpötilan. Kaikki arvot ovat celsiusasteina.hmirrorjos True, peilaair-taulukon vaakasuunnassa.vflipjos True, kääntääir-taulukon pystysuunnassa.transposejos True, transponoiir-taulukon (vaihtaa leveyden ja korkeuden keskenään).timeoutjos 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 kohteeseenimagesiten, että sen vasen yläkulma on kohdassa(x, y).iron litteäwidth * height-lämpötilalista, jonka palauttaafir.read_ir().x_scaleohjaa, kuinka paljon piirrettyä kuvaa skaalataan x-suunnassa. Negatiivinen arvo kääntää vaakasuunnassa. Jos ei määritetty, vastaa arvoay_scalekuvasuhteen säilyttämiseksi.y_scaleohjaa, kuinka paljon piirrettyä kuvaa skaalataan y-suunnassa. Negatiivinen arvo kääntää pystysuunnassa. Jos ei määritetty, vastaa arvoax_scalekuvasuhteen säilyttämiseksi.roion piirrettävän lähde-IR-datan kohdealueen suorakulmio(x, y, w, h).rgb_channelon RGB-kanava (0=R, 1=G, 2=B), joka piirretään kohdekuvaan, kun kohde on RGB565.-1(oletus) piirtää kaikki kanavat.alphaohjaa, kuinka suuri osa lähdekuvasta sekoitetaan kohteeseen (0-255). 255 on täysin läpinäkymätön; 0 ei aiheuta muutosta.color_paletteon väripaletin enum (esim.image.PALETTE_RAINBOW,image.PALETTE_IRONBOW) tai 256-pikselinen RGB565-kuva, jota käytetään hakutauluna harmaasävylähdearvolle.alpha_paletteon 256-pikselinen GRAYSCALE-kuva, jota käytetään alfa-hakutauluna, joka moduloi arvoaalphakunkin lähdepikselin arvon mukaan.hinton looginen TAI seuraavista:image.AREA: Käytä pinta-alaskaalausta pienennettäessä.image.BILINEAR: Käytä bilineaarista skaalausta.image.BICUBIC: Käytä bikuubista skaalausta.image.CENTER: Keskitä kuva kohteeseen.image.HMIRROR: Peilaa vaakasuunnassa.image.VFLIP: Käännä pystysuunnassa.image.TRANSPOSE: Transponoi (vaihda x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Suorita rgb_channel-poiminta ennen skaalausta.image.APPLY_COLOR_PALETTE_FIRST: Sovella väripalettia ennen skaalausta.image.SCALE_ASPECT_KEEP: Sovita kohteen sisään kuvasuhde säilyttäen.image.SCALE_ASPECT_EXPAND: Täytä kohde kuvasuhde säilyttäen (rajaa).image.SCALE_ASPECT_IGNORE: Täytä kohde kuvasuhdetta huomioimatta (venyttää).image.ROTATE_90: Kierrä 90 astetta.image.ROTATE_180: Kierrä 180 astetta.image.ROTATE_270: Kierrä 270 astetta.
scaleon 2-monikko(min, max), joka ohjaair-taulukon skaalaukseen käytettävää pienintä/suurinta lämpötilaa (celsiusasteina). Oletuksena todellinenir-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 kuinsensor.snapshot(). Joscopy_to_fbon False, uusi kuva varataan MicroPythonin keosta (joka on rajallinen); asetacopy_to_fbarvoon True kirjoittaaksesi tuloksen sen sijaan kehyspuskuriin.hmirrorjos True, peilaa uuden kuvan vaakasuunnassa.vflipjos True, kääntää uuden kuvan pystysuunnassa.transposejos True, transponoi uuden kuvan.x_scaleohjaa, kuinka paljon uutta kuvaa skaalataan x-suunnassa. Negatiivinen arvo kääntää vaakasuunnassa. Jos ei määritetty, vastaa arvoay_scalekuvasuhteen säilyttämiseksi.y_scaleohjaa, kuinka paljon uutta kuvaa skaalataan y-suunnassa. Negatiivinen arvo kääntää pystysuunnassa. Jos ei määritetty, vastaa arvoax_scalekuvasuhteen säilyttämiseksi.roion piirrettävän lähde-IR-datan kohdealueen suorakulmio(x, y, w, h).rgb_channelon RGB-kanava (0=R, 1=G, 2=B), joka piirretään.-1(oletus) piirtää kaikki kanavat.alphaohjaa, kuinka suuri osa lähdekuvasta sekoitetaan (0-255). 255 on täysin läpinäkymätön.color_paletteon väripaletin enum tai 256-pikselinen RGB565-kuva, jota käytetään hakutauluna harmaasävylähdearvolle.alpha_paletteon 256-pikselinen GRAYSCALE-kuva, jota käytetään alfa-hakutauluna.hinton looginen TAI seuraavista:image.AREA: Käytä pinta-alaskaalausta pienennettäessä.image.BILINEAR: Käytä bilineaarista skaalausta.image.BICUBIC: Käytä bikuubista skaalausta.image.CENTER: Keskitä kuva kohteeseen.image.HMIRROR: Peilaa vaakasuunnassa.image.VFLIP: Käännä pystysuunnassa.image.TRANSPOSE: Transponoi (vaihda x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Suorita rgb_channel-poiminta ennen skaalausta.image.APPLY_COLOR_PALETTE_FIRST: Sovella väripalettia ennen skaalausta.image.SCALE_ASPECT_KEEP: Sovita kohteen sisään kuvasuhde säilyttäen.image.SCALE_ASPECT_EXPAND: Täytä kohde kuvasuhde säilyttäen (rajaa).image.SCALE_ASPECT_IGNORE: Täytä kohde kuvasuhdetta huomioimatta (venyttää).image.ROTATE_90: Kierrä 90 astetta.image.ROTATE_180: Kierrä 180 astetta.image.ROTATE_270: Kierrä 270 astetta.
scaleon 2-monikko(min, max), joka ohjaa IR-taulukon skaalaukseen käytettävää pienintä/suurinta lämpötilaa (celsiusasteina). Oletuksena todellinen IR-minimi ja -maksimi.pixformatohjaa ulostulon pikseliformaattia. Täytyy ollaimage.GRAYSCALEtaiimage.RGB565.copy_to_fbjos True, kirjoittaa tuloksen kehyspuskuriin sen sijaan, että varaisi sen keosta.timeoutjos 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.