ムスコは電車が好きで、プラレールをいつも弄っています。
最近は情景パーツにもこだわりはじめ、いろんなオモチャを駅の周りに配置したり、仮想の駅にして遊んでいます。
そんな姿を見ていて、LEDの電光掲示板があれば本物の駅っぽくなるかな?と思いつきました。調べてみるとLEDマトリクスはお手頃な値段で入手でき、かつラズパイで制御できる感じだったので、さっそく試してみた内容を記事にしました。
用意するもの
LEDマトリクス
www.switch-science.comRaspberry Pi本体 (僕はRasPi2使用)
【国内正規代理店版】Raspberry Pi 4 Model B/4GB OKdo版【技適マーク付】
- メディア: Personal Computers
- microSD
Samsung microSDカード128GB EVOPlus Class10 UHS-I U3対応 Nintendo Switch 動作確認済 正規代理店保証品 MB-MC128GA/ECO
- 発売日: 2017/04/27
- メディア: Personal Computers
- ジャンパピン メス-メス x13本
※自分は10本しか持っておらず苦労しました…
ラズパイのセットアップ
セットアップがまだの方向けにセットアップ記事の紹介です。安定のからあげさんですね。素直に、巨人の肩の上に立つに限ります。
配線
LEDマトリクスの制御には下記のライブラリを使用させていただきました。
その前提での配線です。
使うライブラリが変わると、それに伴い配線も変わってくるようなので注意です。
https://github.com/hzeller/rpi-rgb-led-matrix
電源は、ちょっとした工作が必要です。
コンセントに繋げられるアダプタが付属されていないので、余っているACアダプタのケーブルを剥いて、接続用のケーブルとはんだでくっつけます。電源の(+)(-)に注意!
ショート防止にカプトンテープがなかったので、マスキングで代用。はんだはいつも通り芋はんだです。
次に信号系の配線です。
画像にしたほうが分かりやすいと思ったものの、結構ごちゃごちゃしてわかりにくいですね。
制御ライブラリに配線の解説ページもあるので、分かりにくい場合はこちらを参照ですね。複数のLEDマトリクスを繋げる場合の配線も書かれています。
rpi-rgb-led-matrix/wiring.md at master · hzeller/rpi-rgb-led-matrix · GitHub
制御ライブラリ導入
先にも紹介したとおり、下記のライブラリを利用します。
https://github.com/hzeller/rpi-rgb-led-matrix
制御ライブラリを入手し、ビルドしていきます。
git clone https://github.com/hzeller/rpi-rgb-led-matrix/ cd rpi-rgb-led-matrix make -C examples-api-use
Image Viewerで画像と投影
今回は電光掲示板の内容を画像ファイルにして、画像をLEDマトリクスに投影させます。
Image Viewerという便利なUtilityがあり、コーディングなしで画像を投影できます。便利!
sudo apt-get update sudo apt-get install libgraphicsmagick++-dev libwebp-dev -y cd utils make led-image-viewer
makeする前にutilsディレクトリに移るのを忘れないように。これで準備は終了です。
実行
準備が整ったので、画像を用意して実行してみます。Image Viewerを使う場合はutilsディレクトリに移動し、./led-image-viewer
で実行です。
まずは山手線の「新宿・池袋方面」って表示を移してみます。 画像は、utilsディレクトリに置いておきます。
オプションは--led-no-hardware-pulse
、--led-rows=16
、--led-cols=32
を付けておきます。
前者について、この制御ライブラリを使う時にラズパイのサウンドモジュールがロードされていると動かないらしく、このオプション無しだと警告出て動かせませんでした。。
後ろ2つは縦横のLED数を指示するものです。
sudo ./led-image-viewer --led-no-hardware-pulse --led-rows=16 --led-cols=32 shinjuku.jpg
うーん、LEDマトリクスの解像度に対して文字が複雑でしたね。文字の配置はそれっぽいけど、何書いているかは読めない…
簡単な画像で試してみましょう。
sudo ./led-image-viewer --led-no-hardware-pulse --led-rows=16 --led-cols=32 nozomi.png
おお、これは悪くない。画像を調整すれば、もっときれいに映せそうです!
その他 デモ
Image Viewer以外の、通常の制御ライブラリに備わっているデモも動かしてみました。rpi-rgb-led-matrixのディレクトリで実行します。
回転するカラフル四角形
sudo examples-api-use/demo --led-no-hardware-pulse --led-rows=16 --led-cols=32 -D 0
光ったー pic.twitter.com/JBzWUFCs27
— t_emcee@忙しさ★★ (@t_emcee) January 26, 2020
画像スクロール
sudo examples-api-use/demo --led-no-hardware-pulse --led-rows=16 --led-cols=32 -D 1 -m 20 /home/pi/rpi-rgb-led-matrix/examples-api-use/runtext16.ppm
いいゾ〜これ pic.twitter.com/dTMrXlCEmN
— t_emcee@忙しさ★★ (@t_emcee) January 26, 2020
時計表示
sudo examples-api-use/clock --led-no-hardware-pulse --led-rows=16 --led-cols=32 -f ./fonts/helvR12.bdf -C 47,217,122
時計表示 pic.twitter.com/stoqvATNZl
— t_emcee@忙しさ★★ (@t_emcee) February 8, 2020
まとめ
LEDマトリクスを使って、電車の電光掲示板風な表示をさせてみました。
制御ライブラリがかなりしっかりしており、コード不要で多くのことができそうです。画像を交互に表示させたりとか、ですね。
動画を変換してLEDで表示したり、スマホから表示を切り替えたり、皆さん色々な活用をしているようでした。ラズパイならではの使い方として、センサを使って温湿度を表示したりもありました。応用が広いですね~。
自分も、ちょっと応用考えていきたいです。あとは外装も、ですね。最終的にムスコが使えるようにしたいので、危険が内容にケーブル保護したりむき出しの実装部品をカバーしたり、あとはLEDの強い光を近くで見ないような配置にしたり…。考えることは盛りだくさん。これからも楽しめそうです。
参考にしたページ
Raspberry PiでつくるLED行先表示器 概要編 - ぐりこ製作所日報
ラズパイ3でRGBマトリクスLED(16×32)を輝かせて遊ぶ話 - Qiita
Raspberry PiでP3 RGB LED Matrix Display 64×32 を動かすまで - YOMON8.NET
Raspberry Pi で LED時計を作ってみた その1 〜 軽く前置き – A-tak
https://learn.adafruit.com/32x16-32x32-rgb-led-matrix/
こんな記事も書いています。
temcee.hatenablog.com