13.5. MicroPython-tools¶
Het MicroPython-project levert een host-zijde toolchain mee naast de taal zelf. Twee van die tools zijn nuttig voor elke OpenMV cam-workflow die buiten de IDE leeft; beide installeren met een enkel commando vanaf PyPI en beide werken op hetzelfde USB-serieel/bestandssysteem-oppervlak dat de cam al blootstelt.
13.5.1. mpremote¶
mpremote is een CLI-alternatief voor de OpenMV IDE. Eén commando dekt wat de IDE doet via de bestandsbrowser, terminal en run-script-knop: verbinden met een cam via USB-serieel, de REPL aansturen, bestanden in en uit het bestandssysteem van de cam kopiëren, een host-zijde script tegen de cam draaien zonder het te uploaden, en pakketten van derden installeren met 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
Dit is de juiste tool voor geautomatiseerde testopstellingen, headless implementaties, CI-scripts die een vers image flashen en een rooktest uitvoeren, en elke workflow waarbij het draaien van een GUI overkill is. De mpremote-referentie documenteert elk commando en elke optie.
13.5.2. mpy-cross¶
mpy-cross is de cross-compiler die een .py bronbestand omzet in een .mpy binaire container die klaar is om op de cam te importeren. Vooraf compileren bespaart de cam het parsen van de bron bij het importeren, geeft een kleinere footprint op schijf, en is de enige weg voor met @native en @viper gedecoreerde functies die een build nodig hebben die overeenkomt met de MCU-architectuur van de cam:
$ pip install --user mpy-cross
$ mpy-cross foo.py
$ mpremote cp foo.mpy :
Voor frozen modules die in het firmware-image gebakken zijn en voor ROMFS-partities die ernaast meegeleverd worden, draait dezelfde tool automatisch als onderdeel van de firmware-build – het build-systeem roept mpy-cross aan over elke .py onder scripts/ op weg naar het produceren van de .bin. Directe aanroep is waar een applicatie naar grijpt wanneer het een .mpy apart van de firmware wil meeleveren, of de compiler vanuit een build-script wil aansturen.
De mpy-cross-sectie van de .mpy-bestandsreferentie behandelt de command-line-vlaggen, de optimalisatieniveaus, de -march-matrix, en de Python-module-entrypoints.