v4.1.0

v4.1.0 ger fullt stöd för Arduino Nano RP2040 Connect / Raspberry Pi Pico (WiFi, Bluetooth, kamerafångst, hopp till startladdare), direkt JPEG-bildavkodning, en infryst urequests HTTP-klient, stöd för OV7670-sensorn och standardiserad felrapportering för sensorer. WiFi-API:et och sensorundantagen ändrades — läs de brytande ändringarna nedan.

Höjdpunkter

  • RP2-kort — Arduino Nano RP2040 Connect / Pico får WiFi (NINA-W10), Bluetooth (NimBLE), kamera-/DCMI-fångst och hopp till startladdare.

  • JPEG-avkodning — bildoperationer accepterar nu komprimerade JPEG-bilder direkt.

  • urequests HTTP-klient infryst i den fasta programvaran.

  • Stöd för OV7670-kamerasensorn.

  • Brytande: NINA/RP2 WiFi-API:et omarbetades och flera sensorfel ger nu RuntimeError — se de brytande ändringarna.

Nya funktioner

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi via NINA-W10 network-drivrutinen, Bluetooth/NimBLE, kamerafångst (DCMI PIO-program) och ett kommando för hopp till startladdare.

  • JPEG-bildavkodningfind_apriltags(), lcd.display(), tv.display() och relaterade bildoperationer accepterar nu komprimerade JPEG-bilder direkt (avkodar till binär/gråskala/RGB565).

  • urequests — HTTP-klienten (GET/POST/PUT/…) är nu infryst på OpenMV 4 / 4 Plus / Portenta / Nicla, med ett http_post.py-exempel.

  • ble_advertising-hjälpbibliotek, infryst på Nano RP2040 Connect.

  • Värd/felsökningpyopenmv.reset_to_bl() och ett nytt USBDBG_SYS_RESET_TO_BL (0x0E)-kommando för att starta om till startladdaren; hopp till startladdare på Arduino Nano 33 BLE Sense.

  • OV7670 — nytt stöd för OV7670-kamerasensorn, valbar på OpenMV 4.

Övriga ändringar och förbättringar

  • RP2 UDP-socketar binder automatiskt till en efemär port när de används obundna; den medföljande MicroPython-undermodulen uppdaterad.

Buggfixar

Nätverk:

  • Åtgärdade hanteringen av accept/close/send/recv/bind för NINA WiFi-socketar och operationstimeouter, samt en kapplöpning i RP2:s felsökningstextbuffert som kunde korrumpera IDE-utdata.

Kamera och system:

  • Åtgärdade HM01B0-återställningen, kamerans I2C-buss som fastnade efter en misslyckad sensorskanning på OpenMV H7, H7 ULPI-ingång i lågeffektläge vid USB-frånkoppling, H7 ADC-stiftgenerering samt Portenta-kamerans stiftkonfiguration / shield SPI-CS.

Hårdvaru- och kortstöd

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, kamera, större flash-filsystem, MSC-startladdare.

  • OV7670-kamerasensor (OpenMV 4).

  • Arduino Portenta H7 — breakout I2C4, extra PWM-/klockstift, OV7725 / MT9V034-sensorer.

Brytande API-ändringar

Användarsynliga API-brytningar mellan v4.0.2 och v4.1.0. Omfattning: Python C-moduler i modules/ och Python-bibliotek i scripts/libraries/.

Varje ändring är märkt med sin påverkan:

  • minor — smalt API; påverkar endast skript som använde det.

  • behavior — samma API, andra resultat; kontrollera finjusterade skript igen.

Ändringarna ä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.

NINA / RP2 WiFi-API omarbetat (minor)

NINA / RP2 WLAN-drivrutinen omarbetades för att matcha det uppströms MicroPython / CYW43 network-gränssnittet: en WLAN(interface)-konstruktor (STA/AP-läge), en ny active([bool])-metod, config / start_ap som alias för connect, connect()-argumentet ssid omdöpt till essid, ett nytt channel-nyckelord, och nina.fw_version() returnerar nu en (major, minor, patch)-tupel istället för råa bytes. En diskrepans i NINA-firmwareversionen är nu en icke-fatal varning istället för ett OSError.

Commits: eb2f98277, e14470f68, 0c40f4832

Sensorfel ger nu RuntimeError (behavior)

Sensorfelrapporteringen standardiserades kring en enhetlig felkodstabell: kamerafel (fångsttimeout, ogiltig framesize/pixformat/window/framerate, framebuffertfel, JPEG-överflöde, oupptäckt sensor, …) ger nu konsekventa, beskrivande meddelanden, och flera tillstånd som tidigare gav ValueError ger nu RuntimeError (inklusive sensor.reset()). Kod som fångade ValueError för dessa fall måste istället fånga RuntimeError.

Commits: 0491a6a88, c8bf0af6f, 2fb226562

Migreringschecklista

För en ren portering till v4.1.0 är det typiska arbetet:

  1. Porta NINA/RP2 WiFi-kod till standardgränssnittet network.WLAN (WLAN(interface), active(), essid=) och förvänta dig en tupel från nina.fw_version() (WiFi-API-ändringen).

  2. Ändra except ValueError till except RuntimeError kring felhantering för kamera / sensor.reset() (sensorfelsändringen).