マイコン内蔵LED
Raspberry Piでマイコン内蔵LEDを光らせてみます。
赤外線学習リモコンR2-D2に電飾を仕込むための要素技術確認です。
必要なもの
ハードウェア
項目 | 説明 |
Raspberry Pi | ARMプロセッサを搭載した名刺サイズの超小型コンピュータ。GPIOポート(汎用入出力ポート)を備えており、各種外部機器を操作できる。 |
フルカラーシリアルLEDテープ | WS2812S(NeoPixel)というマイコン内蔵LEDをテープ上にしたものです。つながったままでも、1個ずつ切り離しても使えて便利です。 秋月電子通商などでも同様のものを販売しています。 |
TXB0104搭載電圧レベルシフタ | 信号の電圧レベルを変換するもの。Raspberry PiのGPIOは3.3V、WS2812Sの動作電圧は5Vのため、使用します。 目的が果たせれば他の製品でも構いません。 |
ブレッドボード用マイクロBメスUSBコネクタDIP化キット | WS2812Sを光らせるための5V電源を手軽に得るために今回はUSBハブから電源を取ることにしました。 |
ソフトウェア
項目 | 説明 |
rpi_ws281x | Raspberry PiのGPIOでWS2812Sを制御するためのライブラリ。 |
手順
- Raspberry Piの3.3V(1番ピン)とレベルシフタのVccaを接続する。
- Raspberry PiのGND(6番ピン)とレベルシフタのGNDを接続する。
- Raspberry PiのGPIO18(12番ピン)とレベルシフタのA1を接続する。
(GPIO18(12番ピン)を使う場合は注意が必要。後述。) - レベルシフタとシリアルLEDテープを接続する。
- レベルシフタのVccbとUSBコネクタのVbusとシリアルLEDテープの+5Vを接続する。
- レベルシフタのGNDとUSBコネクタのGNDとシリアルLEDテープのGNDを接続する。
- レベルシフタのB1とシリアルLEDテープのDIを接続する。
- 必要なソフトウェアをインストールしておきます。
sudo aptitude install scons sudo aptitude install swig sudo aptitude install python-dev
- テストプログラムで発光テストしてみます。パターンが光ればOK。
cd rpi_ws281x-master/ sudo scons sudo ./test
- Pythonで自由に発光パターンを作るためにセットアップします。
cd python sudo python setup.py install
- 後はrpi_ws281x-master/python/examples配下のstrandtest.pyを改造したスクリプトを書いて、下記のように実行すればOK。
sudo python ~/rpi_ws281x-master/python/examples/a.py
GPIO18(12番ピン)を使う場合
GPIO18(12番ピン)を使う場合は、config.txtを開き、オーディオをオフにする必要があります。
sudo vi /boot/config.txt
# Enable audio (loads snd_bcm2835)
#dtparam=audio=on
GPIO12(32番ピン)を使う場合は、上記の設定は不要です。