NeoPixel¶
neopixel
モジュールを使用すると、個別にアドレス可能な RGB LED ボードである Neopixel (WS2812) を micro:bit で使えます。この neopixel
モジュールを使う場合は、以下のモジュールをインポートする必要があります:
import neopixel
注釈
私たちのテストから、micro:bit の neopixel モジュールは約256 Neopixels まで駆動できます。それ以上のものは、奇妙なバグや問題に遭遇するかもしれません。
NeoPixel はマルチカラーのプログラマブルな面白い LED ボードです。このモジュールには、micro:bit にプラグインするためのすべてが含まれており、以下に示すデモなどのファンキーなディスプレイ、アート、ゲームを作成できます。
neopixel ボードを接続するには、以下のように micro:bit」 を接続する必要があります(これは NeoPixel を端子 0 から駆動したい場合ですが、端子 1 や 2 に接続することもできます)。ワニ口クリップのラベルは、NeoPixel ボードにもう一方の端を取り付ける場所を示しています。
警告
micro:bit の 3V 端子から、一度に8つ以上の NeoPixel に給電しないでください。
8つ以上の NeoPixel を使用する場合は、ネオピクセルの電源端子に別の 3v - 5v 電源を使用する必要があります。
クラス¶
演算子¶
色を書き込んでも表示は更新されません(表示するには show()
を呼び出します)。
np[0] = (255, 0, 128) # 最初の素子
np[-1] = (0, 255, 0) # 最後の素子
np.show() # 更新された値が表示されます
特定のピクセルの色を読み取るには、それを参照するだけです。
print(np[0])
NeoPixel の使い方¶
NeoPixel とのやりとりは、それがタプルのリストであるかのように行えます。各タプルは、特定のピクセルの色の RGB (赤, 緑, 青) の組み合わせを表します。RGB値の範囲は 0 から 255 までです。
たとえば、次のように pin0 に接続された 8 ピクセルの NeoPixel ボードを初期化します:
import neopixel
np = neopixel.NeoPixel(pin0, 8)
それらピクセルを(Python のリストのように)インデックス付けして設定します。たとえば、最初のピクセルを最大照度の赤に設定するには次のようにします:
np[0] = (255, 0, 0)
最後のピクセルを紫色にするには次のようにします:
np[-1] = (255, 0, 255)
ピクセルの現在のカラー値を得るには、インデックス付けして参照します。たとえば、最初のピクセルの RGB 値を表示するには次のようにします。
print(np[0])
最後に、新しい色データを NeoPixel ボードの表示に反映するには、.show()関数を使います:
np.show()
何も起こらない場合、おそらくあなたはこの最終ステップを忘れてしまっているのです..!
注釈
NeoPixel ボードで何か変化が見られない場合、少なくともアップデートしたものが表示されていなければ、 show()
を確認してください。
サンプルコード¶
"""
neopixel_random.py
LED ボードにランダムな色を繰り返し表示します。
このサンプルでは、8 Neopixel のボード(WS2812)を pin0 に接続する必要があります。
"""
from microbit import *
import neopixel
from random import randint
# 8 ピクセルの Neopixel ボードを pin0 に接続されていることを設定
np = neopixel.NeoPixel(pin0, 8)
while True:
# ボードにある各 LED について繰り返し
for pixel_id in range(0, len(np)):
red = randint(0, 60)
green = randint(0, 60)
blue = randint(0, 60)
# 現在の LED を 0〜60 のランダムな赤、緑、青の値に設定
np[pixel_id] = (red, green, blue)
# Neopixel ボード上の現在のピクセルデータを表示
np.show()
sleep(100)