v3.9.4¶
v3.9.4 voegt een buzzer-module toe, Himax HM01B0-bewegingsdetectie-ioctls (met voorbeelden voor stroombesparend wake-on-motion), MT9V034-uitleesvenstercontrole, Ethernet-stroombesparingsfuncties, een OV7670-cameradriver en de Arduino Nano 33 BLE Sense-camera. Het levert ook een grote reeks JPEG-/LCD-/TV-versnellingen. De VSYNC-uitvoer-API is vervangen door een callback en de MT9V034 versterkings-/belichtingsberekening is gecorrigeerd — lees de ingrijpende wijzigingen hieronder.
Hoogtepunten¶
Buzzer-module — een nieuwe
buzzer-module (freq(),duty(),RESONANT_FREQ) op de OpenMV Pure Thermal.HM01B0-bewegingsdetectie — nieuwe Himax-bewegingsdetectie-ioctls plus een stroombesparend wake-on-motion-voorbeeld.
MT9V034-uitleesvenster — beheer het global-shutter-uitleesvenster via
sensor.ioctl().Nieuwe camera’s / boards — basis-OV7670-driver, Arduino Nano 33 BLE Sense-camera en het Bormio-board.
Snellere pipeline — herschreven SIMD JPEG-encoder, snellere debayering en grote LCD-/TV-overdrachtsversnellingen.
Ingrijpend:
sensor.set_vsync_output()is vervangen doorsensor.set_vsync_callback()en de MT9V034 versterkings-/belichtingsberekening is gecorrigeerd — zie de ingrijpende wijzigingen.
Nieuwe functies¶
Buzzer — een
buzzer-module toegevoegd metbuzzer.freq(),buzzer.duty()en eenbuzzer.RESONANT_FREQ-constante (OpenMV Pure Thermal).HM01B0-bewegingsdetectie — de ioctls
IOCTL_HIMAX_MD_ENABLE/MD_WINDOW/MD_THRESHOLD/MD_CLEARenIOCTL_HIMAX_OSC_ENABLEtoegevoegd, met een Himax-bewegingsdetectievoorbeeld en een stroombesparend wake-voorbeeldhimax_wakeup_on_motion_detection.py.MT9V034-uitleesvenster —
IOCTL_SET_READOUT_WINDOW/IOCTL_GET_READOUT_WINDOWtoegevoegd voor MT9V034-uitleesvenstercontrole viasensor.ioctl().Ethernet-stroombesparing — Ethernet power-down-/stroombesparingsfuncties toegevoegd.
Portenta — callbackfuncties toegevoegd om de externe oscillator in/uit te schakelen.
Overige wijzigingen en verbeteringen¶
De JPEG-encoder herschreven met SIMD en de Bayer→YCbCr-encodering versneld, de hardware-JPEG-kern ingeschakeld gehouden tijdens scriptuitvoering, debayering versneld (~19,5 ms voor VGA), JPEG-compressie verplaatst naar MDMA, de TV-/LCD-overdrachtspaden versneld met SIMD/efficiënte DMA en het SPI LCD-busgebruik enorm verminderd. Een USB3320 ULPI PHY-driver toegevoegd voor high-speed USB.
Bugfixes¶
Camera en sensoren:
De HM01B0-driver-init/-streaming gerepareerd en het AE-doel / de maximale versterking afgesteld, de MT9V034 AGC/AEC-versterkingsbegrenzing gecorrigeerd en het laden van de OV5640-autofocusfirmware (byte-volgorde) gerepareerd.
Display:
SPI LCD DMA-overdrachten groter dan 64 KB, de LCD-uitvoerpolariteit en de LCD-busstabiliteit (AXI QOS) gerepareerd.
Systeem en connectiviteit:
De door de CYW43 WiFi-driver gebruikte SDMMC-instance gerepareerd (met een board-gedefinieerde SDMMC-instance), de FLIR Lepton DMA-efficiëntie verbeterd (VOSPI verhoogd naar 20 MHz op H7), het Portenta stroombesparings-/standby-gedrag gerepareerd (PMIC SW1-stroomlimiet, Ethernet- en ULPI-stroombesparing), de RTSP-server bestand gemaakt tegen out-of-order
CSeq- enPLAY Range-headers (FFPLAY), de 8-byte EABI-uitlijning van de linker-stack gerepareerd en een kapotte import in het Portenta-voorbeeldmqtt_sub.pygerepareerd.
Hardware- en boardondersteuning¶
OV7670-camerasensor — basisdriver.
Arduino Nano 33 BLE Sense — camerasensordriver (nrf-port) met reset-pin- en I2C-busfixes.
HM01B0 — een resolutie van 320x320 toegevoegd.
Bormio — PLL-klokconfiguratie, flash-indeling en GPIO PORT K (ook ingeschakeld op Portenta).
USB3320 ULPI PHY — high-speed USB.
Ingrijpende API-wijzigingen¶
Voor de gebruiker zichtbare API-wijzigingen tussen v3.9.3 en v3.9.4. Scope: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.
Elke wijziging is gemarkeerd met de impact ervan:
major — treft de meeste scripts die de functie gebruikten; je zult code moeten porten.
behavior — dezelfde API, andere resultaten; controleer afgestelde scripts opnieuw.
Wijzigingen zijn in die volgorde gegroepeerd op impact. Als je alleen je code wilt porten, ga dan naar de migratiechecklist aan het eind. Elke commit-hash linkt naar de bijbehorende diff op GitHub.
VSYNC-uitvoer vervangen door een callback (major)¶
sensor.set_vsync_output(pin) is verwijderd en vervangen door sensor.set_vsync_callback(callback). De VSYNC-lijn stuurt niet langer rechtstreeks een Pin aan; in plaats daarvan wordt een Python-callable aangeroepen met de VSYNC-status, en je callback schakelt de Pin zelf. Code die sensor.set_vsync_output() gebruikte, moet worden geport (zie het bijgewerkte voorbeeld vsync_gpio_output.py).
Commits: 5bbe25c20
MT9V034 versterkings-/belichtingsberekening gecorrigeerd (behavior)¶
De MT9V034-kloksnelheid en versterkings-/belichtingsberekening zijn gecorrigeerd, zodat sensor.set_auto_gain() / sensor.set_auto_exposure() nu nauwkeurige (en daarom andere) waarden produceren dan voorheen. Scripts die compenserende versterkings-/belichtingswaarden hard hadden gecodeerd om de oude onjuiste berekening op MT9V034 global-shutter-camera’s te omzeilen, moeten die workarounds laten vallen en opnieuw afstellen.
Commits: 4420536c4
Migratiechecklist¶
Voor een schone port naar v3.9.4 is het typische werk:
Vervang
sensor.set_vsync_output(pin)doorsensor.set_vsync_callback(callback)en schakel dePinvan binnenuit de callback (de VSYNC-wijziging).Stel eventuele MT9V034 versterkings-/belichtingsworkarounds opnieuw af tegen de gecorrigeerde berekening (de MT9V034-wijziging).
Alle andere scripts draaien ongewijzigd.