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).