ESP32のMicroPythonで様々なLEDの点灯方法(2)
この記事では、ESP32とMicroPythonを使ってオンボードLEDの様々な点灯方法を解説します。
この記事で学べること
- ランダム関数の使い方
- MicroPythonのコード例
ステップごとの解説
- 必要な部品を準備する
今回も前回、MicroPythonをインストールしたM5STACK社のM5StampS3を使います。
M5StampS3は、Amazon、スイッチサイエンス社、マルツエレック社などで購入することができます。 - M5StampS3にMicroPythonをインストールする
前回の記事を参考にMicroPythonをインストールします。 - ランダム関数の紹介
MicroPythonでランダムの数を取得するには、urandom
モジュールが必要となります。
REPL画面にて、import urandomして、dir関数で、urandomモジュールに定義されている属性を一覧で取得してみます。今回は、RGBの値として、0-255を取りたいので、getrandbits(8)
を使います。
MicroPython v1.26.1 on 2025-09-11; Generic ESP32S3 module with ESP32S3
Type "help()" for more information or .help for custom vREPL commands.
>>> import urandom
>>> dir(urandom)
['__class__', '__init__', '__name__', '__dict__', 'choice', 'getrandbits', 'randint', 'random', 'randrange', 'seed', 'uniform']
>>>
- 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_rnd.py」としました。

- 下記コードをエディターで記入する
「led_rnd.py」を選択すると、エディター画面が開くので、下記コードを記入して保存します。
import neopixel
import machine
import time
import urandom
pin = machine.Pin(21, machine.Pin.OUT)
np = neopixel.NeoPixel(pin, 8)
for _ in range(3): # 3回ループさせる
rnd = urandom.getrandbits(8) # 0-255をランダムにとる変数
print(rnd)
np[0] = (rnd, 0, 0) # 第1ピクセルをランダム変数に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定
np[0] = (0, 0, 0) # 第1ピクセルを消灯に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定
- 「led_rnd.py」を実行する
左のエクスプローラにて、「led_rnd.py」を選択して、右クリックから、「Run current file on Pico」をクリックすると、M5StampS3上のLEDが赤が点滅しますが、少しわかりづらいかもしれませんが、3回それぞれ濃さが異なります。 - 「led_rnd.py」を変更して、ランダムで色を変える
「led_rnd.py」を選択すると、エディター画面が開くので、下記コードを記入して保存します。
今度は、色をランダムに変更して点滅させます。
import neopixel
import machine
import time
import urandom
pin = machine.Pin(21, machine.Pin.OUT)
np = neopixel.NeoPixel(pin, 8)
for _ in range(3): # 3回ループさせる
rnd1 = urandom.getrandbits(8) # 0-255をランダムにとる
rnd2 = urandom.getrandbits(8) # 0-255をランダムにとる
rnd3 = urandom.getrandbits(8) # 0-255をランダムにとる
print(rnd1)
print(rnd2)
print(rnd3)
np[0] = (rnd1, rnd2, rnd3) # 第1ピクセルをランダムの数字に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定
np[0] = (0, 0, 0) # 第1ピクセルを消灯に設定
np.write() # 全ピクセルにデータ書込み
time.sleep_ms(500) # 500msecのタイマー設定
- 「led_rnd.py」を実行する
左のエクスプローラにて、「led_rnd.py」を選択して、右クリックから、「Run current file on Pico」をクリックすると、M5StampS3上のLEDが点滅しますが、3回それぞれ色が異なります。
まとめ
ESP32とMicroPythonを使えば、シンプルなコードでオンボードのLEDを様々な色で点灯させることができます。応用すればIoTデバイスに簡単に組み込めます。