v4.1.0

v4.1.0 wprowadza pełne wsparcie dla Arduino Nano RP2040 Connect / Raspberry Pi Pico (WiFi, Bluetooth, przechwytywanie obrazu z kamery, przejście do bootloadera), bezpośrednie dekodowanie obrazów JPEG, wbudowany klient HTTP urequests, obsługę sensora OV7670 oraz ustandaryzowane raportowanie błędów sensora. Zmieniono API WiFi oraz wyjątki sensora — zapoznaj się z przełomowymi zmianami poniżej.

Najważniejsze zmiany

  • Płytki RP2 — Arduino Nano RP2040 Connect / Pico zyskują WiFi (NINA-W10), Bluetooth (NimBLE), przechwytywanie obrazu z kamery/DCMI oraz przejście do bootloadera.

  • Dekodowanie JPEG — operacje na obrazach akceptują teraz bezpośrednio skompresowane obrazy JPEG.

  • Klient HTTP urequests wbudowany w oprogramowanie układowe.

  • Obsługa sensora kamery OV7670.

  • Przełomowe: API WiFi dla NINA/RP2 zostało przeprojektowane, a kilka błędów sensora zgłasza teraz RuntimeError — zobacz przełomowe zmiany.

Nowe funkcje

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi za pośrednictwem sterownika network NINA-W10, Bluetooth/NimBLE, przechwytywanie obrazu z kamery (program PIO DCMI) oraz polecenie przejścia do bootloadera.

  • Dekodowanie obrazów JPEGfind_apriltags(), lcd.display(), tv.display() oraz powiązane operacje na obrazach akceptują teraz bezpośrednio skompresowane obrazy JPEG (dekodowanie do binarnego / skali szarości / RGB565).

  • urequests — klient HTTP (GET/POST/PUT/…) jest teraz wbudowany w OpenMV 4 / 4 Plus / Portenta / Nicla, wraz z przykładem http_post.py.

  • Biblioteka pomocnicza ble_advertising, wbudowana w Nano RP2040 Connect.

  • Host/debugowaniepyopenmv.reset_to_bl() oraz nowe polecenie USBDBG_SYS_RESET_TO_BL (0x0E) resetujące do bootloadera; przejście do bootloadera na Arduino Nano 33 BLE Sense.

  • OV7670 — nowa obsługa sensora kamery OV7670, do wyboru na OpenMV 4.

Pozostałe zmiany i ulepszenia

  • Gniazda UDP RP2 automatycznie przypisują się do efemerycznego portu, gdy są używane bez powiązania; zaktualizowano dołączony submoduł MicroPython.

Poprawki błędów

Sieci:

  • Naprawiono obsługę accept/close/send/recv/bind gniazd WiFi NINA oraz limity czasu operacji, a także wyścig bufora tekstowego debugowania RP2, który mógł uszkadzać dane wyjściowe IDE.

Kamera i system:

  • Naprawiono reset HM01B0, blokowanie się magistrali I2C kamery po nieudanym skanowaniu sensora na OpenMV H7, wejście w tryb niskiego poboru mocy H7 ULPI przy odłączeniu USB, generowanie pinu ADC H7 oraz układ pinów kamery / SPI-CS nakładki Portenta.

Sprzęt i obsługa płytek

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, kamera, większy system plików w pamięci flash, bootloader MSC.

  • Sensor kamery OV7670 (OpenMV 4).

  • Arduino Portenta H7 — wyprowadzenie I2C4, dodatkowe piny PWM/zegara, sensory OV7725 / MT9V034.

Przełomowe zmiany API

Widoczne dla użytkownika zmiany przełomowe API pomiędzy v4.0.2 a v4.1.0. Zakres: moduły C Pythona w modules/ oraz biblioteki Pythona w scripts/libraries/.

Każda zmiana jest oznaczona swoim wpływem:

  • minor — wąskie API; dotyczy tylko skryptów, które z niego korzystały.

  • behavior — to samo API, inne wyniki; ponownie sprawdź dostrojone skrypty.

Zmiany są pogrupowane według wpływu w tej kolejności. Jeśli chcesz po prostu przenieść swój kod, przejdź do listy kontrolnej migracji na końcu. Każdy hash commita prowadzi do jego diffa na GitHubie.

Przeprojektowano API WiFi NINA / RP2 (minor)

Sterownik WLAN NINA / RP2 został przeprojektowany, aby odpowiadał wyższemu interfejsowi network MicroPython / CYW43: konstruktor WLAN(interface) (tryb STA/AP), nowa metoda active([bool]), aliasy config / start_ap dla connect, zmiana nazwy argumentu ssid w connect() na essid, nowe słowo kluczowe channel oraz nina.fw_version() zwraca teraz krotkę (major, minor, patch) zamiast surowych bajtów. Niezgodność wersji oprogramowania układowego NINA jest teraz niefatalnym ostrzeżeniem zamiast OSError.

Commity: eb2f98277, e14470f68, 0c40f4832

Błędy sensora zgłaszają teraz RuntimeError (behavior)

Raportowanie błędów sensora zostało ustandaryzowane wokół ujednoliconej tabeli kodów błędów: awarie kamery (limit czasu przechwytywania, nieprawidłowy framesize/pixformat/window/framerate, błąd bufora ramki, przepełnienie JPEG, niewykryty sensor, …) zgłaszają teraz spójne, opisowe komunikaty, a kilka warunków, które wcześniej zgłaszały ValueError, zgłasza teraz RuntimeError (w tym sensor.reset()). Kod, który przechwytywał ValueError w tych przypadkach, musi zamiast tego przechwytywać RuntimeError.

Commity: 0491a6a88, c8bf0af6f, 2fb226562

Lista kontrolna migracji

Aby czysto przenieść kod do v4.1.0, typowa praca to:

  1. Przenieś kod WiFi NINA/RP2 na standardowy interfejs network.WLAN (WLAN(interface), active(), essid=) i oczekuj krotki z nina.fw_version() (zmiana API WiFi).

  2. Zmień except ValueError na except RuntimeError wokół obsługi błędów kamery / sensor.reset() (zmiana błędów sensora).