v3.9.4¶
v3.9.4 přidává modul buzzer, ioctly pro detekci pohybu HM01B0 od Himaxu (s příklady probuzení při pohybu v nízkopříkonovém režimu), řízení čtecího okna MT9V034, nízkopříkonové funkce pro Ethernet, ovladač kamery OV7670 a kameru Arduino Nano 33 BLE Sense. Přináší také velkou dávku zrychlení JPEG / LCD / TV. API výstupu VSYNC bylo nahrazeno callbackem a byl opraven výpočet zisku/expozice u MT9V034 — přečtěte si nekompatibilní změny níže.
Hlavní novinky¶
Modul buzzer — nový modul
buzzer(freq(),duty(),RESONANT_FREQ) na OpenMV Pure Thermal.Detekce pohybu HM01B0 — nové ioctly Himaxu pro detekci pohybu plus příklad probuzení při pohybu v nízkopříkonovém režimu.
Čtecí okno MT9V034 — řízení čtecího okna global-shutter pomocí
sensor.ioctl().Nové kamery / desky — základní ovladač OV7670, kamera Arduino Nano 33 BLE Sense a deska Bormio.
Rychlejší zpracování — přepsaný SIMD JPEG enkodér, rychlejší debayering a velká zrychlení přenosu na LCD/TV.
Nekompatibilní:
sensor.set_vsync_output()bylo nahrazenosensor.set_vsync_callback()a byl opraven výpočet zisku/expozice u MT9V034 — viz nekompatibilní změny.
Nové funkce¶
Buzzer — přidán modul
buzzersbuzzer.freq(),buzzer.duty()a konstantoubuzzer.RESONANT_FREQ(OpenMV Pure Thermal).Detekce pohybu HM01B0 — přidány ioctly
IOCTL_HIMAX_MD_ENABLE/MD_WINDOW/MD_THRESHOLD/MD_CLEARaIOCTL_HIMAX_OSC_ENABLE, s příkladem detekce pohybu Himaxu a nízkopříkonovým příkladem probuzeníhimax_wakeup_on_motion_detection.py.Čtecí okno MT9V034 — přidány
IOCTL_SET_READOUT_WINDOW/IOCTL_GET_READOUT_WINDOWpro řízení čtecího okna MT9V034 pomocísensor.ioctl().Nízkopříkonový Ethernet — přidány funkce pro vypnutí / nízkopříkonový režim Ethernetu.
Portenta — přidány callback funkce pro povolení/zakázání externího oscilátoru.
Další změny a vylepšení¶
Přepsán JPEG enkodér s využitím SIMD a zrychleno kódování Bayer→YCbCr, hardwarové JPEG jádro zůstává napájené během běhu skriptu, zrychlen debayering (~19,5 ms pro VGA), komprese JPEG přesunuta na MDMA, urychleny přenosové cesty TV/LCD pomocí SIMD/efektivního DMA a výrazně sníženo využití sběrnice SPI LCD. Přidán ovladač USB3320 ULPI PHY pro vysokorychlostní USB.
Opravy chyb¶
Kamera a senzory:
Opravena inicializace/streamování ovladače HM01B0 a doladěn jeho cíl AE / max. zisk, opraveno omezení zisku AGC/AEC u MT9V034 a opraveno načítání firmwaru autofokusu OV5640 (pořadí bajtů).
Displej:
Opraveny DMA přenosy SPI LCD větší než 64 KB, polarita výstupu LCD a stabilita sběrnice LCD (AXI QOS).
Systém a konektivita:
Opravena instance SDMMC používaná ovladačem WiFi CYW43 (s instancí SDMMC definovanou deskou), zlepšena efektivita DMA u FLIR Lepton (VOSPI zvýšeno na 20 MHz na H7), opraveno nízkopříkonové / pohotovostní chování Portenty (proudové omezení PMIC SW1, nízkopříkonový režim Ethernetu a ULPI), server RTSP nyní toleruje hlavičky
CSeqaPLAY Rangemimo pořadí (FFPLAY), opraveno 8bajtové EABI zarovnání zásobníku v linkeru a opraven nefunkční import v příkladumqtt_sub.pypro Portentu.
Hardware a podpora desek¶
OV7670 senzor kamery — základní ovladač.
Arduino Nano 33 BLE Sense — ovladač senzoru kamery (port nrf) s opravami reset pinu a sběrnice I2C.
HM01B0 — přidáno rozlišení 320x320.
Bormio — konfigurace hodin PLL, rozložení flash paměti a GPIO PORT K (povoleno také na Portentě).
USB3320 ULPI PHY — vysokorychlostní USB.
Nekompatibilní změny API¶
Uživatelsky viditelné nekompatibility API mezi v3.9.3 a v3.9.4. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.
Každá změna je označena svým dopadem:
major — ovlivňuje většinu skriptů, které funkci používaly; budete muset upravit kód.
behavior — stejné API, jiné výsledky; znovu zkontrolujte doladěné skripty.
Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete jen upravit svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.
Výstup VSYNC nahrazen callbackem (major)¶
sensor.set_vsync_output(pin) bylo odstraněno a nahrazeno sensor.set_vsync_callback(callback). Linka VSYNC již nebudí přímo Pin; místo toho se volá Python callable se stavem VSYNC a váš callback přepíná Pin sám. Kód, který používal sensor.set_vsync_output(), musí být upraven (viz aktualizovaný příklad vsync_gpio_output.py).
Commity: 5bbe25c20
Opraven výpočet zisku/expozice u MT9V034 (behavior)¶
Byla opravena rychlost hodin a výpočet zisku/expozice u MT9V034, takže sensor.set_auto_gain() / sensor.set_auto_exposure() nyní produkují přesné (a tedy odlišné) hodnoty než dříve. Skripty, které měly napevno nastavené kompenzační hodnoty zisku/expozice, aby obešly starý nesprávný výpočet u kamer MT9V034 s global-shutter, by tato obejití měly odstranit a znovu doladit.
Commity: 4420536c4
Kontrolní seznam migrace¶
Pro čistý přechod na v3.9.4 je typická práce následující:
Nahraďte
sensor.set_vsync_output(pin)zasensor.set_vsync_callback(callback)a přepínejtePinzevnitř callbacku (změna VSYNC).Znovu dolaďte všechna obejití zisku/expozice u MT9V034 vůči opravenému výpočtu (změna MT9V034).
Všechny ostatní skripty běží beze změny.