13.5. MicroPython-verktyg

MicroPython-projektet levererar en värdbaserad verktygskedja vid sidan av själva språket. Två av dessa verktyg är användbara för alla arbetsflöden med OpenMV-kameran som ligger utanför IDE:n; båda installeras från PyPI med ett enda kommando och båda arbetar mot samma USB-serie-/filsystemsyta som kameran redan exponerar.

13.5.1. mpremote

mpremote är ett CLI-alternativ till OpenMV IDE. Ett enda kommando täcker det som IDE:n gör via sin filläsare, terminal och knapp för att köra skript: anslut till en kamera över USB-serie, styr REPL:en, kopiera filer in och ut ur kamerans filsystem, kör ett värdbaserat skript mot kameran utan att ladda upp det, och installera tredjepartspaket med 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

Det här är rätt verktyg för automatiserade testriggar, distributioner utan skärm, CI-skript som flashar en ny avbildning och kör ett röktest, och alla arbetsflöden där det är onödigt att köra ett grafiskt gränssnitt. mpremote-referensen dokumenterar varje kommando och alternativ.

13.5.2. mpy-cross

mpy-cross är korskompilatorn som omvandlar en .py-källfil till en .mpy-binärcontainer som är redo att importeras på kameran. Att kompilera i förväg besparar kameran från att tolka källkoden vid import, ger ett mindre fotavtryck på disk och är den enda vägen för funktioner dekorerade med @native och @viper som behöver ett bygge anpassat till kamerans MCU-arkitektur:

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

För frusna moduler inbakade i firmware-avbildningen och för ROMFS-partitioner som levereras vid sidan av den körs samma verktyg automatiskt som en del av firmware-bygget – byggsystemet anropar mpy-cross över varje .py under scripts/ på vägen mot att producera .bin-filen. Direkt anrop är vad en applikation tar till när den vill leverera en .mpy separat från firmware, eller styra kompilatorn från ett byggskript.

mpy-cross-avsnittet i referensen för .mpy-filer behandlar kommandoradsflaggorna, optimeringsnivåerna, -march-matrisen och Python-modulens ingångspunkter.