Raspberry Pi Pico でバーサライタ製作 (C/C++) ーRaspberry Pi Picoへの道6ー

Home > Raspberry Pi > Raspberry Pi Pico でバーサライタ製作 (C/C++) ーRaspberry Pi Picoへの道6ー
すき 1
うんこ 0

前回はフォトリフレクタによる割り込みでLED制御を試しました。

SPI入力LEDを堪能 (C/C++) ーRaspberry Pi Picoへの道5ー

今回はついにRaspberry Pi Pico でバーサライタを製作しました。

 

 

バーサライタ構成

構成はこれまで製作してきたハンディーバーサライタ PovRanianと同様です。

バーサライタ装置の製法

 

モータを安定化電源(1V)で給電して回転部を回します。回転部には24セルのLEDのほかに回転を検出するフォトリフレクタとRaspberry Pi Picoが載っており、給電にはワイヤレスチャージモジュールを使用しています。

フォトリフレクタとRaspberry Pi Pico間にはチャタ防止にフィルタとシュミットトリガを挿入しています。

部品

  • Raspberry Pi Pico

     
  • SPI 入力LEDテープ

     
  • フォトリフレクタ QTR-1A

     
  • シュミットトリガ

     
  • ワイヤレスチャージモジュール

     
  • マブチモーター RS-540SH

 

 

バーサライタ分解能

Raspberry Pi Pico によるバーサライタができましたので、1周の分割数をどれほど大きくできるか試してみます。
これによりRaspberry Pi Pico の実力を測れるのではないかと考えました。

Cコード

フォトリフレクタで1周の時間を計測し、その時間を変数Divで分割して色分け(RGBYの4色)してLEDを点灯させるプログラムをです。

 

4分割

まずは Div = 4で動作確認しました。

400分割

Div = 400 まで増加させても問題なく点灯動作を確認できました。
SPIのクロックSERIAL_FREQ は30MHzとしました。これ以上大きくするとLED表示が正常に実施されませんでした。

Raspberry Pi PicoのIO は非常に高速に動作できるのだと実感できました。

 

画像表示

このままRGBYの4色で分割数上げてもよくわからなくなってきたのでアニメ画を表示してみます。

回転速度 960rpmで1周1000分割でも余裕でアニメ表示ができました!!

回転方向の分解能が大きくてもLEDが24セルですので少し寂しいですね 🙄 

 

性能指数

これまでいろいろなマイコンでバーサライタを製作してきましたので、独自の性能指数を設けております。

性能指数 [hPOV(ヘクトポブ)] = LED数 × 回転数 × 一周の分解能 ÷ 100

現状 Raspberry Pi Picoの性能指数は
 LED 24個 × 回転速度 960rpm × 1000分解能 ÷ 100 = 230,400 hPOV
となりました。

以下が過去のその他マイコンの実績値ですので、Raspberry Pi Picoの性能がうかがい知れます。

  • Teensy 4.0:LED 64個 × 回転速度 530rpm × 200分解能 ÷ 100 = 67,840 hPOV
  • ESP32(デュアルコア):LED 58個 × 回転速度 730rpm × 220分解能 ÷ 100 = 93,148 hPOV
  • SPRESENSE(3コア):LED 57個 × 回転速度 730rpm × 400分解能 ÷ 100 = 166,440 hPOV

 

おわりに

Raspberry Pi Pico によって信じられないほど回転方向の分解能の高いバーサライタ動作を確認することができました。

今後はLEDのセル数を増やすべくSPIの複数出力やマルチコア動作を検討したいと思います。

それでは次の道でお会いしましょう!

次の記事

Raspberry Pi Pico バーサライタ解像度向上 (C/マルチコア) ーRaspberry Pi Picoへの道7ー

コメントはこちらから

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

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