第2章 REPL
今回は第2章を読んでいく。
ところで REPL
のことを「レプル」と読んでいたのですが、このドキュメントによると「リップル」(ripple)が正しいらしい。
2.1 USB経由でのREPL利用
定番のUSB経由でのREPL利用について記載されている。
このドキュメントでは minicom というシリアル通信ソフトウェアで REPL を使います。
今となってはMiroPythonが提供している mpremote を使うほうが楽だろうなという気がする。シリアルポートも自動で探してくれるし。
mpremote のインストールは PyPI から pip でインストールできる。
$ pip install mpremote
REPLに繋ぐには、たいていは mpremote
を打つだけで、シリアルポートも自動で探して繋いでくれる。
$ mpremote
何らかの理由で mpremote がシリアルポートを探せないときは明示することもできる。
$ mpremote connect シリアルポート
mpremote でのREPL接続から抜けるには Ctrl-]
とする。
2.2 UARTピン経由でのREPL利用
USB経由ではなくて、UART のピンを使って REPL に繋ぐ方法について記載されている。
ダウンロードできるビルド済ファームウェアでは無効になっているので、もし使う必要があるなら、github からソースコードをもってきて、ports/rp2/mpconfigport.h
の中の MICROPY_HW_ENABLE_UART_REPL
を 1 に変更して、ビルドしなければならない。
ラズパイから使う場合は、ラズパイ側の UART も raspi-congig
で有効にしておくことを忘れずに。
やや敷居の高いところではなるが、Pico 自体を USB デバイスとしてプログラミングするのでなければ、ほとんど使うことはないであろう。
2.3 Mac での接続方法
なぜか、Mac だけ特別に接続を説明した章がある。たぶん、シリアルポートの名前が一意に示せないせいだとは思うが、それにしては説明が不足している。どちらにしても mpremote
を使う限りはシリアルポートで悩むことはほとんどない。
あと、Mac よりも特殊と思われる Windows の章がないのはなぜだろう。
2.4 Hello World
REPL の手始めとして Hello, Pico
を表示する方法が記載されている。
print()関数を使うだけ。
2.5 LED の点灯と消灯
続いて、内蔵 LED の点灯と消灯について。
Pico や Pico 2 で内蔵 LED はピン 25 番に接続されているので、すなおに25番のPinオプジェクトを作れば LED にアクセスできる。
>>> from machine import Pin
>>> led = Pin(25, Pin.OUT)
>>> led.value(1) # 点灯
>>> led.value(0) # 消灯
Pico W では LED が無線チップ経由で接続されているので、25番ピンは使えない。なので、このドキュメントではよりPicoシリーズ間で互換性の高い "LED"
文字列の使用を推奨している。
>>> from machine import Pin
>>> led = Pin("LED", Pin.OUT)
>>> led.value(1) # 点灯
>>> led.value(0) # 消灯
ちなみに、value()
以外にも on()
、off()
が使える。
>>> from machine import Pin
>>> led = Pin("LED", Pin.OUT)
>>> led.on() # 点灯
>>> led.off() # 消灯
ついでに言及しておくと、Pin は予め LED の Pin オブジェクトを持っている。
Pin.board.LED
2.6 次章予告
第3章でプログラミングを扱うことが示されている。
このドキュメントは作成したスクリプトをPicoに転送する方法についてはIDEまかせのようである。初期にはよくあったことだが、スクリプトをPico本体に置いてスタンドアローンで動かすことができないと勘違いされていたことがある。
IDEについては第4章で扱ってはいるのだが、順序を逆にしたほうがよいように思える。ついでに mpremote
も扱ってほしい。