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
urequestswbudowany 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
networkNINA-W10, Bluetooth/NimBLE, przechwytywanie obrazu z kamery (program PIO DCMI) oraz polecenie przejścia do bootloadera.Dekodowanie obrazów JPEG —
find_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łademhttp_post.py.Biblioteka pomocnicza
ble_advertising, wbudowana w Nano RP2040 Connect.Host/debugowanie —
pyopenmv.reset_to_bl()oraz nowe polecenieUSBDBG_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.
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.
Lista kontrolna migracji#
Aby czysto przenieść kod do v4.1.0, typowa praca to:
Przenieś kod WiFi NINA/RP2 na standardowy interfejs
network.WLAN(WLAN(interface),active(),essid=) i oczekuj krotki znina.fw_version()(zmiana API WiFi).Zmień
except ValueErrornaexcept RuntimeErrorwokół obsługi błędów kamery /sensor.reset()(zmiana błędów sensora).