技術の木

Raspberry Pi Pico入門!Lチカをプログラミング(MicroPython)

スポンサーリンク

Picoにプログラミングをしよう!

前回、Raspberry Pi Picoでプログラミングをするための開発環境のインストールまでを紹介しました。

今回はPicoに備わっているLEDを使ってプログラミングしていきたいと思います。

Thonnyを使ってプログラムを記述しますので、もしも環境の準備がまだの場合は以下の記事を参照ください。

LEDを点灯してみる

raspberry-pi-pico-ledのサムネイル
参考:https://datasheets.raspberrypi.org/pico/Pico-R3-A4-Pinout.pdf

上図のUSB端子の左横についているのがLEDです。
少し見づらいですが、「LED(GP25)」と書かれていいます。

それではLEDを点灯してみましょう!
次のコードはLEDが点灯するだけのサンプルになります。

from machine import Pin

#LED定義Pin25
led = Pin(25, Pin.OUT)
led.value(1)
解説

1行目はライブラリのロードです。LEDの操作にはPinクラスを使います。

4行目でPinクラスを生成します。
LEDは上記で確認したとおり、GP25(GPIO Pin 25)に接続されているため、Pinクラスの第1引数に25を指定しています。
第2引数のPin.OUTは出力モードとなります。

Lチカ(点けたり消したり)する

上記のサンプルではLEDが点きっぱなしになるだけですので、machine.Timerを使って定期的にON/OFFを繰り返してチカチカさせてみましょう。

ソースコード
from machine import Pin, Timer

#LED定義Pin25
led = Pin(25, Pin.OUT)
#Timer生成
timer = Timer()

def tica2(timer):
    global led
    led.toggle()

## freq nHz(1秒間にn回の間隔)
## mode Timer.PERIODIC(繰り返し実行)
## callback tica2(timer)を呼び出し
timer.init(freq=2, mode=Timer.PERIODIC, callback=tica2)
解説

1行目はライブラリのロードです。
今回はmachine.Timerを追加しています。

6行目では1行目で追加したTimerクラスを生成しています。

8~10行目はTimerのコールバックで呼び出す関数の定義をしています。
toggle()でONとOFFの切り替えをしています。
※9行目はグローバル変数を使うためですが、無くても動作するようです。

15行目でタイマーをセットしています。

pythonのthreading.Timerは使うことはできないようです。
代わりに_thread.start_new_thread()を使う方法があります。

参考:https://datasheets.raspberrypi.org/pico/raspberry-pi-pico-python-sdk.pdf
「3.5. Multicore Support」

また単純にtime.sleep()を使ってN秒間毎に繰り返し実行する方法などもあります。

Lチカの完成

以上でLチカが出来るようになりました。

表示の間隔を変えてみたり、いくつかのの表示パターン作って順番に動かしてみたりと出来そうなことにトライしてみてください。

おまけ

Picoにプログラムを書き出して自動起動させる

ここまでプログラミングしたものをPico単体で起動する方法は次のようになります。

  • ファイル名を「main.py」としてRaspberry Pi Pico上に保存する

MicroPythonではRaspberry Pi Picoに電源が入った際にmain.pyファイルが実行される仕様となっています。

タイトルとURLをコピーしました