v4.1.0

v4.1.0 přináší plnou podporu Arduino Nano RP2040 Connect / Raspberry Pi Pico (WiFi, Bluetooth, snímání kamerou, skok do bootloaderu), přímé dekódování JPEG obrazu, zamrzlý HTTP klient urequests, podporu senzoru OV7670 a standardizované hlášení chyb senzoru. WiFi API a výjimky senzoru se změnily — přečtěte si níže uvedené nekompatibilní změny.

Hlavní novinky

  • Desky RP2 — Arduino Nano RP2040 Connect / Pico získávají WiFi (NINA-W10), Bluetooth (NimBLE), snímání kamerou/DCMI a skok do bootloaderu.

  • Dekódování JPEG — obrazové operace nyní přijímají komprimované JPEG obrazy přímo.

  • HTTP klient urequests zamrzlý do firmwaru.

  • Podpora kamerového senzoru OV7670.

  • Nekompatibilní: NINA/RP2 WiFi API bylo přepracováno a několik chyb senzoru nyní vyvolává RuntimeError — viz nekompatibilní změny.

Nové funkce

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi přes ovladač network NINA-W10, Bluetooth/NimBLE, snímání kamerou (DCMI PIO program) a příkaz pro skok do bootloaderu.

  • Dekódování JPEG obrazufind_apriltags(), lcd.display(), tv.display() a související obrazové operace nyní přijímají komprimované JPEG obrazy přímo (dekódování do binárního formátu/stupňů šedi/RGB565).

  • urequests — HTTP klient (GET/POST/PUT/…) je nyní zamrzlý na OpenMV 4 / 4 Plus / Portenta / Nicla, s příkladem http_post.py.

  • Pomocná knihovna ble_advertising, zamrzlá na Nano RP2040 Connect.

  • Hostitel/laděnípyopenmv.reset_to_bl() a nový příkaz USBDBG_SYS_RESET_TO_BL (0x0E) pro restart do bootloaderu; skok do bootloaderu na Arduino Nano 33 BLE Sense.

  • OV7670 — nová podpora kamerového senzoru OV7670, volitelná na OpenMV 4.

Ostatní změny a vylepšení

  • UDP sokety RP2 se při použití bez vazby automaticky navážou na efemérní port; přibalený submodul MicroPython byl aktualizován.

Opravy chyb

Síťování:

  • Opraveno zpracování accept/close/send/recv/bind soketů NINA WiFi a časové limity operací a souběh textového bufferu ladění na RP2, který mohl poškodit výstup IDE.

Kamera a systém:

  • Opraven reset HM01B0, zaseknutí I2C sběrnice kamery po neúspěšném skenování senzoru na OpenMV H7, vstup do úsporného režimu H7 ULPI při odpojení USB, generování ADC pinů H7 a pinout kamery Portenta / SPI-CS shieldu.

Hardware a podpora desek

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, kamera, větší flash souborový systém, MSC bootloader.

  • Kamerový senzor OV7670 (OpenMV 4).

  • Arduino Portenta H7 — vyvedené I2C4, další PWM/clock piny, senzory OV7725 / MT9V034.

Nekompatibilní změny API

Pro uživatele viditelné nekompatibilní změny API mezi v4.0.2 a v4.1.0. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.

Každá změna je označena svým dopadem:

  • minor — úzké API; ovlivňuje pouze skripty, které jej používaly.

  • behavior — stejné API, jiné výsledky; znovu zkontrolujte vyladěné skripty.

Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete jen přenést svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.

NINA / RP2 WiFi API přepracováno (minor)

Ovladač NINA / RP2 WLAN byl přepracován tak, aby odpovídal upstreamovému rozhraní MicroPython / CYW43 network: konstruktor WLAN(interface) (režim STA/AP), nová metoda active([bool]), aliasy config / start_ap pro connect, argument ssid v connect() přejmenovaný na essid, nové klíčové slovo channel a nina.fw_version() nyní vrací n-tici (major, minor, patch) místo surových bajtů. Nesoulad verze firmwaru NINA je nyní nefatální varování místo OSError.

Commity: eb2f98277, e14470f68, 0c40f4832

Chyby senzoru nyní vyvolávají RuntimeError (behavior)

Hlášení chyb senzoru bylo standardizováno kolem jednotné tabulky chybových kódů: selhání kamery (časový limit snímání, neplatná framesize/pixformat/window/framerate, chyba snímkového bufferu, přetečení JPEG, nedetekovaný senzor, …) nyní vyvolávají konzistentní, popisné zprávy a několik podmínek, které dříve vyvolávaly ValueError, nyní vyvolává RuntimeError (včetně sensor.reset()). Kód, který v těchto případech zachytával ValueError, musí místo toho zachytávat RuntimeError.

Commity: 0491a6a88, c8bf0af6f, 2fb226562

Kontrolní seznam migrace

Pro čistý přechod na v4.1.0 obvykle stačí:

  1. Přeneste WiFi kód NINA/RP2 na standardní rozhraní network.WLAN (WLAN(interface), active(), essid=) a očekávejte n-tici od nina.fw_version() (změna WiFi API).

  2. Změňte except ValueError na except RuntimeError kolem zpracování chyb kamery / sensor.reset() (změna chyb senzoru).