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
displaymodul — azlcdmodult egységesSPIDisplay/RGBDisplay/DSIDisplay/TVDisplayhá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:
lcd→display,lcd_touch→ft5x06, átnevezett LED-lábak — lásd a jelentős változásokat.
Új funkciók¶
Kijelző-háttérrendszerek —
DisplayData(DDC/EDID kiolvasás), egyTFP410DVI/HDMI sorosító, MIPI-DSI kijelzőtámogatás STM32 H7-en, egy HDMI/DVIcecillesztőprogram, valamint egy Pythondisplaykönyvtár egyST7701RGB panel inicializáló segédfunkcióval.Érintés — új
GT9115 pontos kapacitív érintő illesztőprogram (read_points()/read_id()/reset()).machinebővítmény — egy lefagyaszthatómachinekönyvtármachine.LEDsegédosztállyal, valamint egy újmachine.LED.value([v])metódus.Érzékelővezérlők —
sensor.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, valamintsensor.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 SPIlcd/tv/firmodulokat 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/vcvtplebegőpontos utasításokat a Cortex-M4-en (fast_floorf/fast_ceilf), egy helyben végzett skálázási hibát azimage.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_speechlisten()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.
É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).
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:
Cseréld le az
import lcdhasználatát az újdisplaymodulra és a megfelelő háttérrendszerre (a display modul változása).Állítsd át az
lcd_touchmodultFT5X06-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).Cseréld le a nem támogatott érzékelővezérlők köré írt
try/except RuntimeErrorszerkezeteket képesség-ellenőrzésekre (az érzékelővezérlés változása).