マイコン内蔵LED
Raspberry Piでマイコン内蔵LEDを光らせてみます。
赤外線学習リモコンR2-D2に電飾を仕込むための要素技術確認です。
必要なもの
ハードウェア
項目 | 説明 |
---|---|
Raspberry Pi | ARMプロセッサを搭載した名刺サイズの超小型コンピュータ。GPIOポート(汎用入出力ポート)を備えており、各種外部機器を操作できる。 |
フルカラーシリアルLEDテープ | WS2812S(NeoPixel)というマイコン内蔵LEDをテープ上にしたものです。つながったままでも、1個ずつ切り離しても使えて便利です。&br;秋月電子通商などでも同様のものを販売しています。 |
TXB0104搭載電圧レベルシフタ | 信号の電圧レベルを変換するもの。Raspberry PiのGPIOは3.3V、WS2812Sの動作電圧は5Vのため、使用します。&br;目的が果たせれば他の製品でも構いません。 |
ブレッドボード用マイクロ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テープの1. 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番ピン)を使う場合は、上記の設定は不要です。