13.5. MicroPython ツール¶
MicroPython プロジェクトは、言語本体と並んでホスト側のツールチェーンを提供しています。そのうちの2つは、IDE の外で動作するあらゆる OpenMV cam ワークフローで役立ちます。どちらも1つのコマンドで PyPI からインストールでき、どちらも cam がすでに公開しているのと同じ USB シリアル/ファイルシステムの面に対して動作します。
13.5.1. mpremote¶
mpremote は OpenMV IDE の CLI による代替手段です。1つのコマンドで、IDE がファイルブラウザ、ターミナル、スクリプト実行ボタンを通じて行うことをカバーします。すなわち、USB シリアル経由で cam に接続し、REPL を操作し、cam のファイルシステムへファイルを出し入れし、アップロードせずにホスト側のスクリプトを cam に対して実行し、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 スクリプト、そして GUI の実行が過剰となるあらゆるワークフローに適したツールです。mpremote リファレンス には、すべてのコマンドとオプションが記載されています。
13.5.2. mpy-cross¶
mpy-cross は、.py ソースファイルを cam 上でインポートできる .mpy バイナリコンテナに変換するクロスコンパイラです。事前にコンパイルしておくことで、cam がインポート時にソースを解析する手間を省き、ディスク上のフットプリントを小さくできます。また、cam の MCU アーキテクチャに合わせたビルドを必要とする @native および @viper デコレータ付き関数にとっては、これが唯一の手段です:
$ pip install --user mpy-cross
$ mpy-cross foo.py
$ mpremote cp foo.mpy :
ファームウェアイメージに焼き込まれるフリーズモジュールや、それと並んで出荷される ROMFS パーティションについては、同じツールがファームウェアのビルドの一部として自動的に実行されます。ビルドシステムは .bin を生成する過程で、scripts/ 配下のすべての .py に対して mpy-cross を呼び出します。直接呼び出すのは、アプリケーションがファームウェアとは別に .mpy を出荷したい場合や、ビルドスクリプトからコンパイラを駆動したい場合です。
.mpy ファイルリファレンスの mpy-cross セクション では、コマンドラインフラグ、最適化レベル、-march マトリックス、および Python モジュールのエントリポイントについて説明しています。