Circuit Playground Express の各種機能を試す(2)
環境::
- CircuitPlaygroundExpress : Bootloader 3.10.0
- CircuitPython : 5.0
ライブラリで色彩/明度/彩度 を扱う
どちらかといえば CircuitPython の機能で、 ライブラリ からコピーして使う。
全部のライブラリをコピーはできないので、今回使うものだけ。
この上で
import time import board import neopixel import adafruit_fancyled.adafruit_fancyled as fancy npx = neopixel.NeoPixel(board.NEOPIXEL, 10, auto_write=False) while True: for pp in range(10): h = (pp * (1.0/10)) hsvcolor = fancy.CHSV(h, 1.0, 0.2) npx[pp] = hsvcolor.pack() npx.show() time.sleep(0.2)
すると
綺麗なグラデーションですね…
光学センサーで明るさ計測
import time import analogio import board light = analogio.AnalogIn(board.LIGHT) while True: print((light.value,)) time.sleep(1.0)
としたとき部屋の蛍光灯でこんな感じです
(3168,) # 蛍光灯の光 (3136,) (800,) # 手で隠した (720,) (720,)
タッチセンサー
タッチセンサーによって LED の色を変動させるプログラム
タッチセンサーは周辺の穴の空いた端子ですが、今回 A1, A2, A5, A6 を使います。
以下の写真にそれぞれの配置がプリントされてます。
A シリーズはすべて操作可能なのはわかってましたが、RGB いじりたいだけでしたので今回は避けました。
import time import board import neopixel import touchio from simpleio import map_range # LED セットアップ npx = neopixel.NeoPixel(board.NEOPIXEL, 10, auto_write=True) # タッチセンサーを設定する touch_A1 = touchio.TouchIn(board.A1) touch_A2 = touchio.TouchIn(board.A2) touch_A5 = touchio.TouchIn(board.A5) touch_A6 = touchio.TouchIn(board.A6) # 色のセット r_in = 0 g_in = 0 b_in = 0 while True: # タッチするセンサーによって RGB を決定 if touch_A1.value: r_in += 1 if touch_A2.value: g_in += 1 if touch_A5.value: b_in += 1 if touch_A6.value: r_in -= 1 g_in -= 1 b_in -= 1 # 0 - 255 までに抑える r_in = 0 if r_in < 0 else r_in g_in = 0 if g_in < 0 else g_in b_in = 0 if b_in < 0 else b_in r_in = 255 if r_in > 255 else r_in g_in = 255 if g_in > 255 else g_in b_in = 255 if b_in > 255 else b_in # LED に色を書き込む npx[7] = (r_in, g_in, b_in) time.sleep(0.2)
でちょっとやってみたのがこの 2 枚
タッチ時間によって色が変化します。