2.1. 最初のスクリプト

Pythonのスクリプトは、.py 拡張子のテキストファイルに保存された一連の命令です。緑色の Run ボタンを押すと、OpenMV Camはその時点でIDEで開かれているスクリプトを実行し、出力をウィンドウ下部のIDEのシリアルターミナルに表示します。

もっとも単純なスクリプトは1行だけです:

print("Hello, OpenMV!")

Run を押すとこのスクリプトがカメラに送られ、カメラがそれを実行してメッセージをIDEに返して表示します。

2.1.1. print の動作

print() は組み込み関数です。ファームウェアの内部に存在し、特別な設定なしにいつでも利用できるコードです。括弧の中に1つ以上の値を渡すと、それらの値のテキスト表現をIDEに出力します。

print() にはテキスト以外のものも渡せます:

print(42)
print(3.14)
print("temperature", 25)

複数の引数は出力時にスペースで区切られます:

>>> temperature 25

2.1.2. コメント

#コメントの始まりで、その行の残りの部分はPythonに無視されます。コメントはコードがなぜそのように動作するのかを説明するために使いましょう。コードが何をしているのかはコード自体がすでに示しています。

# Send a startup banner over the serial terminal.
print("camera ready")

print("running")  # Marker for the operator monitoring the IDE.

Pythonには複数行コメント専用の構文はありません。複数の行を個別にコメントするか、IDEで対象の行を選択して Ctrl+/ を押すとコメントのオン・オフを切り替えられます。

2.1.3. インデントが重要

Pythonは行頭の空白であるインデントを使って、関連する行をグループ化します。関数、if 文、ループの内部では、そのブロックに属するすべての行を 同じ量 だけインデントします(スペース4つが慣例です)。タブとスペースを混在させたり、ブロック内でインデント幅を変えたりすると構文エラーになります。

上記の print 呼び出しのようなトップレベルの文は、インデント0の位置にあります。インデントされたブロックは、分岐やループを書き始めると現れます。

Tip

: で終わる行を書き終えると、IDEが自動的にインデントしてくれます。原因不明の IndentationError が出た場合は、該当するブロックを選択して Tab / Shift+Tab を押し、整列し直してください。

2.1.4. スクリプトを再実行する

Run を押すたびに、カメラは実行中の処理を停止し、現在のスクリプトを読み込んで先頭から開始します。別途コンパイルする手順はありません。1行変更してもう一度 Run を押せば、新しい出力がターミナルに表示されます。

カメラの電源が入るたびに自動的にスクリプトを実行させるには、カメラのファイルシステムに main.py という名前で保存します。