ESP32のMicroPythonで様々なLEDの点灯方法(1)

この記事では、ESP32とMicroPythonを使ってオンボードLEDの様々な点灯方法を解説します。

この記事で学べること

  • RGBについて
  • MicroPythonのコード例

ステップごとの解説

  1. 必要な部品を準備する
    今回も前回、MicroPythonをインストールしたM5STACK社のM5StampS3を使います。
    M5StampS3は、Amazonスイッチサイエンス社マルツエレック社などで購入することができます。
  2. M5StampS3にMicroPythonをインストールする
    前回の記事を参考にMicroPythonをインストールします。
  3. RGB の仕組み(超入門)
    M5StampS3のオンボードLEDは、programmable RGB LED (WS2812B-2020)なので、RGBで色んな色を点灯させることができます。
    • LED の色は、R(赤)・G(緑)・B(青) の光を混ぜて作ります。
    • それぞれの色の強さを 0〜255 の数字 で指定します。
    • 3つの数字を並べて (R, G, B) の形で書きます。
  1. RGBの具体例
    • (255, 0, 0) → 赤(赤だけ最大)
    • (0, 255, 0) → 緑(緑だけ最大)
    • (0, 0, 255) → 青(青だけ最大)
    • (255, 255, 255) → 白(赤+緑+青=全部最大)
    • (0, 0, 0) → 消灯(全部ゼロ)
  1. RGBの応用例
    • (255, 255, 0) → 黄色(赤+緑)
    • (255, 0, 255) → マゼンタ(赤+青)
    • (0, 255, 255) → シアン(緑+青)
    • (128, 128, 128) → グレー(全部を半分の明るさ)

      📌 ポイント
      👉 色の作り方は「絵の具の混ぜ算」とは逆で、光は 混ぜるほど明るくなる
      👉 3色を全部光らせると になる
  1. 💡 カラーチャート例

R

G

B

表示色

255

0

0

🔴 赤

0

255

0

🟢 緑

0

0

255

🔵 青

255

255

0

🟡 黄

255

0

255

🟣 マゼンタ

0

255

255

🔵🟢 シアン

255

255

255

⚪ 白

0

0

0

⚫ 消灯

  1. M5StampS3をPCに接続する
    M5StampS3とPCをUSBケーブルで接続します。接続できているか確認します。
ls -l /dev/tty.usbmodem*
crw-rw-rw-  1 root  wheel  0x9000006  8 24 16:37 /dev/tty.usbmodem11401
  1. VSCodeで以前、作ったプロジェクトを選択する
    VSCodeを起動して、以前、作ったプロジェクトを選択します。
  1. エディタで新しいファイルを作成する
    左側のエクスプローラにて右クリックして、「新しいファイル」を選択します。ファイル名を入力する欄が表示されるので、適当に名前を入力します。今回は、「led_rgb.py」としました。
  1. 下記コードをエディターで記入する
    「led_rgb.py」を選択すると、エディター画面が開くので、下記コードを記入して保存します。
import neopixel
import machine
import time

pin = machine.Pin(21, machine.Pin.OUT)   # NeoPixel 駆動のための GPIO 21 を出力に設定
np = neopixel.NeoPixel(pin, 8)   # 8ピクセル用の NeoPixel ドライバーを GPIO 21 で作成

np[0] = (255, 0, 0) # 第1ピクセルを赤に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定

np[0] = (0, 0, 0) # 第1ピクセルを消灯に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定

np[0] = (0, 255, 0) # 第1ピクセルを緑に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定

np[0] = (0, 0, 0) # 第1ピクセルを消灯に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定

np[0] = (0, 0, 255) # 第1ピクセルを青に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定

np[0] = (0, 0, 0) # 第1ピクセルを消灯に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定

np[0] = (255, 255, 255) # 第1ピクセルを白に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定

np[0] = (0, 0, 0) # 第1ピクセルを消灯に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定
  1. 「led_rgb.py」を実行する
    左のエクスプローラにて、「led_rgb.py」を選択して、右クリックから、「Run current file on Pico」をクリックすると、M5StampS3上のLEDが赤→緑→青→白の順番で点灯し、消灯します。

まとめ

ESP32とMicroPythonを使えば、シンプルなコードでオンボードのLEDを点灯させることができます。応用すればIoTデバイスに簡単に組み込めます。

類似投稿