13.5. Инструменты MicroPython¶
Проект MicroPython поставляет инструментарий для хост-стороны вместе с самим языком. Два из этих инструментов полезны для любого рабочего процесса с OpenMV cam, который существует вне IDE; оба устанавливаются из PyPI одной командой, и оба работают с тем же интерфейсом USB serial / файловой системы, который камера уже предоставляет.
13.5.1. mpremote¶
mpremote — это альтернатива OpenMV IDE из командной строки. Одна команда покрывает то, что IDE делает через свой файловый браузер, терминал и кнопку запуска скрипта: подключение к камере по USB serial, управление REPL, копирование файлов в файловую систему камеры и обратно, запуск скрипта на хост-стороне против камеры без его загрузки, а также установка сторонних пакетов с помощью 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
Это подходящий инструмент для автоматизированных тестовых стендов, развёртываний без дисплея, CI-скриптов, которые прошивают свежий образ и запускают дымовой тест, а также для любого рабочего процесса, где запуск графического интерфейса избыточен. Справочник по mpremote документирует каждую команду и опцию.
13.5.2. mpy-cross¶
mpy-cross — это кросс-компилятор, который превращает исходный файл .py в двоичный контейнер .mpy, готовый к импорту на камере. Предварительная компиляция избавляет камеру от разбора исходного кода при импорте, даёт меньший размер на диске и является единственным путём для функций, помеченных декораторами @native и @viper, которым нужна сборка, соответствующая архитектуре MCU камеры:
$ pip install --user mpy-cross
$ mpy-cross foo.py
$ mpremote cp foo.mpy :
Для замороженных модулей, встроенных в образ прошивки, и для разделов ROMFS, поставляемых вместе с ним, тот же инструмент запускается автоматически в рамках сборки прошивки — система сборки вызывает mpy-cross для каждого .py в scripts/ на пути к созданию .bin. Прямой вызов нужен приложению, когда оно хочет поставлять .mpy отдельно от прошивки или управлять компилятором из скрипта сборки.
Раздел mpy-cross справочника по файлам .mpy охватывает флаги командной строки, уровни оптимизации, матрицу -march и точки входа модулей Python.