- Published on
Raspberry Piに「WS2812B」を接続し制御する
1251文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは小型で高性能なシングルボードコンピュータであり、様々なプロジェクトに利用されています。本記事では、RGB LEDストリップである「WS2812B」をRaspberry Piに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. WS2812Bの概要
WS2812Bは、RGB LEDが1つのパッケージに統合されており、単一のデジタルピンから制御できるLEDストリップです。各LEDは独立して制御可能であり、様々な色や効果を生成することができます。
2. WS2812Bの接続
まず、WS2812BをRaspberry Piに接続します。通常、以下の3つの線があります。
- 5V: 5Vの電源
- GND: 接地
- 信号線: デジタル信号
これらを対応するRaspberry Piのピンに接続します。
3. 必要なライブラリのインストール
WS2812Bを制御するために、Raspberry PiにはAdafruitのNeoPixelライブラリが必要です。以下のコマンドでインストールできます。
sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel
4. Pythonコードの作成
次に、Pythonコードを作成してWS2812Bを制御します。以下は、全てのLEDを赤、緑、青に順番に点灯させる例です。
import time
import board
import neopixel
# WS2812Bの設定
pixel_pin = board.D18 # デジタルピン18に接続した場合
num_pixels = 8 # LEDの数
ORDER = neopixel.GRB # カラーオーダー
pixels = neopixel.NeoPixel(
pixel_pin, num_pixels, brightness=0.2, auto_write=False, pixel_order=ORDER
)
# 色の定義
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)
# 全てのLEDを順番に点灯
for i in range(num_pixels):
pixels[i] = red
pixels.show()
time.sleep(1)
pixels[i] = green
pixels.show()
time.sleep(1)
pixels[i] = blue
pixels.show()
time.sleep(1)
5. コードの実行と動作確認
コードを保存し、実行することでWS2812Bが指定した色で点灯するはずです。必要に応じて、LEDの数や色、光り方を変更することができます。
以上で、Raspberry PiにWS2812Bを接続し、Pythonコードを用いて制御する基本的な手順が完了しました。WS2812Bを使用することで、様々なLEDエフェクトやプロジェクトを実現することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚