13.5. Ferramentas do MicroPython¶
O projeto MicroPython distribui uma cadeia de ferramentas para o lado do host junto com a própria linguagem. Duas dessas ferramentas são úteis para qualquer fluxo de trabalho da OpenMV Cam que viva fora da IDE; ambas são instaladas a partir do PyPI com um único comando e ambas trabalham sobre a mesma superfície de serial USB / sistema de arquivos que a câmera já expõe.
13.5.1. mpremote¶
O mpremote é uma alternativa em linha de comando (CLI) à OpenMV IDE. Um único comando cobre o que a IDE faz por meio de seu navegador de arquivos, terminal e botão de executar script: conectar-se a uma câmera pela serial USB, controlar o REPL, copiar arquivos para dentro e para fora do sistema de arquivos da câmera, executar um script do host contra a câmera sem fazer upload dele e instalar pacotes de terceiros com o 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 teste automatizadas, implantações sem interface gráfica (headless), scripts de CI que gravam uma imagem nova e executam um teste de fumaça, e qualquer fluxo de trabalho em que rodar uma interface gráfica seja excessivo. A referência do mpremote documenta cada comando e opção.
13.5.2. mpy-cross¶
O mpy-cross é o compilador cruzado que transforma um arquivo-fonte .py em um contêiner binário .mpy pronto para ser importado na câmera. Compilar antecipadamente evita que a câmera precise analisar o código-fonte na importação, gera uma pegada menor em disco e é o único caminho para funções decoradas com @native e @viper que precisam de uma compilação compatível com a arquitetura do MCU da câmera:
$ pip install --user mpy-cross
$ mpy-cross foo.py
$ mpremote cp foo.mpy :
Para módulos congelados (frozen) embutidos na imagem de firmware e para partições ROMFS distribuídas junto com ela, a mesma ferramenta é executada automaticamente como parte da compilação do firmware – o sistema de build invoca o mpy-cross sobre cada .py em scripts/ no caminho para produzir o .bin. A invocação direta é o que uma aplicação utiliza quando quer distribuir um .mpy separadamente do firmware, ou controlar o compilador a partir de um script de build.
A seção do mpy-cross da referência dos arquivos .mpy cobre as flags de linha de comando, os níveis de otimização, a matriz -march e os pontos de entrada dos módulos Python.