8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ラズパイでNeoPixel(マイコン内蔵RGB LED)を手軽に激しくLチカする方法

Last updated at Posted at 2020-01-26

LED_ws281x.JPG

ラズパイでNeoPixelを激しくLチカ

 ラズパイで派手にLEDを光らせたいときありますよね。私はあります。

 意外にもやったことなかったので、手順をメモします。

 使用したのは、以下のLEDテープです。買ったまま放置していました。

ハードウェア準備

 用意したのは以下です。

  • ラズパイ4
  • ICクリップ
  • LEDテープ

 LEDテープはとりあえず3つくらいに切っておきます。使用するLEDは電流を考慮して決めましょう(ここでは説明は省略します)。

 接続は、以下のサイトを参考にして下さい。

ソフトウェア

 以下2つのサイトが参考になりました。

ラズパイでLEDスティック点灯

ラズベリーパイでNeoPixelを使う

 ほとんど上記のサイトのままですが、自分の環境に合わせて少し変えたりしたので、まとめておきます。詳細は、上記のサイトの方を参照して下さい。

 そのうちスクリプト化するかもです。

rpi_ws281xライブラリのセットアップ

 まずは、以下コマンドでrpi_ws281xライブラリをビルドします。sconsというのがmakeの代わりらしいです。

$ sudo apt-get install scons
$ cd && git clone https://github.com/jgarff/rpi_ws281x.git
$ cd rpi_ws281x
$ sudo scons

rpi_ws281xのpythonラッパープログラムセットアップ

 続いて、ラッパープログラムをインストールして、サンプルをダウンロードします。

$ sudo pip3 install rpi_ws281x
$ cd && git clone https://github.com/rpi-ws281x/rpi-ws281x-python

サンプルを動かす

 以下でサンプルを動かすと、LEDが綺麗にピカピカします。

$ cd ~/rpi-ws281x-python/examples
$ sudo python3 standtest.py

 ただし、このままだとCTRL+Cでプログラムを終了してもLEDが眩しいです。プログラム終了時にLEDをOFFしたい場合は、以下のように-cオプションをつけましょう。これで終了するとLEDがオフするようになります。

$ sudo python3 standtest.py -c

 使用するピンを変えたいときは、standtest.pyのLED_PIN = 18を編集すれば簡単に変えられます。18pinだと、アナログオーディオが死んでしまうので、オーディオ使いたいときは別のピンにしましょう(私はとりあえず参考にしたサイトに従い、21pinにしました)。

もっと長いLEDテープでLビカ(LEDビカビカ)する場合

 ラズパイ4で以下のように繋げます。

IMG_4217.JPG

IMG_4218.JPG

IMG_4219.JPG

 サンプルプログラムでビカビカ。LEDの個数のパラメータは調整しておきましょう。

 ラズパイ3だと電源回路の過電流保護にひっかかってしまうかもしれません。

 直接ピンヘッダの5Vに給電するか、5Vは根本で分けたほうが良いかもですね(電流次第)。

まとめ

 ラズパイで激しくLチカしました。楽しいですね。

関連記事

変更履歴

  • 2023/05/27 Lビカやサンプルプログラムの注記を追記
8
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?