NeoPixel でバーサライタ検討

Home > 電子工作 > NeoPixel でバーサライタ検討
すき 0
うんこ 0

以前、M5Stack ATOM Matrix で ハンディーバーサライタを製作を楽しんだのですが、LED25個のマトリクスの1列分である5個のLEDしか使用しておらずもったいないなと感じておりました。

回転計を自作

この”もったいなさみ”を解消するべく今回はLED5個から25個に拡張してバーサライタ製作いたしました。

いわゆるNeoPixel系のLEDでのガチのバーサライタ製作は初めてですので、丁寧に段階を踏んで進めます。

 

 

リフレッシュレート

バーサライタはLEDを高速回転で残像を残して絵を投影しますので、
LEDのリフレッシュレートは非常に重要なファクターなります。

以前各種フルカラーLEDのリフレッシュレートを測定しております。

回転計を自作

 
ここではM5Stack ATOM Matrix搭載のLED WS2812B-2020のリフレッシュレートを測定いたしました。

ATOM Matrixを分解してLEDマトリクス基板を取り出しました。
もう後戻りできません。。。。

リフレッシュレート測定方法

LED1個を全白で点灯させて電源-LED間の10Ω抵抗の電圧降下をオシロ(ADALM2000)で測定しリフレッシュレートを測定します。

測定結果

  • 輝度100%

    リフレッシュレート:1.93kHz

     

  • 輝度50%

    リフレッシュレート:1.96kHz

データシートのとおりリフレッシュレートは約2kHzでした。
意外と早いですね。輝度はデューティで制御されておりました。

データシート信じて進めればいいだろとお思いかもしれませんが、
NeoPixel系の製品は何が本物でコピーかがわからないほど製品が存在し
モノによって性能が異なるので念のため測定いたしました。

 

バーサライタの構築

リフレッシュレート的にはバーサライタとして使用するには十分であると判断いたしましたので製作を進めます。

LED加工

ATOM MatrixのLEDマトリクス基板をぶった切って、バー状にしました。
(こっちのほうがよっぽどもったいないわ!)

 4mmピッチ 25セルのLEDバーが仕上がりました!

 
WS2812B-2020

構成

制御には分解した残りのATOM Matrix基板 (ESP32-PICO)を用いており、
構成はほぼ以前のM5Stack ATOM Matrixを用いたハンディーバーサライタPOV1-ATOMと同じ構成です。

LEDを外に出してデータ線をD22に接続しました。
モータの電源は回転速度調整のため外部の安定化電源に接続しました。

 

 

[オモテ]

[ウラ]

 

動作

バーサライタ動作を検証します。

1周分解能調査

まずは1周する間にLED表示変更できる分解能を調査しました。

モータの回転数を目視で残像が残るギリギリの1秒当たり約10回転(600rpm)に設定し、LEDの色を赤→緑→青→黄で変えて表示させました。

LED点灯のライブラリはFastLEDを使用しています。

1周40分解能が限界値となりました。

 

検証

NeoPixelの書き込みプロトコルは以下の通りです。

LED 25セル書き込む時間は 1.25u × 24 × 25 + 50u = 約0.8 msec  となります。

600rpmで回転させると1周にかかる時間は 0.1 sec ですので、

理論上の分解能は 0.1 / 0.8m = 125 なります。
実際にはマイコンの演算時間なども含まれますので実測は40になりました。

NeoPixelの書き込みプロトコルの性質上、SPI入力のLED使用時のように200分解能以上の達成は不可能であるといえます
(今回のようにシリーズにLEDをつなぐ場合)。

あとリフレッシュレート的にも2kHz (0.5msec)なので600rpm 200分解能は厳しいです。

アニメーション表示

ピッチが狭いので比較的見やすいですが、やはり1周の分解能をあげれない点が厳しいです。

結果 実にもったいない。。。

 

おわりに

狭ピッチでリフレッシュレート4kHz以上で
SPI入力の
LEDバーが欲しい!!

コメントはこちらから

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

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