13.5. Ferramentas MicroPython

O projeto MicroPython disponibiliza um conjunto de ferramentas para o lado do anfitrião juntamente com a própria linguagem. Duas dessas ferramentas são úteis em qualquer fluxo de trabalho com uma OpenMV Cam fora do IDE; ambas instalam-se a partir do PyPI com um único comando e ambas funcionam contra a mesma superfície de série USB / sistema de ficheiros que a câmara já expõe.

13.5.1. mpremote

mpremote é uma alternativa em linha de comandos ao OpenMV IDE. Um único comando cobre o que o IDE faz através do seu gestor de ficheiros, terminal e botão de execução de script: ligar a uma câmara por série USB, controlar o REPL, copiar ficheiros de e para o sistema de ficheiros da câmara, executar um script do lado do anfitrião na câmara sem o carregar, e instalar pacotes de terceiros com 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

Esta é a ferramenta certa para bancadas de testes automatizados, implementações sem interface gráfica, scripts de CI que gravam uma imagem nova e executam um teste de fumo, e qualquer fluxo de trabalho onde executar uma interface gráfica é desnecessário. A referência do mpremote documenta todos os comandos e opções.

13.5.2. mpy-cross

mpy-cross é o compilador cruzado que converte um ficheiro fonte .py num contentor binário .mpy pronto a importar na câmara. Compilar antecipadamente poupa à câmara a análise do código fonte durante a importação, resulta numa pegada em disco mais reduzida, e é o único caminho para funções decoradas com @native e @viper que necessitam de uma compilação adaptada à arquitetura do MCU da câmara:

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

Para módulos congelados incorporados na imagem de firmware e para partições ROMFS distribuídas juntamente com ela, a mesma ferramenta é executada automaticamente como parte da compilação do firmware – o sistema de compilação invoca o mpy-cross sobre todos os ficheiros .py em scripts/ a caminho de produzir o .bin. A invocação direta é o que uma aplicação utiliza quando pretende distribuir um ficheiro .mpy separadamente do firmware, ou conduzir o compilador a partir de um script de compilação.

A secção do mpy-cross da referência de ficheiros .mpy abrange os sinalizadores de linha de comandos, os níveis de otimização, a matriz -march, e os pontos de entrada do módulo Python.