13.5. Narzędzia MicroPython¶
Projekt MicroPython dostarcza zestaw narzędzi działających po stronie hosta wraz z samym językiem. Dwa z tych narzędzi są przydatne w każdym przepływie pracy z OpenMV cam realizowanym poza IDE; oba instaluje się z PyPI jednym poleceniem i oba działają na tej samej powierzchni szeregowej USB / systemu plików, którą kamera już udostępnia.
13.5.1. mpremote¶
mpremote to alternatywa wiersza poleceń (CLI) dla OpenMV IDE. Jedno polecenie obejmuje to, co IDE robi za pomocą przeglądarki plików, terminala i przycisku uruchamiania skryptu: połączenie z kamerą przez port szeregowy USB, sterowanie REPL, kopiowanie plików do i z systemu plików kamery, uruchamianie skryptu po stronie hosta względem kamery bez przesyłania go oraz instalowanie pakietów innych firm za pomocą mip
$ pip install --user mpremote
$ mpremote # interactive REPL
$ mpremote cp main.py : # upload to cam
$ mpremote run local_script.py # run host script on cam
$ mpremote ls # list cam filesystem
$ mpremote mip install aioble # install package on cam
To właściwe narzędzie do zautomatyzowanych stanowisk testowych, wdrożeń bezgłowych (headless), skryptów CI, które wgrywają świeży obraz i przeprowadzają test dymny, oraz każdego przepływu pracy, w którym uruchamianie graficznego interfejsu byłoby przesadą. Dokumentacja mpremote opisuje każde polecenie i opcję.
13.5.2. mpy-cross¶
mpy-cross to kompilator krzyżowy, który zamienia plik źródłowy .py w kontener binarny .mpy gotowy do zaimportowania na kamerze. Kompilacja z wyprzedzeniem oszczędza kamerze parsowania źródła przy imporcie, daje mniejszy rozmiar na dysku i jest jedyną drogą dla funkcji z dekoratorami @native i @viper, które wymagają kompilacji dopasowanej do architektury MCU kamery:
$ pip install --user mpy-cross
$ mpy-cross foo.py
$ mpremote cp foo.mpy :
W przypadku modułów zamrożonych (frozen) wbudowanych w obraz oprogramowania układowego oraz partycji ROMFS dostarczanych wraz z nim to samo narzędzie uruchamia się automatycznie jako część kompilacji oprogramowania układowego – system kompilacji wywołuje mpy-cross dla każdego pliku .py w katalogu scripts/ w drodze do wytworzenia pliku .bin. Bezpośrednie wywołanie to coś, po co sięga aplikacja, gdy chce dostarczyć plik .mpy oddzielnie od oprogramowania układowego lub sterować kompilatorem ze skryptu kompilacji.
Sekcja mpy-cross dokumentacji plików .mpy opisuje flagi wiersza poleceń, poziomy optymalizacji, macierz -march oraz punkty wejścia modułów Python.