v4.5.1¶
A v4.5.1 képtájolási/oldalarány-rajzolási segédbeállításokat ad hozzá, képek közvetlen betöltését fájlútvonalról, egy GC2145 széles látómezős ioctl-t és egy új háttérvilágítás-vezérlő API-t. Emellett átdolgozza az Image() konstruktort, a display API-kat és a modulok argumentumfeldolgozását — olvasd el a jelentős változásokat alább.
Kiemelt változások¶
Rajzolási segédbeállítások — a
draw_image()tájolási (HMIRROR/VFLIP/TRANSPOSE,ROTATE_90/180/270) és oldalarány-skálázási (SCALE_ASPECT_KEEP/EXPAND/IGNORE) segédbeállításokat kapott.Képek betöltése lemezről — a
draw_image()/display.write()elfogad egy fájlútvonal-karakterláncot.Háttérvilágítás-vezérlés — új
DACBacklight/PWMBacklightosztályok és egybacklight=kijelzőargumentum.Jelentős változás: az
Image()konstruktor, adisplayAPI-k és a modulok argumentumfeldolgozása megváltozott — lásd a jelentős változásokat.
Új funkciók¶
A
draw_image()tájolási segédbeállításai —image.HMIRROR,image.VFLIP,image.TRANSPOSE, valamint a kényelmiimage.ROTATE_90/ROTATE_180/ROTATE_270.A
draw_image()oldalarány-segédbeállításai —image.SCALE_ASPECT_KEEP/SCALE_ASPECT_EXPAND/SCALE_ASPECT_IGNOREaz illesztéshez / kitöltéshez / nyújtáshoz.Paletta-konstansok —
image.PALETTE_RAINBOWésimage.PALETTE_IRONBOW(áthelyezve az image modulba).Széles látómező — új
sensor.IOCTL_SET_FOV_WIDE/IOCTL_GET_FOV_WIDEioctl-ek (a GC2145-ön, akár 5x érzékelő-skálázásig).Betöltés lemezről — a
draw_image()és adisplay.write()elfogad egy forráskép fájlútvonal-karakterláncot, és közvetlenül a tárolóból tölti be.Háttérvilágítás-vezérlők — új
DACBacklightésPWMBacklightosztályok (adisplaymodulból importálhatók), valamint egy csak kulcsszavasbacklight=argumentum az SPI/parallel kijelző-konstruktorokon.
Egyéb változások és fejlesztések¶
Az ST7701 DSI kijelző illesztőprogram a saját
st7701.pymoduljába került (továbbra is importálható afrom display import *segítségével), és lefagyasztva került az Arduino Gigára; azlsm9ds1IMU illesztőprogramot az Arduino Nano 33 BLE Sense-en fagyasztottuk le.Az MT9V022 / MT9V034 (globális zár) kamerák mostantól sorzaj-korrekciót alkalmaznak a jobb képminőség érdekében.
Az i.MX RT USB tömegtároló kötete mostantól OpenMV lemezként van címkézve.
Hibajavítások¶
Kamera és érzékelők:
Javítottuk a sarokészlelést (
find_keypoints()FAST/AGAST) a 480 sornál magasabb képeken — a soronkénti puffer mérete mostantól a kép magasságához igazodik.FSYNC-láb támogatást adtunk a képkocka-szinkronizált
snapshot()működéséhez i.MX RT-n (OpenMV RT1060), és javítottuk a felcserélt SPI4 MOSI/MISO lábakat az RT1060-on.
Kijelző és videó:
Javítottuk a
SPIDisplaykonstruktor argumentumsorrendjét (abgr,byte_swap,triple_bufferrossz paraméterekre lett alkalmazva).Javítottuk a TV-shield képhibáját, amely megadott téglalappal történő képrajzoláskor jelentkezett, valamint a hibás MJPEG képkockahatárokat skálázott képkockák rögzítésekor.
Hálózatkezelés:
A WINC WiFi AP mód már nem kényszeríti ki az elavult, csak WEP-es korlátozást — a nyílt és WPA AP módok megfelelő PSK-kezeléssel működnek.
Hardver- és laptámogatás¶
OpenMV RT1060 — FSYNC láb és javított SPI4 lábak.
Arduino GIGA — QSPI megbízhatósági áthidaló megoldás; ST7701 kijelző lefagyasztva.
Arduino Nano 33 BLE Sense —
lsm9ds1IMU illesztőprogram lefagyasztva.
Jelentős API-változások¶
A felhasználó számára látható API-változások a v4.5.0 és a v4.5.1 között. Hatókör: Python C-modulok a modules/ mappában, valamint Python könyvtárak a scripts/libraries/ mappában.
Minden változás meg van jelölve a hatásával:
minor — szűk API; csak az azt használó szkripteket érinti.
behavior — ugyanaz az API, eltérő eredmények; ellenőrizd újra a finomhangolt szkripteket.
A változások ebben a sorrendben, hatás szerint vannak csoportosítva. Ha csak portolni szeretnéd a kódodat, ugorj a végén található migrációs ellenőrzőlistához. Minden commit-hash a GitHubon lévő diffjére mutat.
Az Image() konstruktor és a display API-k (minor)¶
Az image.Image konstruktort kulcsszavas argumentumokra dolgoztuk át (height, pixformat, buffer=, copy_to_fb=); mostantól képet építhet egy meglévő bytearray/pufferből, és tömörített formátumokhoz puffer szükséges. A display.write() átdolgozásra került: az x_scale/y_scale mostantól float-ot (skálázási arányt) vagy int-et (célméretet képpontban) vesz át, a külön x_size/y_size kulcsszavakat pedig eltávolítottuk. A WINC.connect() első pozicionális argumentumát átneveztük essid → ssid-re, és a WINC WiFi keresési eredményei a következőre változtak: (ssid_bytes, bssid_bytes, channel, rssi, security, N) (az SSID/BSSID mostantól bájtok; a BSSID már nem formázott MAC-karakterlánc).
Háttérvilágítás-tartomány, skálázás és csak kulcsszavas argumentumok (behavior)¶
A Display.backlight() mostantól 0–100 intenzitást vesz át (0 = ki, 100 = teljes) a 0–255 helyett, és tartományon kívül ValueError kivételt vált ki. Az egész szám x_scale/y_scale értékeket mostantól szorzó skálázási tényezőként kezeli (ugyanúgy, mint a float értékeket), nem pedig célképpont-méretként — ez érinti a fir.snapshot()/draw_ir(), tof.snapshot()/ draw_depth(), display és tv skálázást. A sensor, fir, tof, tv, mjpeg, gif, imageio, tf és audio modulok argumentumfeldolgozását egységesítettük, így több korábban pozicionális opció csak kulcsszavassá vált (a nevek, alapértelmezések és viselkedés egyébként változatlanok).
Commitok: 391ec443f, 8bd25d6cd, 477312656, 08bf62a32, a4c0f20bf, 9b411a66d, 3d679f5a6, d15fc6b8d, 555e67ecd
Migrációs ellenőrzőlista¶
A v4.5.1-re való tiszta portoláshoz a szokásos teendők a következők:
Frissítsd az
Image()létrehozását az új kulcsszavas formára, állítsd át adisplay.write()hívásokat azx_size/y_sizehasználatáról, és nevezd át aWINC.connect()essid→ssidargumentumát (kezeld az új, bájtalapú keresési tuple-öket) (a konstruktor-/display-/WINC-változások).Skálázd át a
Display.backlight()hívásokat 0–100-ra, ellenőrizd újra az egész számx_scale/y_scalehasználatát, és add át a korábban pozicionális modulopciókat kulcsszóként (a viselkedési változások).