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.MLX thermal —
fir.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łcpufreqz funkcjamicpufreq.get_frequency()/cpufreq.set_frequency()oraz stałymiCPUFREQ_120MHZ/144/168/192/216MHZ, a także przykłademoverclocking.py.MLX / FIR —
fir.init()przyjmuje teraz częstotliwość odświeżania i rozdzielczość ADC, z odpowiadającymi im ustawieniamirefresh/resolutiondla 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.
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:
Przekształć pozycyjne wywołania
fir.init(...)do postaci nazwanej (zmiana fir.init).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).
Przekaż jawną wartość
qualitydoimage.compress(), jeśli potrzebujesz poprzedniej jakości JPEG (zmiana jakości JPEG).
Wszystkie pozostałe skrypty działają bez zmian.