v4.5.0¶
v4.5.0 je velké vydání. Starý modul lcd byl nahrazen jednotným modulem display se samostatnými SPI / paralelními / DSI / TV backendy, byla přidána deska Arduino Giga a dorazila vlna funkcí pro displeje, dotyk a řízení senzorů. Obsahuje několik zásadních změn — přečtěte si je níže.
Hlavní novinky¶
Nový modul
display— nahrazujelcdjednotnými backendySPIDisplay/RGBDisplay/DSIDisplay/TVDisplay.Podpora desky Arduino Giga.
Nový hardware pro displeje/dotyk — DSI displeje na STM32 H7, TFP410 DVI/HDMI, HDMI/DVI CEC, RGB panely ST7701 a kapacitní dotyk GT911 / FT5X06.
Nové řízení senzorů — kalibrace úrovně černé, noční režim a
sensor.disable_delays(); mnohem rychlejší transpozice (~5x) a morfologie (~2,5x).Zásadní změna:
lcd→display,lcd_touch→ft5x06, přejmenované LED piny — viz zásadní změny.
Nové funkce¶
Backendy displejů —
DisplayData(čtení DDC/EDID), serializérTFP410DVI/HDMI, podpora MIPI-DSI displejů na STM32 H7, ovladač HDMI/DVIceca Python knihovnadisplays pomocníkem pro inicializaci RGB paneluST7701.Dotyk — nový 5bodový ovladač kapacitního dotyku
GT911(read_points()/read_id()/reset()).Rozšíření modulu
machine— zmrazitelná knihovnamachines pomocnou třídoumachine.LEDa novou metodoumachine.LED.value([v]).Řízení senzorů —
sensor.set_auto_blc(enable, regs=None)/sensor.get_blc_regs()(kalibrace úrovně černé),IOCTL_SET_NIGHT_MODE/IOCTL_GET_NIGHT_MODE(OV7725/OV5640), hmirror/vflip pro OV7670 asensor.disable_delays()pro přeskočení ustalovacích prodlev kamery za účelem rychlejší rekonfigurace.i.MX RT —
sensor.set_xclk_frequency()nyní přijímá libovolnou frekvenci (zaokrouhluje na nejbližší platný dělič CSI) a SPI modulylcd/tv/firbyly povoleny na RT1060.
Další změny a vylepšení¶
Mnohem rychlejší operace s obrazem — transpozice obrazu je ~5x rychlejší a
image.morph()je ~2,5x rychlejší.Sondování sběrnice kamery nyní skenuje a ověřuje více adres zařízení, čímž podporuje desky s několika zařízeními na sběrnici.
Opravy chyb¶
Kamera a senzory:
Opravena přesnost výpočtu zisku u mnoha senzorů (HM01B0, HM0360, MT9M114, MT9V0xx, OV2640, OV5640, OV7690, OV7725, OV9650, PAJ6100), expozice / sloupcový binning u MT9V0xx, expozice u OV5640 a VGA okénkování u OV7670.
STM32 nyní zahazuje poškozené transponované snímky místo vracení vadných obrazů.
Zpracování obrazu:
Opraveno přetečení celého čísla ovlivňující operace s obrazem / FIR / ToF / LCD / TV, neplatné instrukce s plovoucí desetinnou čárkou
vcvtm/vcvtpna Cortex-M4 (fast_floorf/fast_ceilf), chyba škálování na místě v konverziimage.to_*()a poškození vyrovnávací paměti vykreslování DMA2D.
Displej a systém:
Opraveno časování DSI displeje a režim na výšku,
micro_speechlisten()na Nicla Vision / Portenta H7, uživatelský přepínač STM32 (pyb.Switch) a podpora sběrnice I2C4.
Hardware a podpora desek¶
Arduino Giga — nová deska s pojmenovaným mapováním Arduino pinů a kompletní sadou příkladů.
OpenMV RT1060 — povoleny moduly SPI LCD, TV a FIR termální moduly.
Arduino Nano 33 BLE Sense — LED piny.
Zásadní změny API¶
Pro uživatele viditelné změny API mezi v4.4.3 a v4.5.0. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.
Každá změna je označena svým dopadem:
major — většina skriptů, které ji používaly, vyžaduje úpravy.
minor — úzké API; ovlivňuje pouze skripty, které ho používaly.
behavior — stejné API, jiné výsledky; znovu zkontrolujte vyladěné skripty.
Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete pouze přenést svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.
Modul lcd nahrazen modulem display (major)¶
Starý modul lcd byl odstraněn a nahrazen jednotným modulem display rozděleným na backendy SPIDisplay (SPI LCD shield), RGBDisplay / paralelní, DSIDisplay (MIPI-DSI) a TVDisplay se společným API. Skripty musí přejít z import lcd na modul display a vytvořit příslušný objekt backendu.
Dotykový modul, LED piny a dodávané ovladače (minor)¶
Generický modul lcd_touch byl nahrazen vyhrazeným modulem ovladače kapacitního dotyku FT5X06. Názvy LED pinů byly přejmenovány pro konzistenci napříč všemi deskami (skripty odkazující na staré názvy LED pinů musí být aktualizovány). Dodávané IMU/senzorové ovladače hts221 / lps22h / lsm6dsox / lsm9ds1 byly nahrazeny upstream verzemi z micropython-lib, jejichž API se mírně liší (dodávané příklady byly odpovídajícím způsobem aktualizovány).
Nepodporované řízení senzorů nyní varuje (behavior)¶
sensor.set_auto_gain(), set_auto_exposure(), set_auto_whitebal() a set_auto_blc() nyní vypisují varování místo vyvolání RuntimeError, když aktivní senzor daný ovládací prvek nepodporuje, takže stejný skript může běžet napříč senzory s odlišnými schopnostmi. Kód, který se spoléhal na zachycení výjimky, musí být aktualizován.
Commit: dbf4996f2
Kontrolní seznam migrace¶
Pro čistý přenos na v4.5.0 je typická práce následující:
Nahraďte použití
import lcdnovým modulemdisplaya příslušným backendem (změna modulu display).Přejděte z
lcd_touchnaFT5X06, aktualizujte všechny staré názvy LED pinů a znovu zkontrolujte API upstream IMU ovladačů (změny dotyku/pinů/ovladačů).Nahraďte
try/except RuntimeErrorkolem nepodporovaného řízení senzorů kontrolami schopností (změna řízení senzorů).