ついに手を出してしまった。
tl;dr
購入した
もともと8*32ピクセルのNeoPixel系のLEDマトリックスを買ったんですが・・・。
解像度が低く「金沢文庫」という文字もかろうじて読める?レベル。ちょっと厳しいですね。
もともと京急の種別幕を作りたかったのですが、これでは厳しそうだったので、もう少し高解像度の32*64ものを購入。
アマゾンで妙に安かったやつ。中華パネルですが、中身はAdafruitのものと同じそう。とりあえず、このパネルをArduinoやらRaspberry Piで動かしてみました。
Arduinoで動かす
Adafruitではライブラリが用意されているので、そちらを利用しました。
Arduino用のシールドのようなものもあるようですが、今回は下記ページを参考に地道に一つずつ結線。
Connecting with Jumper Wires | 32x16 and 32x32 RGB LED Matrix | Adafruit Learning System
Arduino UNOでとりあえずサンプルコードを動かしてみます。パネルへの電源供給はモバブー(マイコン経由)で5Vを直接焼べています。
なにかしらの絵は表示されているものの、実は32*64のライブラリはArduino UNOでは動かず、MEGAなどが必要とのこと・・・。そして、ESP8266やESP32では動作しないそうなので、ちょっと厳しいです。
Raspberry Piで動かす
そうなると、Raspberry Piで動かすしかないですねぇ。
Arduino同様に、AdafruitはRaspberry Pi向けのコードを公開してるようですが、同社のシールドを使うことが前提のようで、ちょっと使いづらいです。
そこで、サードパーティのライブラリを使ってみようと思います。便利な世の中ですね、とりあえずインストールしてみます。
コマンドラインから使ってみる
とりあえず、リポジトリをクローンして、ビルドします。
git clone https://github.com/hzeller/rpi-rgb-led-matrix/ cd rpi-rgb-led-matrix/ make
また、カーネルモジュールのブラックリストファイルを作成し、initramfsを更新しないとコマンドが使えないため、下記のコマンドも実行して再起動します。
cat <<EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf blacklist snd_bcm2835 EOF sudo update-initramfs -u sudo reboot
その上で、Raspberry Piとパネルを下記のページを参考につないでいきます。
そして、下記のコマンドでサンプルコードを実行すると・・・
sudo ./demo -D0 --led-rows=64
こんな感じで、カラフルな図形が表示されます。やったね。
Pythonから使ってみる
このライブラリ、コマンドライン以外からもパネルを制御できて、Pythonも使えちゃいます。
同様に、下記のコマンドでビルドします。
cd rpi-rgb-led-matrix/ sudo apt-get update && sudo apt-get install python3-dev python3-pillow -y make build-python PYTHON=$(which python3) sudo make install-python PYTHON=$(which python3)
その後、こんな感じでサンプルコードを実行すると・・・
cd samples sudo ./runtext.py -t="@pokiiio" --led-chain=2
おーー。テキストが流れますねぇ。
Python向けサンプルコードでは、画像を読み込んでパネルに表示するものもありました。別途画像編集ライブラリのPIL(pillow)と組み合わせると、夢が広がりそうですね。