v4.2.2¶
v4.2.2 dodaje obsługę obrazów PNG (dekodowanie/kodowanie za pomocą lodepng), tabelaryczny mechanizm ładowania modeli wbudowanych, obsługę OV5640 na Portenta, aktualizację Edge-Impulse TensorFlow oraz ulab 4.0. Zmieniło się API konfiguracji RPC CAN — przeczytaj poniższe zmiany łamiące zgodność.
Najważniejsze zmiany¶
Obsługa PNG —
Image.to_png(),image.PNGoraz odczyt/zapis plików PNG.tf.load_builtin_model()— tabelaryczne modele wbudowane, które można podmieniać lub dodawać w czasie kompilacji.Portenta H7 — obsługa kamery OV5640 (z autofokusem).
MicroPython/ulab — ulab zaktualizowany do 4.0.0.
Zmiana łamiąca zgodność: zmieniło się API konfiguracji RPC CAN — zobacz zmiany łamiące zgodność.
Nowe funkcje¶
Format obrazu PNG — nowa metoda
Image.to_png(), stałaimage.PNG/PIXFORMAT_PNG, ładowanie/zapisywanie plików PNG (odczyt/zapis.png) oraz wyjście PNG w konwersjachimage.to(), dzięki zintegrowanemu kodekowi lodepng.tf.load_builtin_model(path)— ładuje model wbudowany w oprogramowanie układowe i zwraca krotkę(labels, net); modele wbudowane są teraz tabelaryczne, więc można je podmieniać lub dodawać w czasie kompilacji.
Inne zmiany i usprawnienia¶
TensorFlow / Edge Impulse — dołączona biblioteka wnioskowania została zaktualizowana do Edge Impulse ei-V2.5.0, model
person_detectionzostał przeniesiony do tabeli modeli wbudowanych, a brakujące operatory TensorFlow zostały dodane we wszystkich kompilacjach Cortex-M0+/M4/M7/M55, dzięki czemu działa więcej modeli Edge Impulse.ulab zaktualizowany do 4.0.0.
Otwarcie wirtualnego portu szeregowego USB z prędkością 1200 b/s wyzwala teraz reset dotykowy w stylu Arduino do bootloadera.
Oprogramowanie układowe modułu WiFi WINC1500 zostało zaktualizowane do 19.7.6 (wraz ze skryptem aktualizującym) i raportuje teraz rzeczywistą wersję sterownika hosta.
Port RP2 wypisuje teraz „MPY: soft reboot” i otrzymał inicjalizację/deinicjalizację UART.
Poprawki błędów¶
Naprawiono rozmiar surowego bufora ramki w Arduino Nano RP2040 Connect oraz USB Product ID w Arduino Nicla Vision (poprawna enumeracja USB).
Obsługa sprzętu i płytek¶
Arduino Portenta H7 — obsługa kamery OV5640 (z autofokusem); GC2145 jest wyłączony na Portenta.
Arduino Nano RP2040 Connect — konfiguracja pamięci i szablony świeżego systemu plików.
WiFi Shield (WINC1500) — oprogramowanie układowe zaktualizowane do 19.7.6.
Zmiany API łamiące zgodność¶
Widoczne dla użytkownika zmiany API łamiące zgodność między v4.2.1 a v4.2.2. 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 go używały.
behavior — to samo API, inne wyniki; sprawdź ponownie dostrojone skrypty.
Zmiany są pogrupowane według wpływu w tej kolejności. Każdy skrót commita prowadzi do jego diffa na GitHubie.
API konfiguracji RPC CAN (minor)¶
W bibliotece rpc argument słowny CAN sampling_point funkcji rpc_can_master / rpc_can_slave został przemianowany na sample_point (dla zgodności z głównym MicroPythonem), a ręczny pomocnik taktowania bitów CAN został usunięty — magistrala CAN jest teraz konfigurowana przez CAN(..., baudrate=, sample_point=). Skrypty, które przekazywały sampling_point lub polegały na starym obliczaniu taktowania bitów, muszą zostać zaktualizowane.
image.format() i obrazy skompresowane (behavior)¶
Wraz z ujednoliconą ścieżką obrazów skompresowanych dodaną dla PNG, image.format() zwraca teraz PIXFORMAT_INVALID dla nieznanego formatu, a indeksowanie / iteracja / wypisywanie obrazów skompresowanych obejmuje teraz PNG, tak samo jak JPEG. Kod, który sprawdzał poprzednią wartość zwracaną dla nieznanych formatów, powinien zostać ponownie zweryfikowany.
Commit: f12a4659c
Lista kontrolna migracji¶
Dla czystego przejścia na v4.2.2: zmień nazwę RPC CAN sampling_point → sample_point i usuń wszelką ręczną konfigurację taktowania bitów CAN (zmiana RPC CAN) oraz ponownie sprawdź każdy kod, który sprawdzał image.format() pod kątem nieznanych formatów (zmiana format()).