ESP32のMicroPythonで様々なLEDの点灯方法(1)
この記事では、ESP32とMicroPythonを使ってオンボードLEDの様々な点灯方法を解説します。
この記事で学べること
- RGBについて
- MicroPythonのコード例
ステップごとの解説
- 必要な部品を準備する
今回も前回、MicroPythonをインストールしたM5STACK社のM5StampS3を使います。
M5StampS3は、Amazon、スイッチサイエンス社、マルツエレック社などで購入することができます。 - M5StampS3にMicroPythonをインストールする
前回の記事を参考にMicroPythonをインストールします。 - RGB の仕組み(超入門)
M5StampS3のオンボードLEDは、programmable RGB LED (WS2812B-2020)なので、RGBで色んな色を点灯させることができます。
- LED の色は、R(赤)・G(緑)・B(青) の光を混ぜて作ります。
- それぞれの色の強さを 0〜255 の数字 で指定します。
- 3つの数字を並べて
(R, G, B)
の形で書きます。
- RGBの具体例
(255, 0, 0)
→ 赤(赤だけ最大)(0, 255, 0)
→ 緑(緑だけ最大)(0, 0, 255)
→ 青(青だけ最大)(255, 255, 255)
→ 白(赤+緑+青=全部最大)(0, 0, 0)
→ 消灯(全部ゼロ)
- RGBの応用例
(255, 255, 0)
→ 黄色(赤+緑)(255, 0, 255)
→ マゼンタ(赤+青)(0, 255, 255)
→ シアン(緑+青)(128, 128, 128)
→ グレー(全部を半分の明るさ)
📌 ポイント
👉 色の作り方は「絵の具の混ぜ算」とは逆で、光は 混ぜるほど明るくなる
👉 3色を全部光らせると 白 になる
- 💡 カラーチャート例
R 3106_0ebfee-74> |
G 3106_98069e-24> |
B 3106_fcc100-14> |
表示色 3106_c92e66-a5> |
255 3106_c4c164-16> |
0 3106_a52110-c1> |
0 3106_eb312f-22> |
🔴 赤 3106_eac043-4a> |
0 3106_e12a1b-16> |
255 3106_6f58ff-54> |
0 3106_cb28dd-7a> |
🟢 緑 3106_4fdf85-6f> |
0 3106_025cb4-61> |
0 3106_56e2bd-49> |
255 3106_a6cc14-cd> |
🔵 青 3106_7cee53-7a> |
255 3106_9f6e44-06> |
255 3106_7dc332-4d> |
0 3106_22ca5f-ba> |
🟡 黄 3106_3a83be-7c> |
255 3106_e95dc7-1d> |
0 3106_b289ed-82> |
255 3106_4e112f-59> |
🟣 マゼンタ 3106_7c698b-51> |
0 3106_b49751-56> |
255 3106_d206ed-cf> |
255 3106_e92d9f-08> |
🔵🟢 シアン 3106_4a6dc5-7c> |
255 3106_ddadfd-02> |
255 3106_7a09f1-41> |
255 3106_299763-8b> |
⚪ 白 3106_f1c975-c5> |
0 3106_39d40e-5a> |
0 3106_fe1071-ca> |
0 3106_f0eeb9-45> |
⚫ 消灯 3106_acc2eb-7f> |
- M5StampS3をPCに接続する
M5StampS3とPCをUSBケーブルで接続します。接続できているか確認します。
ls -l /dev/tty.usbmodem*
crw-rw-rw- 1 root wheel 0x9000006 8 24 16:37 /dev/tty.usbmodem11401
- VSCodeで以前、作ったプロジェクトを選択する
VSCodeを起動して、以前、作ったプロジェクトを選択します。

- エディタで新しいファイルを作成する
左側のエクスプローラにて右クリックして、「新しいファイル」を選択します。ファイル名を入力する欄が表示されるので、適当に名前を入力します。今回は、「led_rgb.py」としました。

- 下記コードをエディターで記入する
「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のタイマー設定
- 「led_rgb.py」を実行する
左のエクスプローラにて、「led_rgb.py」を選択して、右クリックから、「Run current file on Pico」をクリックすると、M5StampS3上のLEDが赤→緑→青→白の順番で点灯し、消灯します。
まとめ
ESP32とMicroPythonを使えば、シンプルなコードでオンボードのLEDを点灯させることができます。応用すればIoTデバイスに簡単に組み込めます。