13.5. Outils MicroPython

Le projet MicroPython fournit une chaîne d’outils côté hôte en plus du langage lui-même. Deux de ces outils sont utiles pour tout flux de travail OpenMV cam qui se déroule en dehors de l’IDE ; tous deux s’installent depuis PyPI en une seule commande et travaillent tous deux sur la même interface série USB / système de fichiers que la cam expose déjà.

13.5.1. mpremote

mpremote est une alternative en ligne de commande à OpenMV IDE. Une seule commande couvre ce que l’IDE réalise via son explorateur de fichiers, son terminal et son bouton d’exécution de script : se connecter à une cam via la liaison série USB, piloter le REPL, copier des fichiers dans et hors du système de fichiers de la cam, exécuter un script côté hôte sur la cam sans le téléverser, et installer des paquets tiers avec 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

C’est l’outil approprié pour les bancs de test automatisés, les déploiements sans interface graphique, les scripts d’intégration continue (CI) qui flashent une nouvelle image et lancent un test de fumée, ainsi que pour tout flux de travail où l’exécution d’une interface graphique serait excessive. La référence de mpremote documente chaque commande et option.

13.5.2. mpy-cross

mpy-cross est le compilateur croisé qui transforme un fichier source .py en un conteneur binaire .mpy prêt à être importé sur la cam. La compilation anticipée évite à la cam d’analyser le source lors de l’import, offre une empreinte sur disque plus réduite et constitue le seul chemin pour les fonctions décorées avec @native et @viper qui nécessitent une compilation adaptée à l’architecture du microcontrôleur (MCU) de la cam

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

Pour les modules figés intégrés à l’image du micrologiciel et pour les partitions ROMFS fournies avec celle-ci, le même outil s’exécute automatiquement dans le cadre de la compilation du micrologiciel – le système de compilation invoque mpy-cross sur chaque fichier .py sous scripts/ au cours de la production du .bin. L’invocation directe est ce vers quoi se tourne une application lorsqu’elle souhaite distribuer un .mpy séparément du micrologiciel, ou piloter le compilateur depuis un script de compilation.

La section mpy-cross de la référence des fichiers .mpy couvre les options de ligne de commande, les niveaux d’optimisation, la matrice -march et les points d’entrée du module Python.