2. MicroPython REPL プロンプトの始め方¶
REPL は Read Evaluate Print Loop の略で、Zephyr ボードでアクセスできる対話的な MicroPython プロンプトに与えられた名前です。コードのテストやコマンドの実行には REPL の利用ををお勧めします。
2.1. シリアルポート経由の REPL¶
REPL は zephyr,console
デバイスツリーノードによりボードに指定された UART シリアルペリフェラルで使えます。REPL のボーレートは 115200 です。ボードに USB シリアルコンバータが搭載されている場合は、PCから REPL に直接アクセスできます。
USB シリアル経由のプロンプトにアクセスするには、ターミナルエミュレータプログラムを使用する必要があります。Linux または Mac の場合は、ターミナルを開いて次を実行してください(訳註: Mac の場合はデバイスファイル名が異なります。たいていは /dev/tty.usb〜
という名前が付いています):
screen /dev/ttyACM0 115200
screen
の代わりに picocom
や minicom
を試すこともできます。 ttyACM
には /dev/ttyACM1
かそれ以上の番号を使う必要があるかもしれません。このデバイスにアクセスするには、追加のパーミッションが必要な場合があります(uucp
や dialout
グループ、sudo を使うなど)。Windows の場合は、puTTY などのターミナルソフトを入手し、適切な COM ポートを使ってシリアルセッションで接続します。
2.2. REPL の使い方¶
シリアルプログラム(PuTTY、screen、picocom など)を開くと、カーソルが点滅する空白の画面が表示されます。Enterキーを押すと(またはボードをリセットすると)、以下のようなテキストが表示されます:
*** Booting Zephyr OS build zephyr-v3.1.0 ***
MicroPython v1.19.1-9-g4fd54a475 on 2022-06-17; zephyr-frdm_k64f with mk64f12
Type "help()" for more information.
>>>
これで、MicroPython コードをボード上で直接実行してみることができます。
>>>
で示されるプロンプトに入力したものは、Enter キーを押した後に実行されます。入力したテキストにエラーがある場合は、エラーメッセージが出力されます。
まず、プロンプトに次のように入力し、動作していることを確認してください:
>>> print("hello world!")
hello world!
すでに python を知っているなら、ここでいくつかの基本的なコマンドを試せます。たとえば、次を試してみてください:
>>> 1 + 2
3
>>> 1 / 2
0.5
>>> 3 * 'Zephyr'
ZephyrZephyrZephyr
ボードにLEDがあれば、以下のコードで点滅させることができます:
>>>import time
>>>from machine import Pin
>>>LED = Pin(("GPIO_1", 21), Pin.OUT)
>>>while True:
... LED.value(1)
... time.sleep(0.5)
... LED.value(0)
... time.sleep(0.5)
上記のコードでは、FRDM-K64F ボードの LED を使っています(ポートB、ピン21; Zephyrの規約ではポートは "GPIO_x" で識別され、 x は0から始まります)。他のボードでは、そのボードのリファレンス資料を使って調整する必要があります。