v3.9.4¶
v3.9.4 lägger till en buzzer-modul, Himax HM01B0-rörelsedetektering-ioctls (med strömsnåla exempel för väckning vid rörelse), styrning av MT9V034:s utläsningsfönster, strömsnåla Ethernet-funktioner, en OV7670-kameradrivrutin och kameran Arduino Nano 33 BLE Sense. Den innehåller även en stor samling hastighetsförbättringar för JPEG / LCD / TV. VSYNC-utgångs-API:t ersattes med ett återanrop och MT9V034:s matematik för förstärkning/exponering rättades — läs de brytande ändringarna nedan.
Höjdpunkter¶
Buzzer-modul — en ny
buzzer-modul (freq(),duty(),RESONANT_FREQ) på OpenMV Pure Thermal.HM01B0-rörelsedetektering — nya ioctls för Himax-rörelsedetektering plus ett strömsnålt exempel för väckning vid rörelse.
MT9V034-utläsningsfönster — styr utläsningsfönstret för global slutare via
sensor.ioctl().Nya kameror / kort — grundläggande OV7670-drivrutin, kameran Arduino Nano 33 BLE Sense och Bormio-kortet.
Snabbare pipeline — omskriven SIMD-baserad JPEG-kodare, snabbare debayering och stora hastighetsförbättringar för LCD/TV-överföringar.
Brytande:
sensor.set_vsync_output()ersattes medsensor.set_vsync_callback()och MT9V034:s matematik för förstärkning/exponering rättades — se de brytande ändringarna.
Nya funktioner¶
Buzzer — lade till en
buzzer-modul medbuzzer.freq(),buzzer.duty()och en konstantbuzzer.RESONANT_FREQ(OpenMV Pure Thermal).HM01B0-rörelsedetektering — lade till ioctls
IOCTL_HIMAX_MD_ENABLE/MD_WINDOW/MD_THRESHOLD/MD_CLEARochIOCTL_HIMAX_OSC_ENABLE, med ett exempel på Himax-rörelsedetektering och ett strömsnålt väckningsexempelhimax_wakeup_on_motion_detection.py.MT9V034-utläsningsfönster — lade till
IOCTL_SET_READOUT_WINDOW/IOCTL_GET_READOUT_WINDOWför styrning av MT9V034:s utläsningsfönster viasensor.ioctl().Strömsnål Ethernet — lade till funktioner för avstängning / låg strömförbrukning för Ethernet.
Portenta — lade till återanropsfunktioner för att aktivera/inaktivera den externa oscillatorn.
Övriga ändringar och förbättringar¶
Skrev om JPEG-kodaren med SIMD och snabbade upp Bayer→YCbCr-kodning, höll hårdvarans JPEG-kärna strömsatt under skriptkörning, snabbade upp debayering (~19,5 ms för VGA), avlastade JPEG-komprimering till MDMA, accelererade överföringsvägarna för TV/LCD med SIMD/effektiv DMA och minskade kraftigt användningen av SPI LCD-bussen. Lade till en USB3320 ULPI PHY-drivrutin för höghastighets-USB.
Buggrättningar¶
Kamera och sensorer:
Rättade HM01B0-drivrutinens initiering/strömning och justerade dess AE-mål / maxförstärkning, korrigerade MT9V034:s AGC/AEC-förstärkningsbegränsning och rättade laddning av OV5640:s autofokus-fasta programvara (byteordning).
Skärm:
Rättade SPI LCD DMA-överföringar större än 64 KB, LCD-utgångens polaritet och LCD-bussens stabilitet (AXI QOS).
System och anslutningar:
Rättade vilken SDMMC-instans CYW43 WiFi-drivrutinen använder (med en kortdefinierad SDMMC-instans), förbättrade FLIR Leptons DMA-effektivitet (VOSPI höjt till 20 MHz på H7), rättade Portentas beteende vid låg strömförbrukning / standby (PMIC SW1-strömgräns, låg strömförbrukning för Ethernet och ULPI), fick RTSP-servern att tolerera
CSeq- ochPLAY Range-headers i fel ordning (FFPLAY), rättade länkarens 8-byte EABI-stackjustering och rättade en trasig import i Portentas exempelmqtt_sub.py.
Hårdvaru- och kortstöd¶
OV7670-kamerasensor — grundläggande drivrutin.
Arduino Nano 33 BLE Sense — kamerasensordrivrutin (nrf-port) med rättningar för reset-stift och I2C-buss.
HM01B0 — lade till en upplösning på 320x320.
Bormio — PLL-klockkonfiguration, flash-layout och GPIO PORT K (aktiverat även på Portenta).
USB3320 ULPI PHY — höghastighets-USB.
Brytande API-ändringar¶
Användarsynliga API-brott mellan v3.9.3 och v3.9.4. Omfattning: Python-C-moduler i modules/ och Python-bibliotek i scripts/libraries/.
Varje ändring är märkt med sin påverkan:
major — påverkar de flesta skript som använde funktionen; du behöver porta kod.
behavior — samma API, andra resultat; kontrollera trimmade skript igen.
Ändringar är grupperade efter påverkan i den ordningen. Om du bara vill porta din kod, hoppa till migreringschecklistan i slutet. Varje commit-hash länkar till sin diff på GitHub.
VSYNC-utgång ersatt med ett återanrop (major)¶
sensor.set_vsync_output(pin) togs bort och ersattes med sensor.set_vsync_callback(callback). VSYNC-linjen driver inte längre ett Pin direkt; i stället anropas en anropbar Python-funktion med VSYNC-tillståndet, och ditt återanrop växlar Pin själv. Kod som använde sensor.set_vsync_output() måste portas (se det uppdaterade exemplet vsync_gpio_output.py).
Commits: 5bbe25c20
MT9V034:s matematik för förstärkning/exponering rättad (behavior)¶
MT9V034:s klockhastighet och matematik för förstärkning/exponering rättades, så sensor.set_auto_gain() / sensor.set_auto_exposure() ger nu korrekta (och därmed andra) värden än tidigare. Skript som hårdkodade kompenserande värden för förstärkning/exponering för att kringgå den gamla felaktiga matematiken på MT9V034-kameror med global slutare bör ta bort dessa lösningar och trimma om.
Commits: 4420536c4
Migreringschecklista¶
För en ren portning till v3.9.4 är det typiska arbetet:
Ersätt
sensor.set_vsync_output(pin)medsensor.set_vsync_callback(callback)och växlaPininifrån återanropet (VSYNC-ändringen).Trimma om eventuella lösningar för MT9V034:s förstärkning/exponering mot den rättade matematiken (MT9V034-ändringen).
Alla andra skript körs oförändrade.