13.1.2. スクリプト、サンプル、そしてドキュメントフォルダ

13.1.2.1. 新規ファイル

新規ファイルを作成すると、IDEは最小限のキャプチャループがあらかじめ読み込まれた untitled_N.py バッファを開きます。センサーをリセットし、ピクセルフォーマットとフレームサイズを設定し、スナップショットを撮ってフレームレートを延々と出力する内容です。このスターター用スクリプトは接続中のボードに合わせて調整されているため、作成された状態で実行できます。バッファはメモリ上にのみ存在します。一度も保存せずに何度でも編集して実行できるので、新規ファイルはアイデアを試すための最も手軽な手段です。ディスクに保存すれば通常のスクリプトになります。

13.1.2.2. サンプルメニュー

File → Examples には、カメラが持つほぼすべての機能を網羅した、カテゴリ分けされたサンプルスクリプトのライブラリがあります。基本的なスナップショットからカラー追跡、機械学習、ボードのペリフェラルまで、トピックごとに1つのフォルダにまとめられています。サンプルを開くと、新規ファイルと同じようにメモリバッファに読み込まれるため、インストール済みのコピーに触れることなく自由に変更して実行できます。

デフォルトでは、メニューは接続中のボードとそのセンサーに合わせてフィルタリングされます。カメラに搭載されていないハードウェアを必要とするサンプルは非表示になり、メニューは何かを表示する前にまず接続を求めます。すべてのサンプルを参照したい場合は、Tools → Filter examples by board and sensor type でフィルタを無効にできます。

サンプルは開かれる際にも調整されます。スクリプトは一般的なカラーセンサーを前提に書かれているため、接続中のカメラが異なる場合(サーマルセンサーやイベントセンサー、ネイティブ解像度が異なるボードなど)、IDEは読み込み時にピクセルフォーマットとフレームサイズの行をハードウェアがサポートする値に調整し、サンプルは開いた状態で実行できます。

サンプルメニューを順番に試していくのが、カメラで何ができるかを学ぶ最速の方法です。ほとんどのアプリケーションは、発展したサンプルから始まります。

13.1.2.3. ドキュメントフォルダ

あなた自身のスクリプト用に、IDEはドキュメントフォルダ内の OpenMV ディレクトリ(Documents/OpenMV)を監視します。そこに保存したものはすべて、サブディレクトリも含めて File → Documents Folder の下に表示されるため、スクリプトのコレクションがメニュー1つで開けます。メニューはディレクトリをリアルタイムに読み取ります。IDEの外で追加したファイルは、次にメニューを開いたときに表示されます。

IDEは単一のインスタンスとして実行されます。ファイルマネージャから .py ファイルを開いたり、IDEウィンドウにドロップしたりすると、2つ目のコピーを起動するのではなく、実行中のウィンドウで開きます。

13.1.2.4. スクリプトのクロスコンパイル

Tools → MicroPython Tools → Copy/Convert Python File は .py ファイルを保存先(カメラが接続されていればそのドライブ)にコピーし、その際の処理を選択させます。変更せずにコピーするか、空白やコメントを除去して縮小するか、ターゲットボードに合わせた mpy-cross コンパイラで .mpy バイトコードファイルにコンパイルするかです。.mpy ファイルは元の .py とまったく同じようにインポートでき、読み込みが速く、ソースを同梱しません。カメラのファイルシステムにライブラリモジュールを配布する際に使う形式です。カメラが接続されている場合、IDEはターゲットボードを自動で選びます。接続されていなければ、ダイアログがどのボード向けにコンパイルするかを尋ねます。ボードの選択が重要なのは、それによってコンパイラがターゲットとするプロセッサのアーキテクチャが決まるからです。.mpy ファイルは実行されるカメラに合わせて作られており、異なるボードファミリ向けにコンパイルされたものは読み込める保証がありません。

参考

スタンドアロンのコマンドラインツールとしての mpy-cross と mpremote については MicroPython ツール を、.mpy ファイルフォーマット自体については MicroPython .mpy ファイル を参照してください。