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

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

この記事で学べること

  • ランダム関数の使い方
  • MicroPythonのコード例

ステップごとの解説

  1. 必要な部品を準備する
    今回も前回、MicroPythonをインストールしたM5STACK社のM5StampS3を使います。
    M5StampS3は、Amazonスイッチサイエンス社マルツエレック社などで購入することができます。
  2. M5StampS3にMicroPythonをインストールする
    前回の記事を参考にMicroPythonをインストールします。
  3. ランダム関数の紹介
    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']
>>> 
  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_rnd.py」としました。
  1. 下記コードをエディターで記入する
    「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のタイマー設定
  1. 「led_rnd.py」を実行する
    左のエクスプローラにて、「led_rnd.py」を選択して、右クリックから、「Run current file on Pico」をクリックすると、M5StampS3上のLEDが赤が点滅しますが、少しわかりづらいかもしれませんが、3回それぞれ濃さが異なります。
  2. 「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のタイマー設定
  1. 「led_rnd.py」を実行する
    左のエクスプローラにて、「led_rnd.py」を選択して、右クリックから、「Run current file on Pico」をクリックすると、M5StampS3上のLEDが点滅しますが、3回それぞれ色が異なります。

まとめ

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

類似投稿