Home Made Garbage

狭ピッチ LED バーで SPRESENSE バーサライタを堪能

ホーム
電子工作
Raspberry Pi
IOT
WEB

以前購入したじゃじゃ馬 128セルのLEDバーを用いてバーサライタしてみましたので、もう少しだけ詳しく記載いたします。

APA102-2020の再考 - バーサライタへの応用 –

 

LEDバー

使用したLEDバーはAdafruitの商品で、2mm角のSPI入力LEDが128個 3mmピッチで1列に配置されています。

Look, just bolt this to your ceiling fan already - we know that's the first thing you thought of! OK, so you already know what DotStar LEDs are - those digitally controllable LEDs that ...

こちらのチップの色輝度は600HzほどのPWMで調光されるため、高速点灯が必要なバーサライタには向きません。しかし色輝度を0かMAXでのみ使えば低周波PWMの影響を受けないのでバーサライタ表示が可能となります。故に8色しか表示できませんが。。。

グローバル輝度(5bit)は電流量で調光されておりましたので今回は0~31中の最も低い輝度1で使用します。それでもかなり明るいです。

LEDのリフレッシュレート等の詳細は以下ご参照ください。

APA102 vs APA102C -フルカラーLEDのリフレッシュレート-

構成

LED以外は過去に製作したSPRESENSE バーサライタと同じです。

部品

LED加工

LED 128セルを半径として回すのは、物理的、信号的にもしんどいと考えLEDバーを半分に切りました。

 
切ってもちゃんと動きます。LED1個は切断してなくなりましたが。。

 

これで64セルと63セルのLEDバーとなりました。それぞれSPRESENSEのSPI5とSPI4に接続しました。

 

Arduinoコード

マルチコアプログラミングで3つのCPUを使用しました。

  • Mainコア:フォトリフレクタで回転を検出して2つのSubコアに発光タイミングを送信
  • Sub1, 2コア:Mainコアからのタイミングを受けてSPIテープLEDを発光

コードは以前のものとほぼ同じでLEDのセル数のみ変えています。

画像色データ生成

画像をもとに表示映像データを生成したのですが今回は前述のLED駆動の問題によりRGBそれぞれ輝度0かMAX(255)しか表示できません。
そのため元画像のRGBを取得して閾値以上でMAX、以下で0に変換して、さらにバーサライタ用に極座標変換して表示データファイルを生成しました。

動作

LED127セル点灯を回転スピード約530rpm で1周100分割で実現できました。1周の分解能はもう少し上がってもいいように思いますがLEDの応用性が影響しているように思います。120分割以上にすると末端のLEDの色が正確ではない色になりました。

SPI周波数はコード上38MHzにしていますが、実際の出力は不明です。高速オシロ持っていないので。。。ただ信号スピード的にはまだ余裕あるはず(たぶん)なので恐らくLED自体の応答速度かと思われます。

8色しか出ませんが縦方向の分解能が上がったおかげで絵として鮮明な表示が可能となりました。

たいへん喜ばしい限りです。回転方向の分解能はLEDの数量減らすなどの検討が必要そうです。

引き続きPOVりたいと思います。

 

Related Posts

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください