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 / PWMBacklight osztályok és egy backlight= kijelzőargumentum.

  • Jelentős változás: az Image() konstruktor, a display API-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ényelmi image.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_IGNORE az illesztéshez / kitöltéshez / nyújtáshoz.

  • Paletta-konstansokimage.PALETTE_RAINBOW és image.PALETTE_IRONBOW (áthelyezve az image modulba).

  • Széles látómező — új sensor.IOCTL_SET_FOV_WIDE / IOCTL_GET_FOV_WIDE ioctl-ek (a GC2145-ön, akár 5x érzékelő-skálázásig).

  • Betöltés lemezről — a draw_image() és a display.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 és PWMBacklight osztályok (a display modulból importálhatók), valamint egy csak kulcsszavas backlight= argumentum az SPI/parallel kijelző-konstruktorokon.

Egyéb változások és fejlesztések

  • Az ST7701 DSI kijelző illesztőprogram a saját st7701.py moduljába került (továbbra is importálható a from display import * segítségével), és lefagyasztva került az Arduino Gigára; az lsm9ds1 IMU 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 SPIDisplay konstruktor argumentumsorrendjét (a bgr, byte_swap, triple_buffer rossz 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 Senselsm9ds1 IMU 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 essidssid-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).

Commitok: 6752c95ac, 161737092, 8178c237c, b6cdf8de1

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:

  1. Frissítsd az Image() létrehozását az új kulcsszavas formára, állítsd át a display.write() hívásokat az x_size/y_size használatáról, és nevezd át a WINC.connect() essidssid argumentumát (kezeld az új, bájtalapú keresési tuple-öket) (a konstruktor-/display-/WINC-változások).

  2. Skálázd át a Display.backlight() hívásokat 0–100-ra, ellenőrizd újra az egész szám x_scale/y_scale használatát, és add át a korábban pozicionális modulopciókat kulcsszóként (a viselkedési változások).