v3.9.4

A v3.9.4 hozzáad egy buzzer modult, Himax HM01B0 mozgásérzékelés ioctl-eket (alacsony fogyasztású, mozgásra ébredő példákkal), MT9V034 kiolvasási-ablak vezérlést, Ethernet alacsony fogyasztású funkciókat, egy OV7670 kamera-illesztőprogramot és az Arduino Nano 33 BLE Sense kamerát. Emellett egy nagy adag JPEG / LCD / TV gyorsítást is tartalmaz. A VSYNC kimeneti API-t egy visszahívás váltotta fel, és az MT9V034 erősítés/expozíció számítása javításra került — olvasd el az alábbi megszakító változásokat.

Kiemelt változások

  • Buzzer modul — egy új buzzer modul (freq(), duty(), RESONANT_FREQ) az OpenMV Pure Thermalon.

  • HM01B0 mozgásérzékelés — új Himax mozgásérzékelő ioctl-ek, valamint egy alacsony fogyasztású, mozgásra ébredő példa.

  • MT9V034 kiolvasási ablak — a globális zár kiolvasási ablakának vezérlése a sensor.ioctl() segítségével.

  • Új kamerák / lapok — alap OV7670 illesztőprogram, Arduino Nano 33 BLE Sense kamera és a Bormio lap.

  • Gyorsabb feldolgozási lánc — újraírt SIMD JPEG-kódoló, gyorsabb debayering, és nagy LCD/TV átviteli gyorsítások.

  • Megszakító: a sensor.set_vsync_output() helyét a sensor.set_vsync_callback() vette át, és az MT9V034 erősítés/expozíció számítása javításra került — lásd a megszakító változásokat.

Új funkciók

  • Buzzer — hozzáadva egy buzzer modul a buzzer.freq(), buzzer.duty() és egy buzzer.RESONANT_FREQ állandóval (OpenMV Pure Thermal).

  • HM01B0 mozgásérzékelés — hozzáadva az IOCTL_HIMAX_MD_ENABLE / MD_WINDOW / MD_THRESHOLD / MD_CLEAR és IOCTL_HIMAX_OSC_ENABLE ioctl-ek, egy Himax mozgásérzékelő példával és egy himax_wakeup_on_motion_detection.py alacsony fogyasztású ébresztő példával.

  • MT9V034 kiolvasási ablak — hozzáadva az IOCTL_SET_READOUT_WINDOW / IOCTL_GET_READOUT_WINDOW az MT9V034 kiolvasási-ablak vezérléséhez a sensor.ioctl() segítségével.

  • Ethernet alacsony fogyasztás — hozzáadva Ethernet kikapcsolási / alacsony fogyasztású funkciók.

  • Portenta — hozzáadva a külső oszcillátort engedélyező/letiltó visszahívás-funkciók.

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

  • Újraírva a JPEG-kódoló SIMD-del, és felgyorsítva a Bayer→YCbCr kódolás, a hardveres JPEG-mag bekapcsolva tartva a szkript futása alatt, felgyorsítva a debayering (~19,5 ms VGA esetén), a JPEG-tömörítés MDMA-ra terhelve, a TV/LCD átviteli útvonalak gyorsítva SIMD-del/hatékony DMA-val, és jelentősen csökkentve az SPI LCD busz használata. Hozzáadva egy USB3320 ULPI PHY illesztőprogram a nagy sebességű USB-hez.

Hibajavítások

Kamera és érzékelők:

  • Kijavítva a HM01B0 illesztőprogram inicializálása/streamelése, és behangolva az AE-célértéke / maximális erősítése, javítva az MT9V034 AGC/AEC erősítés-korlátozása, és kijavítva az OV5640 autofókusz firmware betöltése (bájtsorrend).

Kijelző:

  • Kijavítva a 64 KB-nál nagyobb SPI LCD DMA-átvitelek, az LCD-kimenet polaritása és az LCD-busz stabilitása (AXI QOS).

Rendszer és kapcsolatkezelés:

  • Kijavítva a CYW43 WiFi-illesztőprogram által használt SDMMC-példány (egy lap által definiált SDMMC-példánnyal), javítva a FLIR Lepton DMA-hatékonysága (a VOSPI 20 MHz-re emelve a H7-en), kijavítva a Portenta alacsony fogyasztású / készenléti viselkedése (PMIC SW1 áramkorlát, Ethernet és ULPI alacsony fogyasztás), az RTSP-szerver mostantól tolerálja a sorrenden kívüli CSeq és PLAY Range fejléceket (FFPLAY), kijavítva a linker veremének 8 bájtos EABI-igazítása, és kijavítva egy hibás importálás a Portenta mqtt_sub.py példájában.

Hardver- és laptámogatás

  • OV7670 kameraérzékelő — alap illesztőprogram.

  • Arduino Nano 33 BLE Sense — kameraérzékelő illesztőprogram (nrf port) reset-láb és I2C-busz javításokkal.

  • HM01B0 — hozzáadva egy 320x320-as felbontás.

  • Bormio — PLL órajel-konfiguráció, flash-elrendezés és GPIO PORT K (a Portentán is engedélyezve).

  • USB3320 ULPI PHY — nagy sebességű USB.

Megszakító API-változások

Felhasználó számára látható API-törések a v3.9.3 és v3.9.4 között. Hatókör: a modules/ mappában lévő Python C-modulok és a scripts/libraries/ mappában lévő Python-könyvtárak.

Minden változás a hatásával van megjelölve:

  • major — a funkciót használó legtöbb szkriptet érinti; portolnod kell a kódot.

  • behavior — azonos API, eltérő eredmények; ellenőrizd újra a behangolt szkripteket.

A változások hatás szerint, ebben a sorrendben vannak csoportosítva. Ha csak portolni szeretnéd a kódodat, ugorj a végén lévő migrációs ellenőrzőlistához. Minden commit-hash a GitHubon lévő diffjére hivatkozik.

A VSYNC kimenetet egy visszahívás váltotta fel (major)

A sensor.set_vsync_output(pin) eltávolításra került, és a sensor.set_vsync_callback(callback) váltotta fel. A VSYNC-vonal többé nem hajt meg közvetlenül egy Pin-t; helyette egy Python hívható objektum hívódik meg a VSYNC állapotával, és a visszahívásod maga kapcsolgatja a Pin-t. A sensor.set_vsync_output()-ot használó kódot portolni kell (lásd a frissített vsync_gpio_output.py példát).

Commitok: 5bbe25c20

Az MT9V034 erősítés/expozíció számítása javítva (behavior)

Az MT9V034 órajel-sebessége és erősítés/expozíció számítása javításra került, így a sensor.set_auto_gain() / sensor.set_auto_exposure() mostantól pontos (és ezért más) értékeket állít elő, mint korábban. Azoknak a szkripteknek, amelyek kompenzáló erősítés/expozíció értékeket égettek be, hogy megkerüljék a régi hibás számítást az MT9V034 globális zárú kameráknál, el kell hagyniuk ezeket a kerülőmegoldásokat, és újra kell hangolniuk.

Commitok: 4420536c4

Migrációs ellenőrzőlista

A v3.9.4-re való tiszta portoláshoz a tipikus tennivaló a következő:

  1. Cseréld le a sensor.set_vsync_output(pin)-t a sensor.set_vsync_callback(callback)-re, és a Pin-t a visszahíváson belülről kapcsolgasd (a VSYNC-változás).

  2. Hangold újra az MT9V034 erősítés/expozíció kerülőmegoldásait a javított számítással szemben (az MT9V034-változás).

Az összes többi szkript változtatás nélkül fut.