v4.4.0

v4.4.0 dodaje API tf.regression(), obsługę FLIR Lepton na OpenMV Cam H7 Pro, obsługę koprocesora Cortex-M4 na Arduino Nicla Vision oraz MicroPython 1.19. Zmieniło się kilka modułów specyficznych dla płytek oraz zachowanie WiFi/LCD — przeczytaj poniższe zmiany niezgodne wstecz.

Najważniejsze zmiany

  • tf.regression() — uruchamianie modeli regresyjnych TensorFlow Lite z wejściem 1D i wyjściem 1D.

  • Obsługa termicznego sensora FLIR Lepton na OpenMV Cam H7 Pro.

  • Arduino Nicla Vision — obsługa koprocesora Cortex-M4, działający MicroSpeech, LPUART1.

  • MicroPython zaktualizowany do 1.19; ulab zaktualizowany do 5.1.1.

  • Zmiana niezgodna wstecz: moduły lcd/tv na Nicla Vision zostały wyłączone, a sterownik WiFi RP2040 Connect uległ zmianie — zobacz zmiany niezgodne wstecz.

Nowe funkcje

  • tf.regression(model, input_array) — nowa funkcja dla modeli regresyjnych TensorFlow Lite z wejściem/wyjściem 1D, zwracająca listę wyników zmiennoprzecinkowych.

  • Sterowanie GC2145sensor.set_auto_exposure() i sensor.set_auto_whitebal() są teraz funkcjonalne na GC2145 (automatyczną ekspozycję / balans bieli można wyłączyć; jawne ustawianie ekspozycji/wzmocnienia nie jest jeszcze obsługiwane).

  • Arduino Nicla Vision — włączono obsługę koprocesora Cortex-M4 (CM4) oraz urządzenia peryferyjnego LPUART1.

  • machine.Pin — pin USB_VBUS jest teraz udostępniany skryptom użytkownika.

Pozostałe zmiany i ulepszenia

  • MicroPython zaktualizowany do 1.19; ulab do 5.1.1; zaktualizowano dołączony sterownik WiFi cyw43.

  • Porty RP2 (Arduino Nano RP2040 Connect) i nRF (Arduino Nano 33 BLE Sense) przeszły na nowy debugger oparty na TinyUSB dla połączenia z IDE/hostem.

  • Zegar XCLK układu OV7670 został podniesiony z 12 MHz do 24 MHz (zaktualizowany zestaw rejestrów).

Poprawki błędów

Kamera i sensory:

  • Statystyki temperatury plam (blob) w OpenMV Pure Thermal korzystają teraz z obrazu IR zamiast z obrazu kolorowego, dzięki czemu średnia temperatura na plamę jest prawidłowa.

  • Naprawiono obsługę ROI w draw_image() oraz skalowanie obszaru, co daje dokładniejsze skalowane wyjście.

  • IMU jest ponownie inicjalizowane po miękkim resecie, dzięki czemu działa nadal, gdy magistrala SPI dla IMU jest włączona.

System:

  • Naprawiono problemy z porównaniami ze znakiem/bez znaku w wykrywaniu cech FAST/AGAST, wykrywaniu plam (blob), CLAHE oraz sterownikach LCD/TV; naprawiono deinicjalizację GPIO kamery / SPI / DAC w STM32, mapowanie pinów LPUART w H7 oraz rejestrację modułu nn STM32Cube.AI.

Arduino Nicla Vision:

  • MicroSpeech już działa (podwojony bufor PDM, dodany przykład), naprawiono też tryb czuwania o niskim poborze mocy.

Sprzęt i obsługa płytek

  • OpenMV Cam H7 Pro — obsługa termicznego sensora FLIR Lepton.

  • Arduino Nicla Vision — koprocesor CM4, LPUART1, MicroSpeech, czuwanie o niskim poborze mocy.

Zmiany API niezgodne wstecz

Widoczne dla użytkownika zmiany API niezgodne wstecz między v4.3.3 a v4.4.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 na konkretnej płytce.

  • behavior — to samo API, inne wyniki; sprawdź ponownie 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 skrót commita prowadzi do jego diffa na GitHubie.

Moduły Nicla Vision i WiFi RP2040 (minor)

Na Arduino Nicla Vision moduły lcd i tv zostały wyłączone, aby zwolnić pamięć na obsługę koprocesora CM4 — skrypty korzystające z tych modułów na Nicla Vision nie znajdą ich już. Arduino Nano RP2040 Connect przeszło z autorskiej implementacji WiFi/nina firmy OpenMV na nadrzędny sterownik/moduł NINA-W10 z MicroPythona, którego API jest odmienne.

Commity: f78d191e3, ddf01cb09

Limit czasu gniazda WiFi i pionowe odbicie LCD (behavior)

Limit czasu gniazda WINC1500 zwraca teraz błąd nieblokujący (EWOULDBLOCK) zamiast ETIMEDOUT, dzięki czemu gniazda, w których upłynął limit czasu, nie są już nieoczekiwanie zamykane — kod przechwytujący ETIMEDOUT musi zostać zaktualizowany. Moduł display dla nakładki SPI LCD zgłasza teraz ValueError („Vertical flip requires triple buffering!”), gdy zażądano ujemnej wartości y_scale bez włączonego potrójnego buforowania.

Commity: 1dc4bea88, 7e52cf751

Lista kontrolna migracji

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

  1. Na Nicla Vision przestań używać lcd/tv; na Nano RP2040 Connect przenieś kod WiFi na nadrzędny sterownik NINA-W10 (zmiany modułów płytki).

  2. Zaktualizuj kod gniazd WINC1500, aby oczekiwał EWOULDBLOCK przy upływie limitu czasu, oraz włącz potrójne buforowanie dla pionowo odbitego wyjścia LCD (zmiany zachowania).