LEDを点けたり消したりするだけでは少しつまらないので、キャンドルの炎のように光るLEDをプログラミングしてみましょう。
最近提供を開始したRP2040やSTM32の開発ボードには、少なくとも1つのカラーLEDが搭載されているので、開発ボードだけでこのLEDキャンドルを楽しむことができます。
LEDの前に薄いティッシュペーパーなどを置いて光を拡散させて、部屋を暗くしてみると、(それなりに)キャンドルのように見えます。
from machine import Pin
from neopixel import NeoPixel
import time
import math
def yuragi(x): # 1/fゆらぎの生成
if x < 0.5:
v = x + x*x*2
else:
v = x-(1-x)*(1-x)*2
if math.fabs(v - x) < 0.005:
if v > 0.5:
v = v - 0.01
else:
v = v + 0.01
return v
rgb = NeoPixel(Pin('LED2',Pin.OUT), 1) # 'LED2'は開発ボードに合わせ'RGB'など適切な端子機能名に変更
xt = 0.1 # 初期値
while True:
xt = yuragi(xt)
# print(xt)
rgb[0] = (55+int(xt*200),30,0) # 赤色をの明るさをゆるがせて、ベースに少し薄く緑色を追加
rgb.write()
time.sleep_ms(50)