2018年01月15日

Raspberry PiのGPIO操作(3)NeoPixelを光らせる

rpi-8x8-neopixel.jpg

以前aliexpressで購入した8×8のNeoPixelボードをRaspberry Pi Zero Wにつないでみました。
(おそらくこれと同じものだと思います。価格は1/5くらいでしたが・・・)

ソフトウェアは、こちらのツールを使いました。

jgarff/rpi_ws281x: Userspace Raspberry Pi PWM library for WS281X LEDs

解説がこちらにあります。

Overview | NeoPixels on Raspberry Pi | Adafruit Learning System

NeoPixelは以前も書いたように1ビットの信号線で色信号を送ります。
この信号はかなり高速で、Linuxの上でソフトウェアでGPIOをオン・オフしていては間に合いません。
そのため、上記のソフトウェアではRaspberry Piのハードウェア機能のうち、シリアル通信を高速に行えるSPI、PWM、PCMのいずれかを使用して信号を送るようになっています。

今回はSPI(GPIO10/SPI0_MOSI)に接続してみました。電源は3.3Vに接続します。5Vだと信号がうまく送れないようでした。

まず、
sudo raspi-config
で「5 Interfacing Options」を選択し、SPIをenabledにしておきます。
また、ソフトウェアのビルドにsconsというツールが必要なので、これも
sudo api-get install scons
でインストールしておきます。
sconsは初めて使いましたが、Software Constructerの略でmakeの代わりになるようです。

git clone https://github.com/jgarff/rpi_ws281x
でソフトウェアをダウンロードし、
scons
でビルドできます。
testというコマンドが作成されますので、
sudo ./test -g 10 -c
で起動してみます。
これでLEDが点灯すればOKです。

ちなみに、Pimoroniからもunicorn HATが出ていて、ソフトウェアも提供されていますが、このソフトウェアが使えるかどうか試してみたところ、LEDの配列が違っているようです。

Adafruit版は
  1  2  3  4  5  6  7  8
9 10 11 12 13 14 15 16
と並んでいるのに対し、Pimoroni版は
  8  7  6  5  4  3  2  1
9 10 11 12 13 14 15 16
というように一筆書きで並んでいました。

そこだけ修正すれば利用することができます。
unicorndというデーモン形式のソフトウェアがあるので、NeoPixelを出力デバイスとして使用する場合には便利かもしれません。
posted by boochow at 23:56| Comment(0) | Raspberry Pi | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
人気記事