v1.7.0

v1.7.0 wprowadza moduł cpufreq (sterowanie częstotliwością CPU / podkręcaniem), moduł os z MicroPython, odświeżanie / sterowanie rozdzielczością sensora termicznego MLX oraz wstępne uruchomienie płytki OpenMV Cam M7 (STM32F7). Zmieniła się sygnatura fir.init(), obsługa zbyt dużych ramek oraz domyślna jakość JPEG — przeczytaj poniższe zmiany łamiące zgodność.

Najważniejsze zmiany

  • Moduł cpufreq — odczyt / ustawianie częstotliwości CPU, wraz z przykładem podkręcania.

  • Moduł os — moduł os z MicroPython jest teraz dostępny.

  • MLX thermalfir.init() przyjmuje teraz częstotliwość odświeżania i rozdzielczość ADC.

  • OpenMV Cam M7 — wstępne uruchomienie płytki STM32F7.

  • Zmiana łamiąca zgodność: fir.init() przyjmuje teraz wyłącznie argumenty nazwane, zbyt duże ramki są automatycznie przycinane, a domyślna jakość JPEG została obniżona — zobacz zmiany łamiące zgodność.

Nowe funkcje

  • cpufreq — dodano moduł cpufreq z funkcjami cpufreq.get_frequency() / cpufreq.set_frequency() oraz stałymi CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ, a także przykładem overclocking.py.

  • os — włączono moduł os z MicroPython.

  • MLX / FIRfir.init() przyjmuje teraz częstotliwość odświeżania i rozdzielczość ADC, z odpowiadającymi im ustawieniami refresh / resolution dla sensora termicznego MLX.

Pozostałe zmiany i ulepszenia

  • Dostrojono region AGC/AEC sensora OV7725 (mniejsze rozmycie ruchu), włączono jednolity colorbar DSP dla OV7725 oraz naprawiono strumieniowanie bufora ramki w IDE (brak nieaktualnych / zduplikowanych ramek).

Poprawki błędów

  • Naprawiono przepełnienie rozmiaru transferu DCMI/DMA w sensor.snapshot(), uporządkowano obsługę przepełnienia bufora kompresji JPEG, poprawiono region pracy AEC/AGC sensora OV7725 dla lepszej automatycznej ekspozycji/wzmocnienia oraz skorygowano skrypty colorbar / autotestu dla OV7725.

Sprzęt i obsługa płytek

  • OpenMV Cam M7 (STM32F7 / OPENMV7) — wstępna obsługa płytki i bootloadera.

  • OpenMV 2 — zegar sensora taktowany przez wyjście MCO.

Zmiany łamiące zgodność API

Widoczne dla użytkownika zmiany łamiące API między v1.6.0 a v1.7.0. Zakres: moduły C dla 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. 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.

fir.init() przyjmuje teraz wyłącznie argumenty nazwane (minor)

fir.init() została przebudowana tak, aby przyjmować argumenty nazwane (type= / refresh= / resolution=, domyślny refresh 64 Hz, maks. 512 Hz) zamiast argumentów pozycyjnych. Zaktualizuj pozycyjne wywołania fir.init(...) do postaci nazwanej.

Commity: 958c5b7f7

Zbyt duże ramki są automatycznie przycinane do QVGA (behavior)

sensor.snapshot() nie zgłasza już błędu, gdy surowa ramka przekracza maksymalny rozmiar surowej ramki dla danej płytki — zbyt duże surowe ramki są teraz okienkowane/przycinane do QVGA (odrzucane są tylko surowe ramki w trybie JPEG). Wybierz obsługiwany rozmiar ramki, jeśli polegałeś na poprzednim błędzie.

Commity: b655a5488, abace9e4f

Maksymalny rozmiar ramki dla OpenMV 2 obniżony do QVGA (behavior)

W OpenMV 2 maksymalny rozmiar ramki dla obrazu całkowego / surowego / plam (blob) został obniżony z VGA do QVGA. Żądanie VGA dla operacji w skali szarości / RGB565 / na plamach (blob) / na obrazie całkowym w OpenMV 2 powoduje teraz przycięcie do QVGA — przeprojektuj skrypty, które zależały od przetwarzania VGA na tej płytce.

Commity: 7499062bd

Domyślna jakość JPEG obniżona (behavior)

Domyślna jakość JPEG została obniżona (domyślnie z 50 → 35, z niższymi progami podpróbkowania w IDE) dla bardziej niezawodnego strumieniowania. Przechwycone/strumieniowane obrazy JPEG mają domyślnie widocznie niższą jakość — przekaż jawną wartość quality do image.compress(), jeśli potrzebujesz poprzedniej jakości.

Commity: d9c8b1535

Lista kontrolna migracji

Dla czystego przeniesienia do v1.7.0 typowa praca to:

  1. Przekształć pozycyjne wywołania fir.init(...) do postaci nazwanej (zmiana fir.init).

  2. Używaj obsługiwanego rozmiaru ramki zamiast polegać na dawnym błędzie zbyt dużej ramki (zmiana dotycząca zbyt dużych ramek) oraz przeprojektuj przetwarzanie VGA w OpenMV 2 (zmiana rozmiaru ramki w OpenMV 2).

  3. Przekaż jawną wartość quality do image.compress(), jeśli potrzebujesz poprzedniej jakości JPEG (zmiana jakości JPEG).

Wszystkie pozostałe skrypty działają bez zmian.