logo
Published on

Raspberry Piに「WS2812B」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは小型で高性能なシングルボードコンピュータであり、様々なプロジェクトに利用されています。本記事では、RGB LEDストリップである「WS2812B」をRaspberry Piに接続し、制御する方法について解説します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

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エフェクトやプロジェクトを実現することができます。