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.