Arduinoのリモートフォローフォーカス

カメラ用にリモートフォローフォーカスを作成することにしました。 これは、特定の距離からレンズの焦点を合わせることができるシステムです。 したがって、カメラはクレーン、ステディカム、またはオペレーターの肩に配置でき、同時にフォーカスオペレーター(フォーカスプーラー)はレンズのフォーカスリングをリモートで回転させることができます。 このアイデアは、Arduinoで何ができるかを見たときに自然に生まれました。







すべてのコンポーネントが到着すると、プロトタイプの組み立てを開始しました。 このプロジェクトでは、次を使用しました。

  1. Arduino DuemilanoveとArduino Uno(数年の間隔で購入されたという理由だけで異なる)
  2. 2 nRF24L01 +トランシーバー
  3. サーボ
  4. ギア(0.8ピッチ)
  5. MaxSonar EZ0
  6. 7セグメントセグメント表示
  7. 10k可変抵抗器
  8. 2つの電圧レギュレータ3.3V
  9. 電圧レギュレーターとソナーの仕様に従って電力を安定させるための複数のコンデンサーと抵抗器
  10. 開発ボード、ケーブル、コネクタ、熱収縮、ワイヤ、その他
その後のケースへの組み立てでは、Arduino Nanoを使用する予定です。 このバージョンは、DuemilanoveおよびUnoよりも大幅に小さくなっています。 このボードの唯一の欠点は、USB経由で給電されていない場合、3.3Vを出力しないことです。 そのため、ブレッドボードに電圧レギュレータを追加しました。







送信機(コントロールユニット)





レシーバー(実行ユニット)





タスクには、送信機と受信機の2つのブロックが含まれます。 送信機は可変抵抗器の測定値を読み取り、それらを平滑化し、無線で受信機に送信します。 受信機は、抵抗器のハンドルの位置でパケットを受信し、この値に比例してサーボを回転させます。



幸運にも、nRF24L01 +は双方向モードで通信できます。 そのため、「受信機」にMaxSonar EZ0超音波距離計も取り付けました。 カメラの前にある物体までの距離を測定し、この数値を「送信機」、つまり制御ユニットに送信します。 そこで、この図は7セグメントディスプレイに表示されます。 人々が焦点を管理するのを助けることになっています。 たとえば、数字に注目できるように、ペンの周りにスケールを描くことができます。



nRF24L01を搭載した開発ボードとモジュール+





MaxSonar EZ0





ブレッドボードの1つの裏側





このプロジェクトに取り組む過程で、さまざまな問題に遭遇しました。 しかし、それらのほとんどすべてが英雄的に克服されました。



それらのいくつかを次に示します。

  1. アナログ入力の浮動値。 何らかの理由で、抵抗からの入力で、ハンドルが回転しない瞬間に非常に大きな値のばらつきが生じます。 プログラムで問題を解決しました-値を平均し、さらにいくつかのトリックを実行します。 一般に、問題はほとんど解決されています。 別の抵抗器も試してみます。 現在のものは私よりも古いようです。
  2. サーボ位置決めの精度が低い。 デフォルトのドキュメントでは、サーボを1度の精度で配置することが推奨されています。 これは私には十分ではありませんでした。 writeMicroseconds関数を使用して状況を改善しました。 ギアをより正確に回転させることができます。
  3. トランシーバーはすぐには動作しませんでした。 問題は、ドキュメントのあるページにピン配置されていました。 ネットワーク上でピン配置が機能している別のページを見つけ、ラジオが機能しました。
  4. プログラムでシリアルポートを使用すると、サーボがぎくしゃくします。 明らかに、割り込みはそのタイミングを妨害します。 MaxSonarからデータを抽出する最も便利な方法は、シリアルポートを使用することでした。 割り込み用にプログラムを完全に書き直し、PWM出力を使用する必要がありました。 アナログ出力から、距離のカウントがひどく判明しました。
  5. MaxSonarのPWM出力は安定していません。 値の範囲があります。 しかしこれまでのところ、これは私にとって重要ではありません。 将来的には、この問題をより根本的に解決する予定です。 まだ分​​かりません
  6. 7セグメントディスプレイは、別のボーレートにアップグレードできました。 2日間、私はそれがちょうど燃え尽きたと思った。 しかし、それから私はすべてのボーレートをダブルチェックすることを考え、彼がまだ働いているのを見ました。 一般に、非常に安定して動作しません。 おそらく、私はSoftwareSerialを使用しているという事実が原因です。 または、彼とArduinoの周波数発生器が異なるという事実のため。
次に、スペースを節約するためにArduino Nanoに切り替え、回路をケースに入れ、電源の問題を解決し(LiPoバッテリーとMini USBから充電します)、サーボを交換し、サーボ用のマウントを多形プラスチックではなくアルミニウムコーナーから作成します。 そして、もちろん、フィールドトライアルを実施します。 何かが出てくることを願っています。 切り替えないでください。



All Articles