13.5. Instrumente MicroPython

Proiectul MicroPython include un set de instrumente pentru gazdă alături de limbajul propriu-zis. Două dintre aceste instrumente sunt utile pentru orice flux de lucru cu OpenMV cam care se desfășoară în afara IDE-ului; ambele se instalează din PyPI printr-o singură comandă și ambele funcționează pe aceeași suprafață serială USB / sistem de fișiere pe care camera o expune deja.

13.5.1. mpremote

mpremote este o alternativă în linie de comandă la OpenMV IDE. O singură comandă acoperă ceea ce IDE-ul face prin browserul de fișiere, terminalul și butonul de rulare a scriptului: se conectează la o cameră prin serial USB, controlează REPL-ul, copiază fișiere în și din sistemul de fișiere al camerei, rulează un script de pe gazdă pe cameră fără a-l încărca și instalează pachete de la terți cu 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

Acesta este instrumentul potrivit pentru bancuri de testare automatizate, implementări fără interfață grafică, scripturi CI care încarcă o imagine nouă și rulează un test rapid și pentru orice flux de lucru în care rularea unei interfețe grafice este excesivă. Referința mpremote documentează fiecare comandă și opțiune.

13.5.2. mpy-cross

mpy-cross este compilatorul încrucișat care transformă un fișier sursă .py într-un container binar .mpy gata de importat pe cameră. Compilarea în avans scutește camera de analizarea sursei la import, oferă o amprentă mai mică pe disc și este singura cale pentru funcțiile decorate cu @native și @viper care necesită o compilare potrivită cu arhitectura MCU a camerei:

$ pip install --user mpy-cross
$ mpy-cross foo.py
$ mpremote cp foo.mpy :

Pentru modulele înghețate integrate în imaginea de firmware și pentru partițiile ROMFS livrate alături de aceasta, același instrument rulează automat ca parte a compilării firmware-ului – sistemul de compilare invocă mpy-cross asupra fiecărui fișier .py din scripts/ în drumul său către producerea fișierului .bin. Invocarea directă este ceea ce alege o aplicație atunci când dorește să livreze un fișier .mpy separat de firmware sau să controleze compilatorul dintr-un script de compilare.

Secțiunea mpy-cross din referința fișierelor .mpy acoperă opțiunile din linia de comandă, nivelurile de optimizare, matricea -march și punctele de intrare ale modulelor Python.