3.5. LEDクラス

カメラ上で最もシンプルなハードウェアは、オンボードLEDです。ほとんどのボードにはRGB LED(赤、緑、青)があります。machine.LED はそれらを制御するための専用クラスで、ピン番号も抵抗も回路も不要です。検索、電流制限、配線はカメラ自身が処理します。

import time
from machine import LED

red = LED("LED_RED")
red.on()
time.sleep(5)
red.off()

完全なハードウェアの「hello world」:クラスをインポートし、色の名前でインスタンスを構築し、点灯させ、待ち、消灯させます。LEDは5秒間のスリープの間、目に見えて点灯します。

末尾の red.off() は冒頭の red.on() と対称的であり、クリーンアップを明示的にします。オンボードLEDは、スクリプトが終了するときにも自動的にリセットされます。スクリプトが大きくなるにつれて、スクリプト終了時のクリーンアップに頼ることは脆くなります。各 .on() を明示的な .off() と対にする習慣が、長いスクリプトを予測可能に保ちます。

3.5.1. コンストラクタとメソッド

コンストラクタは "LED_RED""LED_GREEN""LED_BLUE" のいずれかを取ります。各インスタンスは4つのメソッドを公開します:

  • on() -- 点灯させます。

  • off() -- 消灯させます。

  • toggle() -- 現在の状態を反転させます。

  • value() -- 引数なしの場合は現在の状態(0 または 1)を返し、引数が1つの場合はそれを設定します。

メインループのパターンを使った点滅プログラム:

import time
from machine import LED

led = LED("LED_RED")

while True:
    led.toggle()
    time.sleep_ms(500)

オンボードLEDはインジケータやステータスの用途に使います。1秒ごとに点滅するハートビート、エラー時の赤い点滅、センサーの読み取り値が範囲内にあるときの緑のパルスなどです。