工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino Dueで作る美しいPOVシリンダー – ステップバイステップガイド

部品と材料

部品数量
Arduino Due1
HC-06 Bluetoothモジュール1
LPD8806 LED RGBストリップ IP20 60 LEDs/m - 30 ICs/m (1m)1
可変出力リニアレギュレータ (LM317等)1
Texas Instruments 汎用デュアルオペアンプ1
抵抗 20kΩ3
抵抗 220Ω1
抵抗 1kΩ2
汎用NPNトランジスタ1
コンデンサ 1000µF1
コンデンサ 100nF1
コンデンサ 1µF1
抵抗 240Ω1
トリミング抵抗 1kΩ1
IR送信機 (汎用)1
IR受信機 (汎用)1
ブレッドボード (汎用)1
発泡スチロールシリンダー (直径20cm、高さ10cm)2
電動モーター 12V (XDRIVE 545-1)1
クラウンギア 60T 8mm1
クラウンギア 12T 3.2mm1
タイミングベルト 80T 6×200mm1
ネジ付きバー M8 125mm3
ネジ付きバー M8 330mm (シャフト用)1
コンタクトリング ASL90171
粘着テープ (黒、48mm幅)1
合板ディスク (直径150mm、厚さ10mm)2
アルミディスク (直径200mm、厚さ2.5mm)2

必要な工具と機械

アプリとオンラインサービス

プロジェクト概要

はじめに

これは私の最初のArduinoプロジェクトです。Persistence of Vision (POV) ディスプレイを作成したメイカープロジェクト [2,3,4] に触発されました。

残像効果 (POV) は、複数の離散的な画像が人間の脳内で単一の画像として融合する光学的錯覚であり、映画やアニメーションの動きの知覚の説明とされています [1]。

参考プロジェクト [2,3,4] は離散LEDとシフトレジスタを用いたPOVグローブディスプレイでしたが、私のデバイスは回転するシリンダーと市販のRGB LEDストリップをPOVディスプレイとして使用します。

主な特徴

技術仕様

機械的構造

機械構造は以下の図に示す通りです。デバイスはシャーシとローターで構成されます。

Arduino Dueで作る美しいPOVシリンダー – ステップバイステップガイド

シャーシは2枚の円形合板ディスクを3本のネジ付きバーで接続したもので、ディスク間の距離は120mmです。中央には2つのボールベアリングとシャフト (ネジ付きバー) があります。シャフトは電動モーターから2つのクラウンギアとタイミングベルトを介して駆動され、最大1300 RPM (22 Hz) で回転します。

ローターは2つの発泡スチロールシリンダーと2枚の円形アルミディスクで構成されます。発泡スチロールシリンダーは下側のディスクに接着され、上側のディスクは取り外し可能で、シャフトへの取り付けに使用します。

Arduino Dueで作る美しいPOVシリンダー – ステップバイステップガイド

電子部品はローターの上部に配置され、以下を含みます:

Arduino Dueで作る美しいPOVシリンダー – ステップバイステップガイド

電源 (7.5V) はスライド接点とコンタクトリングを介して電源基板に供給されます。合計40個のRGB LEDを持つ4本のLEDストリップを使用し、Arduinoシールドにケーブルで接続します。

Arduino Dueで作る美しいPOVシリンダー – ステップバイステップガイド

4本のLEDストリップは以下の図のように配置されます。4本のストリップをずらして配置することで、Y軸方向のLED間距離を1/4にしています。X軸方向はソフトウェアで制御し、1回転あたり151回、全40個のLEDを更新します。図のグリッドが表示可能なピクセルに対応します。

Arduino Dueで作る美しいPOVシリンダー – ステップバイステップガイド

電子回路

電子回路は添付のPDF回路図に示す通りです。LM317電圧レギュレータを搭載した電源基板があり、入力7.5Vを4.6Vに降圧し、Arduino DueとLEDストリップに供給します。

Arduino用の自作シールドには、LEDストリップへのコネクタケーブルとIR受信機用の回路が含まれます。IR受信機はローター位置を検出し、Arduinoのタイマー/割り込み入力に接続されます。

4本のLEDストリップ (STRIP0〜STRIP3) はそれぞれ5個のLPD8806ドライバと10個のRGB LEDを持ちます。STRIP0はUSART0、STRIP1はUSART1に接続され、両方ともSPIモードで動作します。STRIP2とSTRIP3は直列に接続し、ArduinoのSPIインターフェースで駆動します。

PCとの通信にはHC-06 BluetoothモジュールをUSART3に接続し、Arduinoの3.3V出力で駆動します。

Arduinoソフトウェア

Arduinoソフトウェアはメインプログラム (mpc.ino) と以下のライブラリで構成されます:

画像のLEDストリップへの周期的出力は割り込み駆動で行われます。2つのトグルフレームバッファを用意し、それぞれ1枚の画像 (40 × 151ピクセル、1ピクセル = 1バイトのカラーパレットインデックス) を保持します。一方のバッファが割り込みとDMAでLEDストリップに出力されている間、もう一方はメインプログラム (GIFデコード等) で準備されます。フレーム割り込みルーチンでバッファを切り替えます。

IRセンサーにより1回転ごとに1回のフレーム割り込みが発生します。フレーム割り込みルーチンはハードウェアタイマーで回転速度を測定し、周期的なカラム割り込み (1回転あたり150回、すなわち1カラムごと) をプログラムします。カラム割り込みルーチンが現在のカラムをLEDストリップに出力します。性能向上のため、出力は3つのDMAチャネルで完全並列に行います。

完全なArduinoソースコードは GitHub で公開されています。

PCコントロールプログラム

PCコントロールプログラム (pccp) はC++で書かれたコマンドラインツールで、Cygwin上で動作し、Bluetooth経由でArduinoと通信します。以下のシングルキャラクタコマンドでPOVシリンダーを制御できます:

pccp はGUIとのインターフェースも提供し、現在の回転速度 (Hzおよびµs) とフレームカウンタ値を表示します。ソースコードは GitHub で公開されています。

グラフィカルユーザーインターフェース

GUIはユニバーサルWindowsアプリとして実装され、POVシリンダーで表示するGIFファイルを選択できます。Microsoftの「Windows Universal Samples」 [5] のFilePickerアプリをベースに開発されました。ソースコードは GitHub で公開されています。

Arduino Dueで作る美しいPOVシリンダー – ステップバイステップガイド

参考文献

  1. Persistence of vision - Wikipedia
  2. RGB LED GLOBE - POV - 40 x 200
  3. POV Globe Display RGB
  4. POV Globe Display RGB - Project description (in German)
  5. Microsoft Windows Universal Samples

コード

回路図

回路図はPDFファイルとして提供されています。

製造プロセス

  1. Arduino POVクロック:残像効果で浮かび上がるLED時計を自作する
  2. Arduino Nanoで20kHzオシロスコープを自作:Nokia 5110 LCD搭載・簡易DIYガイド
  3. スマートブラインド:Arduinoとソーラー電源で実現する自動光制御
  4. Arduino Dueで作るタッチスクリーン三目並べゲーム
  5. スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
  6. イタリア語ワードクロック自作:Arduino Nano、NeoPixel、LCD、RTCで時刻を文字で表示
  7. ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
  8. Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
  9. Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター
  10. Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視
  11. Arduino用絶縁アナログ入力回路の設計:LM331 V-F変換+フォトカプラでノイズ耐性を確保