v3.6.8

v3.6.8 dodaje płytkę OpenMV Cam Pure Thermal, przyspiesza wnioskowanie tf około 4-krotnie dzięki przeniesieniu TensorFlow na CMSIS-NN, rozszerza desktopową bibliotekę rpc o interfejsy UART / Kvaser CAN / I2C / SPI oraz włącza kartę SD na Arduino Portenta H7. Zmieniono obsługę partycji karty SD oraz import sensor na płytkach bez sensora — przeczytaj o przełomowych zmianach poniżej.

Najważniejsze zmiany

  • OpenMV Cam Pure Thermal — obsługa nowej płytki.

  • ~4-krotnie szybszy TensorFlow — wnioskowanie tf działa teraz na CMSIS-NN.

  • Biblioteka rpc — dodano interfejsy UART, Kvaser CAN oraz I2C/SPI master/slave.

  • Karta SD na Portenta H7 — włączono obsługę karty SD wraz z poprawkami zegarów PLL1/HSE/ADC.

  • Przełomowe: rozruch z karty SD automatycznie wykrywa teraz partycję, a import sensor zgłasza teraz wyjątek, gdy nie ma sensora obrazu — zobacz przełomowe zmiany.

Nowe funkcje

  • rpc — dodano interfejsy UART, Kvaser CAN oraz I2C/SPI master/slave do desktopowej biblioteki RPC (rpc_uart_master / rpc_uart_slave, rpc_kvarser_can_master / rpc_kvarser_can_slave oraz I2C/SPI master/slave).

  • Płytki bez sensora — oprogramowanie układowe obsługuje teraz płytki bez sensora obrazu (umożliwiając działanie płytki Pure Thermal).

  • Geometria JPEG — dodano strukturę ustawień odczytu JPEG (jpg_w / jpg_h / jpg_size) do odczytu geometrii JPEG.

Inne zmiany i ulepszenia

  • TensorFlow przełączono na CMSIS-NN, co daje około 4-krotnie szybsze wnioskowanie tf (dostosowano konfigurację imlib dla poszczególnych płytek); przykład ulab używa ulab.numerical.mean / std; przykład głębokiego uśpienia wywołuje teraz sensor.sleep(True) przed zapisem rejestru obejścia regulatora OV7725.

Poprawki błędów

Kamera i obrazowanie:

  • Naprawiono wczytywanie obrazów JPEG z dysku (geometria JPEG była odrzucana jako nieobsługiwany format), sprawiono, że sensor.reset() wykonuje twardy reset, dzięki czemu sensor odzyskuje sprawność po wyłączeniu regulatora, poprawiono konfigurację funkcji alternatywnej / zegara SPI dla FLIR Lepton na OpenMV 4 / 4 Plus oraz naprawiono przypisanie pinu FSYNC na OpenMV 4 / 4 Plus.

Łączność i system:

  • Naprawiono czasowy zapis pyb.DAC na H7, sprawiono, że WLAN.start_ap() WINC1500 nie wymaga klucza dla zabezpieczenia OPEN, naprawiono współdzielenie magistrali I2C między kamerą a urządzeniami peryferyjnymi użytkownika na Portenta oraz uczyniono marker bufora ramki SWD autotestu zależnym od płytki, tak że nie nadpisuje już bpp bufora ramki na płytkach, które go nie mają.

Sprzęt i obsługa płytek

  • OpenMV Cam Pure Thermal — nowa płytka.

  • Arduino Portenta H7 — włączono kartę SD wraz z poprawkami PLL1 (400 MHz/40 MHz, USB/RNG na HSI48), HSE (25 MHz) oraz źródła zegara ADC.

Przełomowe zmiany API

Widoczne dla użytkownika zmiany API między v3.6.7 a v3.6.8. Zakres: moduły C Pythona w modules/ oraz biblioteki Pythona w scripts/libraries/.

Obie przełomowe zmiany to zmiany zachowania (to samo API, inne wyniki) — sprawdź ponownie dotknięte skrypty. Każdy skrót commita prowadzi do jego diffa na GitHubie.

Automatyczne wykrywanie partycji karty SD (zachowanie)

Rozruch z karty SD automatycznie wykrywa teraz partycję zamiast zawsze montować partycję 1. Karty, które polegały na starym, stałym zachowaniu z partycją 1, mogą teraz zamontować inny system plików; sprawdź ponownie karty SD z wieloma partycjami oraz oczekiwany punkt montowania.

Commity: 1f7f003b8

import sensor zgłasza wyjątek na płytkach bez sensora (zachowanie)

Aby obsłużyć płytki bez sensora obrazu, sprawdzanie inicjalizacji modułu sensor jest teraz wykonywane przy imporcie, dlatego import sensor zgłasza RuntimeError, gdy nie wykryto żadnego sensora obrazu (zamiast zawodzić później). Na płytce wyłącznie termalnej zabezpiecz import sensor za pomocą try / except lub unikaj jego importowania.

Commity: 17b444ad1

Lista kontrolna migracji

Sprawdź ponownie karty SD z wieloma partycjami pod kątem nowego automatycznego wykrywania partycji (zmiana karty SD) oraz zabezpiecz import sensor na płytkach bez sensora / wyłącznie termalnych (zmiana importu sensora). Wszystkie pozostałe skrypty działają bez zmian.