2021年07月30日 更新
どうも、クラゲです。
今回はRaspberryPiでLEDスティックやLEDシリアルテープを点灯させます。
ArduinoではAdafruitのNeoPixelライブラリが有名でたくさん情報がありますが、ラズパイで点灯させるときの情報が少ないので、まとめました。
LEDスティック(下記どちらでもOK)
http://akizukidenshi.com/catalog/g/gM-14307/
http://akizukidenshi.com/catalog/g/gM-08435/
※フルカラーLEDシリアルテープでもOK
ジャンパー線 オスーメス 3本
LEDスティックやLEDシリアルテープの制御電圧が5V必要であることに対し、RaspberryPiのGPIO電圧は3.3Vであるため、直結はスペック上NGです。
本来であれば、以下のように間にロジックレベル変換ICを挟むべきです。
しかし、今回はプロトタイプという事で、実力で点灯できる直結での紹介を行います。
3端子にジャンパー線をハンダ付けします。
ポイントとして、LEDスティックやLEDシリアルテープには入力と出力があります。基板の裏を見て、DIN
と書かれた端子がある側が入力で、DOUT
と書かれた端子がある側が出力です。出力側はさらにLEDを連結させるための端子です。
今回のジャンパー線は入力側に付けないと点灯しませんのでご注意ください。
赤線は5V、黒線はGND、白線はGPIO18に接続します。
こちらのGitHubにあるライブラリを利用します。
https://github.com/jgarff/rpi_ws281x
まずはGitHubからダウンロード
git clone https://github.com/jgarff/rpi_ws281x.git
このライブラリをビルドするためにsconsをインストールします。
sconsはmakeユーティリティの代替です。
sudo apt-get install scons
ダウンロードしたファイルをsconsでビルドします。
cd rpi_ws281x
sudo scons
試しに実行
レインボーに光ればOK。
sudo ./test
先程のライブラリはC言語なので、Pythonでそのまま使えません。
そこでswigをインストールします。swigはC/C++ で書かれたプログラムやライブラリを、Python言語などに接続するためのオープンソースのツールです。
cd python
sudo apt-get install python-dev swig
sudo python ./setup.py install
pythonのサンプルを実行
cd examples
sudo python strandtest.py
strandtest.pyはLEDの数が16個想定なので、LEDスティックの場合は8個に変更した方がより正確なタイミングで光ります。
#LED_COUNT = 16
LED_COUNT = 8
現状のままだとアナログオーディオと併用できないので、接続ピンをGPIO18からGPIO21に変更する必要があります。
プログラムでもピンを変更する必要あります。
#LED_PIN = 18
LED_PIN = 21
ちなみにGPIO21を使うと、今度はI2Sなどが使えなくなるので注意が必要です。
以上、ラズパイでLEDスティック点灯でした!