v4.0.0¶
v4.0.0 är den stora v3 → v4-releasen. Den introducerar det moderna sensor-API:t för flerbildsbuffring (dubbel-/trippelbuffring och en video-FIFO), ett återanrop för slutförd bildruta, en Bluetooth-modul (NimBLE-stack) med Portenta-stöd, den första MT9M114-kameradrivrutinen, MDMA-avlastad kamerafångst, stöd för Bayer/JPEG i image.draw_image() och ett steg upp till MicroPython 1.15. Det äldre strömningsläget togs bort och sensor.set_windowing() arbetades om — läs de brytande ändringarna nedan.
Höjdpunkter¶
Flerbildsbuffring —
sensorfår dubbelbuffring, trippelbuffring och ett video-FIFO-läge för högre, jämnare bildfrekvenser.Återanrop för slutförd bildruta — registrera ett återanrop som utlöses när en ny bildruta är klar, för icke-blockerande fångstpipelines.
Bluetooth — en
bluetooth-modul byggd på NimBLE-stacken, aktiverad på Arduino Portenta H7 (med ett BLE-exempel).MT9M114 — första kamerasensordrivrutinen.
Snabbare fångst — MDMA-avlastning för kameradatafångst;
draw_image()accepterar nu Bayer- och JPEG-källor/-destinationer.MicroPython 1.15 — den medföljande MicroPython uppdaterades från 1.13 till 1.15.
Brytande: det äldre strömningsläget togs bort och
sensor.set_windowing()arbetades om — se de brytande ändringarna.
Nya funktioner¶
Flerbuffring i sensor — lade till
sensor.set_framebuffers()/sensor.get_framebuffers()och lägenaSINGLE_BUFFER/DOUBLE_BUFFER/TRIPLE_BUFFER/VIDEO_FIFO, plussensor.get_frame_available()för dubbel-, trippel- och video-FIFO-fångst.Återanrop för slutförd bildruta — lade till
sensor.set_frame_callback()så att ett Python-återanrop körs när varje ny bildruta är klar.Bluetooth — lade till en
bluetooth-modul som stöds av NimBLE-stacken (NimBLE-undermodul, CYW-BT-drivrutin), aktiverad på Arduino Portenta H7 med ett BLE-exempel.MT9M114 — lade till den första MT9M114-kamerasensordrivrutinen.
draw_image — lade till stöd för debayering och JPEG-kopiering så att
image.draw_image()accepterar Bayer- och JPEG-källbilder/-destinationsbilder.MDMA-fångstavlastning — kameradatafångst avlastas till MDMA för högre genomströmning.
Ett argument för färgpalett kan nu inaktiveras genom att skicka
-1(eftersomNoneär reserverat som ett giltigt argument).
Övriga ändringar och förbättringar¶
Bytte till den nya programvarubaserade I2C-implementeringen; anpassade mot MicroPython upstream; ulab-konfiguration per kort; grundläggande inbyggda moduler aktiverade för OpenMV 2; rättvisare låsning av bildbuffertutläsning; mutex-stöd utökat till Cortex-M0/M0+ med en låstimeout.
Buggrättningar¶
Kamera och bildbehandling:
Rättade FLIR Leptons initieringspålitlighet på Pure Thermal-kortet, ImageIO:s hantering av JPEG-buffert / paus, HM01B0:s vflip/hmirror-inställningar, JPEG-buffertens tömning när en bild ogiltigförklaras och en
cropped-flagga som sattes när bildstorleken var ogiltig.
System och anslutningar:
Rättade USB-kommandots tömning och kommandot för reset-till-startladdare, mutex-initiering, UART-klockkällan, FatFS code-page-definitionen, WINC1500:s hantering av out-of-band-ACK, WiFi-felsökning och Nano33:s USB-PID; isolerade dedikerade analoga pads.
Hårdvaru- och kortstöd¶
MT9M114-kamerasensor (första drivrutinen).
Arduino Portenta H7 — Bluetooth aktiverat (NimBLE) med ett BLE-exempel.
Arduino Nano RP2040 Connect / Nano 33 BLE Sense — WiFi-felsökningsflaggan inaktiverad där den inte stöds; blinky-exempel tillagt; rättning av USB-PID.
Brytande API-ändringar¶
Användarsynliga API-brott mellan v3.9.4 och v4.0.0. 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; du kommer nästan säkert att behöva porta kod.
minor — smalt API; påverkar bara skript som använde det.
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.
Strömningsläge borttaget (major)¶
Det äldre strömningsläget för sensorn togs bort till förmån för det nya API:t för flerbildsbuffring. Kod som aktiverade strömningsläget måste byta till sensor.set_framebuffers() med DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO och driva fångst med sensor.snapshot() / sensor.get_frame_available() i stället.
Commits: a42f3a647
sensor.set_windowing() omarbetad (behavior)¶
sensor.set_windowing() gjordes mycket mer flexibel: den accepterar nu flera argumentformer (en regiontupel, eller bredd/höjd centrerad, eller x, y, w, h) och löser fönstret relativt den aktuella upplösningen. Skript som skickade fönstringsargument i den gamla fasta formen kan välja en annan region och bör kontrolleras igen.
Commits: 3e9c43554
MicroPython 1.13 → 1.15 (behavior)¶
Den medföljande MicroPython-kärnan uppdaterades från 1.13 till 1.15 (via 1.14). Standardbiblioteks- och språkbeteende följer upstream MicroPython 1.15; kontrollera igen skript som är beroende av versionsspecifikt beteende i micropython / standardmoduler.
Argumentet update_jpeg_buffer i ImageIO borttaget (minor)¶
ImageIO:s uppdatering av JPEG-buffert arbetades om för att härleda bufferten från bildkällargumentet, och det explicita argumentet update_jpeg_buffer togs bort. Skript som skickade update_jpeg_buffer till ImageIO måste ta bort det argumentet.
Commits: 5c6937bd1
Migreringschecklista¶
För en ren portning till v4.0.0 är det typiska arbetet:
Ersätt all användning av det borttagna strömningsläget med det nya flerbuffrings-API:t
sensor.set_framebuffers()(strömningsläge borttaget).Kontrollera anrop till
sensor.set_windowing()igen mot den omarbetade, mer flexibla argumenthanteringen (fönstringsändringen).Validera om skript som är beroende av versionsspecifikt MicroPython-beteende mot MicroPython 1.15 (MicroPython-uppgraderingen).
Ta bort argumentet
update_jpeg_bufferfrån ImageIO-anrop (ImageIO-ändringen).
Alla andra skript körs oförändrade.