v4.5.0

A v4.5.0 egy jelentős kiadás. A régi lcd modult egy egységes display modul váltotta fel, külön SPI / parallel / DSI / TV háttérrendszerekkel, hozzáadtuk az Arduino Giga lapot, és számos kijelző-, érintés- és érzékelővezérlési funkció érkezett. Több jelentős változás is van — olvasd el őket alább.

Kiemelt változások

  • Új display modul — az lcd modult egységes SPIDisplay / RGBDisplay / DSIDisplay / TVDisplay háttérrendszerekkel váltja fel.

  • Arduino Giga lap támogatása.

  • Új kijelző-/érintőhardver — DSI kijelzők STM32 H7-en, TFP410 DVI/HDMI, HDMI/DVI CEC, ST7701 RGB panelek, valamint GT911 / FT5X06 kapacitív érintés.

  • Új érzékelővezérlők — feketeszint-kalibráció, éjszakai mód és sensor.disable_delays(); sokkal gyorsabb transzponálás (~5x) és morfológia (~2,5x).

  • Jelentős változás: lcddisplay, lcd_touchft5x06, átnevezett LED-lábak — lásd a jelentős változásokat.

Új funkciók

  • Kijelző-háttérrendszerekDisplayData (DDC/EDID kiolvasás), egy TFP410 DVI/HDMI sorosító, MIPI-DSI kijelzőtámogatás STM32 H7-en, egy HDMI/DVI cec illesztőprogram, valamint egy Python display könyvtár egy ST7701 RGB panel inicializáló segédfunkcióval.

  • Érintés — új GT911 5 pontos kapacitív érintő illesztőprogram (read_points() / read_id() / reset()).

  • machine bővítmény — egy lefagyasztható machine könyvtár machine.LED segédosztállyal, valamint egy új machine.LED.value([v]) metódus.

  • Érzékelővezérlőksensor.set_auto_blc(enable, regs=None) / sensor.get_blc_regs() (feketeszint-kalibráció), IOCTL_SET_NIGHT_MODE / IOCTL_GET_NIGHT_MODE (OV7725/OV5640), OV7670 hmirror/vflip, valamint sensor.disable_delays() a kamera beállási késleltetéseinek kihagyásához a gyorsabb újrakonfigurálás érdekében.

  • i.MX RT — a sensor.set_xclk_frequency() mostantól bármilyen frekvenciát elfogad (a legközelebbi érvényes CSI osztóra illesztve), és az SPI lcd / tv / fir modulokat engedélyeztük az RT1060-on.

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

  • Sokkal gyorsabb képműveletek — a kép transzponálása ~5x gyorsabb, az image.morph() pedig ~2,5x gyorsabb.

  • A kamerabusz-vizsgálat mostantól több eszközcímet keres és érvényesít, támogatva a buszon több eszközzel rendelkező lapokat.

Hibajavítások

Kamera és érzékelők:

  • Javítottuk az erősítésszámítás pontosságát számos érzékelőnél (HM01B0, HM0360, MT9M114, MT9V0xx, OV2640, OV5640, OV7690, OV7725, OV9650, PAJ6100), az MT9V0xx expozícióját / oszlop-binningjét, az OV5640 expozícióját és az OV7670 VGA-ablakozását.

  • Az STM32 mostantól eldobja a sérült transzponált képkockákat ahelyett, hogy hibás képeket adna vissza.

Képfeldolgozás:

  • Javítottunk egy egész szám túlcsordulást, amely a kép- / FIR- / ToF- / LCD- / TV-műveleteket érintette, érvénytelen vcvtm/vcvtp lebegőpontos utasításokat a Cortex-M4-en (fast_floorf/fast_ceilf), egy helyben végzett skálázási hibát az image.to_*() konverzióban, valamint a DMA2D rajzolási gyorsítótár sérülését.

Kijelző és rendszer:

  • Javítottuk a DSI kijelző időzítését és álló módját, a micro_speech listen() működését Nicla Vision / Portenta H7 esetén, az STM32 felhasználói kapcsolót (pyb.Switch) és az I2C4 busz támogatását.

Hardver- és laptámogatás

  • Arduino Giga — új lap, elnevezett Arduino láb-leképezésekkel és teljes példakészlettel.

  • OpenMV RT1060 — SPI LCD, TV és FIR hőkamera modulok engedélyezve.

  • Arduino Nano 33 BLE Sense — LED-lábak.

Jelentős API-változások

A felhasználó számára látható API-változások a v4.4.3 és a v4.5.0 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:

  • major — a legtöbb szkriptet, amely használta, módosítani kell.

  • 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 lcd modult a display váltja fel (major)

A régi lcd modult eltávolítottuk, és egy egységes display modul váltotta fel, amely SPIDisplay (SPI LCD shield), RGBDisplay / parallel, DSIDisplay (MIPI-DSI) és TVDisplay háttérrendszerekre van osztva, közös API-val. A szkripteknek át kell állniuk az import lcd használatáról a display modulra, és létre kell hozniuk a megfelelő háttérrendszer-objektumot.

Commitok: 227824aac, 6c6336829

Érintő modul, LED-lábak és csomagolt illesztőprogramok (minor)

Az általános lcd_touch modult egy dedikált FT5X06 kapacitív érintő illesztőprogram-modul váltotta fel. A LED-lábak nevét átneveztük az összes lap közötti egységesség érdekében (a régi LED-láb neveire hivatkozó szkripteket frissíteni kell). A csomagolt hts221 / lps22h / lsm6dsox / lsm9ds1 IMU/érzékelő illesztőprogramokat az upstream micropython-lib verziókkal váltottuk fel, amelyek API-ja kissé eltér (a csomagolt példákat ehhez igazítottuk).

Commitok: 86ad6dcdb, 9344c3b74, 2b5b7963b

A nem támogatott érzékelővezérlők mostantól figyelmeztetnek (behavior)

A sensor.set_auto_gain(), a set_auto_exposure(), a set_auto_whitebal() és a set_auto_blc() mostantól figyelmeztetést ír ki RuntimeError kiváltása helyett, ha az aktív érzékelő nem támogatja a vezérlőt, így ugyanaz a szkript eltérő képességű érzékelőkön is futtatható. A kivétel elkapására támaszkodó kódot frissíteni kell.

Commit: dbf4996f2

Migrációs ellenőrzőlista

A v4.5.0-ra való tiszta portoláshoz a szokásos teendők a következők:

  1. Cseréld le az import lcd használatát az új display modulra és a megfelelő háttérrendszerre (a display modul változása).

  2. Állítsd át az lcd_touch modult FT5X06-ra, frissítsd a régi LED-láb neveket, és ellenőrizd újra az upstream IMU illesztőprogramok API-jait (az érintés-/láb-/illesztőprogram-változások).

  3. Cseréld le a nem támogatott érzékelővezérlők köré írt try/except RuntimeError szerkezeteket képesség-ellenőrzésekre (az érzékelővezérlés változása).