一個簡單到不行的 MicroPython 控制 WS2812b 的 NeoPixel 函式庫, 現在就開始試試.
主要功能介紹:
- 開 / 關 / 閃爍
- 360色七彩霓虹燈
- 指定 65535 種 RGB 組合顏色
- 隨機顏色
- 指定單顆燈珠的顏色控制
- 進階範例: 指定顏色間的無縫轉變
安裝函式庫
首先, 必須先上傳函式庫到 MCU 板子上 !
應用範例
假設 NeoPixel 燈條上有 8 顆燈珠, 信號線是連到 GPIO 14 腳位, 亮度設為 30:
config = {'pin':14, 'pixels':8, 'bri':30}
import utime as time
from MyKit_NeoPixel import myNeoPixel
np = myNeoPixel(config['pin'], config['pixels'], config['bri'])
❤️🔥 範例一: 開 / 關 / 閃光燈
- on(i): 亮
- off(i): 滅
- i: 指定燈珠, 預設不指定為全部燈珠一起亮滅
def test():
for _ in range(3):
np.on()
time.sleep_ms(200)
np.off()
time.sleep_ms(200)
test()
❤️🔥 範例二: 360色七彩霓虹燈
- on_360(c, i): 360色盤指定色
- c: 0 ~ 360
- i: 指定燈珠, 預設不指定為全部燈珠一起亮滅
def test():
for c in range(360):
np.on_360(c) # 360 色色盤
❤️🔥 範例三: 指定 65535 種 RGB 組合顏色
- on_rgb((r,g,b), i): 255x255x255 指定色
- r,g,b: 紅色藍的色值 0~255
- i: 指定燈珠, 預設不指定為全部燈珠一起亮滅
def test():
for r in range(256):
np.on_rgb((r, 0, 0))
for g in range(256):
np.on_rgb((0, g, 0))
for b in range(256):
np.on_rgb((0, 0, b))
❤️🔥 範例四: 隨機顏色
- on_random(i): 系統自動給色, 用戶無須指定
- i: 指定燈珠, 預設不指定為全部燈珠一起亮滅
def test():
for _ in range(5):
np.on_random()
time.sleep(0.5)
❤️🔥 範例五: 指定的單顆燈珠顏色
如上範例, 只需在輸入參數, 指定燈珠編號 i, 就能只控制單顆燈珠, 而非一起運作, 以範例一略作修改如下, 只亮第 3 顆 (編號由 0 開始算起):
def test():
for _ in range(3):
np.on(2)
time.sleep_ms(200)
np.off()
time.sleep_ms(200)
test()
❤️🔥 進階範例: 指定顏色間的無縫轉變
- on_transform(rgb1, rgb2, 幾等分):顏色由 rgb1 變換至 rgb2, 過程有幾次的漸層變換
- 回傳值為一個 iterable (迭代) 變數
- 如下 ((255,0,0), (0, 255,0), 100): 由紅變換到綠, 過程中出現100個漸層顏色
def test():
rgb_gen = np.on_transform(rgb1, rgb2, 100) # 顏色變換切成 100 等分
for (r, g, b) in rgb_gen:
np.on_rgb((r, g, b))
time.sleep_ms(30)
❤️🔥 範例X: 以上控制燈條或單顆燈珠, 加上各顏色的變化, 發揮您的想像力, 就可組合出無限創意的燈光秀. 例如, 波浪式的色組往前往後進, 奇幻彩虹, 或舞台的燈光秀…等等
若覺得此文真對您有幫助, 點點左上方的拍手圖示, 鼓勵一下。若還想 請喝杯咖啡 鼓勵一下勇哥的繼續創作, 也感謝 😘 😘 !!
Yungger 勇哥
Maker & Freelancer