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
urequestszamrzlý 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č
networkNINA-W10, Bluetooth/NimBLE, snímání kamerou (DCMI PIO program) a příkaz pro skok do bootloaderu.Dekódování JPEG obrazu —
find_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říklademhttp_post.py.Pomocná knihovna
ble_advertising, zamrzlá na Nano RP2040 Connect.Hostitel/ladění —
pyopenmv.reset_to_bl()a nový příkazUSBDBG_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.
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.
Kontrolní seznam migrace#
Pro čistý přechod na v4.1.0 obvykle stačí:
Přeneste WiFi kód NINA/RP2 na standardní rozhraní
network.WLAN(WLAN(interface),active(),essid=) a očekávejte n-tici odnina.fw_version()(změna WiFi API).Změňte
except ValueErrornaexcept RuntimeErrorkolem zpracování chyb kamery /sensor.reset()(změna chyb senzoru).