ごきげんよう、ちゃまおです。
第2話からの続きです。今回の記事ではMicro Python版のLチカについて解説していきます。とは言え、私はPythonについて詳しい訳では無いので非常にざっくりした解説になってしまう事を、ご了承下さい。
#ソースコードとThonnyでの実行方法
今回取り上げるコードはRaspberry Pi PicoのPython SDK(以下、公式SDKドキュメント)p.13-14に載っているコードを参考にしながら、第1話で取り上げたソースコードと同じ動作をするように修正したものになります。
from machine import Pin
import utime
led = Pin(25, Pin.OUT)
while True:
led.value(1)
utime.sleep_ms(250)
led.value(0)
utime.sleep_ms(250)
ThonnyとRaspberry Pi Picoは、第2話の最後に記載した所で止まっている(つまり、開発環境が整っている)と想定しています。
まずは、Thonnyにソースコードをコピペしましょう。終わったら保存しますが、その時に「This computer」と「Raspberry Pi Pico」のどちらに保存するか聞かれるので、「Raspberry Pi Pico」を選びます。
好きな名前で保存し終わったら、Thonnyの上部アイコン左から4つめの"Run current script"ボタンを押します。LEDがチカチカ光ったら成功です。
#ソースコード解説
ここからは、1行ずつコードの中身を解説してきます。
最初の2行に出てくるfrom machine import Pin
とimport utime
でモジュールの読み込みを行っています。「コーディングするのに便利な機能を呼び出すよー」と言う意味です。モジュールの詳細は、Pythonの公式ドキュメントを読んで頂くのが良いと思います。
Micro Pythonで用意されているモジュールのうち、今回は"machine"と"utime"と言う名前のモジュールを使います。"machine"モジュールの中には、いくつかのクラスがあり、今回の場合は、"machine"モジュールの中の"Pin"クラスを呼び出しています。モジュールとかクラスって何だろう?と疑問に思われる方もいらっしゃるかと思いますが、ここでは説明を省略させて頂きます。
led = Pin(25, Pin.OUT)
は、「Raspberry Pi Picoに搭載されているGPIOピン25番を、ledと言う名前で、出力(OUTPUT)として定義するよ」と言う意味です。()内の1番目でGPIOピン番号、2番目でピンの入出力状態を指定する為、例えばGPIOピン10番を入力(INPUT)として使用したい場合はPin(10, Pin.IN)
となります。
while True:
以下では、繰り返しの内容が書いてあります。led.value(1)
はピンの状態を表しています。value()
の数字が"1"の時はTrue、つまりスイッチONの状態です。逆に数字が"0"の時はFalse、つまりスイッチOFFの状態です。
utime.sleep_ms(250)
は、「250ms待つよ」と言う意味です。250の数字を1000に変更すると、Lチカの間隔が1000ms(1秒)になります。
解説は以上となります。お疲れ様でした。
#次回予告
第2話の冒頭に書いた問題が一応解決したので、次回はC/C++開発環境の導入について解説する予定です。