ArduinoとHC-SR04センサーによるインタラクティブ・サーボモーター・プロジェクト
部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino UNO | 1 | |
| Adafruit 16チャネルPWMサーボ・モーター・コントローラー | 3 | |
| SG90マイクロ・サーボモーター | 36 | |
| 5V 30W スイッチング電源 | 1 | |
| サーボモーター延長ケーブル | 1 | |
| 24×48インチ ペグボード | 1 | 幅32インチにカット |
| アイス棒(3.25インチにカット) | 36 | サーボホーン取り付け用 |
| 超音波距離センサー HC-SR04 | 5 | インタラクティブ機能用(オプション) |
必要な工具
- はんだごて
- グルーガン
使用ソフトウェア
- Arduino IDE
プロジェクト概要
36個のサーボモーターが織りなす電子アート作品です。Arduino Unoと3台の16チャネルPWMサーボコントローラーが裏で制御しています。元々は現代美術館で見た450個のサーボを使った大規模作品に着想を得ましたが、この36個版でも十分に面白い効果が得られます。
オプションのインタラクティブ機能(動画では未紹介)を追加すると、ディスプレイ上部に設置した5つの超音波距離センサーの上で手を動かすと、全サーボが手の動きを追従するようになります。中央のセンサー上に手をかざすとインタラクティブ・モードに入り、手を離して数秒経つと通常のデモ表示に戻ります。この機能は完全にオプションで、無くてもソフトウェアは正常に動作します。
ハードウェア構築
フレームとサーボ取り付け
24×48インチのペグボードを幅32インチにカットし、サーボを4インチ間隔で裏面からグルーガンで固定します。アイス棒を3.25インチにカットし、サーボの出力軸にグルーガンで取り付けます(最小位置=PWM 150で水平右向きになるよう調整)。
オプションの超音波センサーはディスプレイ上部にグルーガンとアイス棒で取り付けます。Arduino下の小型ユニバーサル基板は、センサーへの電源・GND配線用です。
サーボ選定のコツ
SG90は8個セットで約20ドル(Amazon)ですが、36個揃えるには5セット(約100ドル)購入し、160°以上動作する良品を選別することを推奨します。動作確認用スケッチ「SetServosToMinimum」を用意しています。
ソフトウェア設計
Adafruit PWM Servo Driverライブラリを使用します(Arduinoライブラリマネージャからインストール)。
主要データ構造
curPos[36]:現在位置(PWM値÷3でバイト格納)tarPos[36]:目標位置(同上)
3で割る理由:(1) バイト型で格納可能、(2) 常に3ステップ単位で動作させるため。
初期化と動作
起動時、全サーボを垂直位置に移動し、両テーブルをその値で初期化。以降はtarPosを書き換えることで動作を制御します。
コア・サブルーチン goToTargets()
サーボを目標位置へ移動させる主ルーチン。速度制御は2パラメータで行います:
reps:15ステップ単位の繰り返し回数mydelay:各呼び出しごとの追加遅延(ミリ秒)
インタラクティブ・モード trackRoutine()
goToTargets()内で中央センサーが物体を検知すると呼び出されます。5つのセンサー値から手の位置を推定し、全サーボをその位置に追従させます。数秒間検知がないと通常モードに復帰。
コード
Arduino Uno用「ServosArt」スケッチ(ダウンロードのみ)
回路図
製造プロセス
- プロフェッショナルなFanucサーボモーター修理サービス
- ジーメンスサーボモーター修理:迅速・信頼性の高いサービス
- サーボモーター修理・トラブルシューティングの専門ガイド
- Raspoulette:太陽光発電自律コープドアシステムのプロトタイプ
- シンプルPiロボット - Raspberry Piで2WD自律ローバーを構築
- MOSMusicプロジェクトキット: MOSFET、Arduinoで音楽同期照明制御
- リニアモーター理解:電気エネルギーから精密直線運動へ
- 遊星ギアボックスがサーボモーター性能を高める理由
- サーボプレスの基礎:パワー、精度、効率を解説
- サーボモーターの仕組みと重要性
- サーボモータ減速機の理解:機能、メリット、用途