今回からしばらくRaspberry Pi picoを使ったCircuitPython入門を始めていきます。全くの基本からですので、#1からの内容と被ります。#1からはCytron社製Maker Pi rp2040を使用していましたけど、今回はRaspberry Pi picoをメインに解説していきたいと思います。ではさっそくプログラミングをはじめていきましょう。現在のCircuitPythonは8.2.9です。
importでモジュールを読み込む
インポートで何を思い浮かべるでしょうか?インポートもののバスケットシューズとかバッグとか。そう輸入ですね。CircuitPythonでimportはモジュールを呼び出すための命令です。モジュールとは様々な機能を分類する単位です。今回はマイクロコントローラつまりRaspberry Pi picoの基本モジュールを呼び出すためにboard、デジタル的なピンサポートのためにdigitalio、そして時間が必要になるのでtimeをimportします。
import board
import digitalio
import time
digitalioをインスタンス化
GP2にLEDを接続しています。それをdigitalioとして名前をledと名付けてます。命名は自分がそしてあとでこのプログラムを読む人がわかりやすいような名前にすることが必要です。
digitalioは入力と出力とをあつかうことができます。今回は出力で使うので、led.directionをアウトプットに設定します。
led = digitalio.DigitalInOut(board.GP2)
led.direction = digitalio.Direction.OUTPUT
これで初期設定は完了です。
while Trueで繰り返し
whileにはどんな意味があるでしょうか?〜の間。プログラム上では、Trueの間ずっとということになります。以下のプログラムではFalseを示すことがないのでずーっと同じ処理を繰り返すことになります。
while Trueの次のコロンは必ずつけてください。それ以下の行は必ずインデント(字下げ)が必要です。インデントをすることによってpythonは繰り返す処理がどこからどこまでか理解してくれるようになるのです。
led.valueでLEDを制御
led.value = 1で点灯、= 0で消灯します。
time.sleepで現在の状態を維持
time.sleep(1)で一秒間待ちます。小数点も使うことができます。
while True:
led.value = 1
time.sleep(1)
led.value = 0
time.sleep(0.5)
プログラムの保存と実行
以上のコードを書き終えたら、まずはパソコン上に保存します。led01.pyとしておきましょうか?今度はRaspberry Pi picoにプログラムを書き込みます。今度はcode.py という名前で書き込みます。この名前で書き込むとすぐにマイクロコントローラ上でプログラムが動作します。
リズムをきざんでみよう
ジングルベール、ジングルベールでいきましょうか?さあ頑張ってプログラミングしてみてください。ちゃんちゃんちゃーん、ちゃんちゃんちゃーん。上手に光らせることができましたか?これであなたもプログラマーです。無機質な点滅から生命感あふれる明滅になったことでしょう。リズムマシーンとしても使えますね。私が作ったコードはこちらです。
#ledをジングルベールのリズムで点灯する
import board
import digitalio
import time
led = digitalio.DigitalInOut(board.GP2)
led.direction = digitalio.Direction.OUTPUT
while True:
led.value = 1
time.sleep(0.4)
led.value = 0
time.sleep(0.05)
led.value = 1
time.sleep(0.4)
led.value = 0
time.sleep(0.05)
led.value = 1
time.sleep(0.85)
led.value = 0
time.sleep(0.05)