🌈

Raspberry Piに接続したマトリックスLEDにProcessingで作ったアニメーションを表示させる

2024/12/12に公開

はじめに

Processingはビジュアルアートやインタラクティブな作品を作ることができるプログラミング環境です。
プログラミング初心者でも基本的な文法を学ぶだけでグラフィックの描画が簡単にできるので、幅広い層に使われています。
オリジナルのProcessingはJavaで動作しますが、JavaScriptやPythonの実装などもあります。

また、最近マトリックスLEDを使ったサイネージを多く見かけます。広告用の大型ディスプレイはもちろんアート作品にも多く用いられています。
マトリックスLEDは発色が良く、応答性も高いため、非常に表現力があります。たとえばこのような作品があります。

https://x.com/andreasgysin/status/1696228876634947718

しかし、マトリックスLEDを動かすには電子工作の知識が必要なので、ちょっと敷居が高いのではないでしょうか。

本記事ではProcessingで作った作品をマトリックスLEDに表示させるための環境をつくってみたので、ご紹介します。

こんな感じのものが出来上がります。

https://youtu.be/3p5c7FKNuWI

※まだ、手順の再現性を確認していないので、情報が抜けているかもしれません・・・。ご容赦ください。

しくみ

まず、マトリックスLEDを動かすためには電気信号を送る必要があります。HUB75というコネクタ経由で送るのですが、PCから送るためにはコンバータなど専用の機材が必要になります。

マトリックスLEDを裏から見るとこんな感じ

ここではRaspberry Piを使って、信号を送ります。Raspberry Pi用にマトリックスLEDを動かすためのライブラリrpi-rgb-led-matrixこれを使います。Raspberry PiとマトリックスLEDはAdafruitから出ているAdafruit RGB Matrix Bonnet for Raspberry Piという基板を使います。

Processingは本来、PCの画面上に描画するようにできているため、直接マトリックスLEDすることができません。その一方で、上記のrpi-rgb-led-matrixはC言語やPython用ですので、Processingから直接使うことができません。

そこで、まずPythonで画像をマトリックスLEDを描画するプログラムをつくります。このPythonのプログラムに対して、Processing内で描画した画面を送るという二段構えで、Processingで作った画面をマトリックスLEDで表示できるようにします。

具体的にはProcessingでつくった画面を一旦PNG形式に変換し、ソケット通信でPythonのプログラムに送って、PNG画像をマトリックスLEDに表示します。まとめるとしたのような構造になっています。

ソースコードはこちらです。

必要なもの

動作方法

以下の通りで動作できるはずです。

  1. rpi-rgb-led-matrixのPython用ライブラリをドキュメントに従ってインストールする。
  2. Processingをダウンロードしてインストールする。
  3. Python側のプログラム実行に必要なライブラリ(pillow, websockets)をインストールする。
  4. 作成したソースコードをこちらからダウンロードもしくはクローンする。
  5. main.pyを実行する。
  6. Processingを起動し、本リポジトリのprocessing/sampleを開く

こんなものを作ってみました。

https://youtu.be/YLjH0Uxko34

https://youtu.be/XtIe02cU_2U

まとめ

マトリックスLED楽しいので、ぜひ使ってみましょう!

Discussion