LEDパネルでドット絵表示

ツイッターで見かけたLEDパネルを作ってみる!

zerotaro さんの作品と、PikaPikaらいとさんの作品をみて、類似品を作ってみることにした!

https://twitter.com/KPmilk3/status/1469949365339176960

LEDパネルをどうするか

手元にNeoPixelのテープLEDがあるので、zerotaroさん方式でやってみようと思って検討してみたのだけれど、手持ちのテープLEDは1mに144LEDのものと1mに60LEDのものだった。

なるべく密度高めで作りたかったので1mに144LEDのほうを使おうとしたところ、LEDの間隔(約7mm)に対してテープの幅(12mm)が太すぎて、テープをぴっちり並べても正方形ドットを表現できないことに気が付いた。

もともとテープ折り返しの部分のはんだ付け面倒そうだなぁと思っていたのも相まって、ありものの16x16LEDパネルを使うPikaPikaらいとさん方式に切り替えた。

LEDパネルが売ってない?!

PikaPikaらいとさんの購入先を見に行くと、8×8と8×32のパネルはあるけれど、16×16は売っていない様子。

AliExpressを見に行くと、16×16が3枚セットで3400円ぐらいだったので、とりえあず注文。到着が3/30予定になっていたけど、3/16までに完成させたかったので、国内で売ってないか探してみたところ、秋月通商で1枚3800円で売ってるのを発見😢。送料+500円で合計4300円で1枚購入。AliExpress分と合わせて計算すると1枚1900円ぐらいに薄まるはず。

マイコンはSeeeduino XIAOに決めた

以前調べた小さいマイコンたちのうち、Seeed XIAO BLEがバッテリーチャージャー付なので魅力的なんだけど、まだ日本で販売されていないぽい。(IMUなしのほうを1つだけ買ったけど、技適あり版が欲しい!)

ということで、Seeeduino XIAOを使うことにした。(あらためて表を見返してみたらSeeed XIAO RP2040を試してみてもよかった。せっかく買ったのにこちらも使ってない……)

ソフトは適当に作った

画像をコードに置き換えるのが面倒だったので、こちらのサイトを使わせてもらった。Web系?を想定されているのか、頭に0xではなくて#がつくので、#を0xに置換。int型配列にRGBの3バイト分をいれてるのでちょっと無駄があるけど、気にしない!実行時に1バイトずつシフトしてRGB取り出している。あと、電流たくさんになるのが怖いので明るさ4分の1にしている。コードぐちゃぐちゃだけど、あとでgithubに追加するつもり。

2022/3/19追記
登録した!
https://github.com/yusukeyusuke/pixelart-led-panel

画像の色とLEDの色は全然違う

いつも思うけど、画面上で見てる色と、LEDで表現した色は全然違うように見える。画面上ではかなり暗めに調節したほうがよい気がする。

枠を印刷

LEDパネルをドット絵らしくみせるための秘訣は四角い枠と拡散用の半透明の板。以前、3Dプリントのデータに一時停止の命令を入れておいて、その間にフィラメントの色を変えるという技を覚えたんだけど、今回は白と黒の同素材のフィラメントがないのでこの技は使えず。(もしかすると、途中で温度も変えるように設定しておけばいけなくはないのかも)

枠のSTLデータも後ほどgithubに登録するつもり。

2022/3/19追記
登録した!
https://github.com/yusukeyusuke/pixelart-led-panel

黒い枠はPCで、白い薄い拡散板はPLAで印刷した。

枠に拡散版を重ねる(この枠はお試し印刷の白枠)
上半分が黒枠、下半分が白枠。黒のほうがドットの輪郭がはっきりする

XIAOをケースにいれて完成!

最後に

今回はLEDパネルを使ったけど、zerotaroさん方式で任意の形状を表現できるのもやってみたい!!