だから、私たちはこの素晴らしいアイデアに熱心でお金と時間を費やす準備ができています。
センサーから始めましょう
3軸でマルチコプターの傾斜/回転角度を決定するため(これは空中でデバイスを安定させるための重要なタスクです)、さまざまなセンサーを使用できます: 光学 (カメラからのビデオの処理)、 高温 (信号に応じて光学のわずかに切り捨てられたバージョン)これらの4つのセンサーから、地平線、磁気、慣性を追跡できます。 理想的なオプションは、すべてを一緒に使用することですが、マイクロコントローラーの計算能力は非常に低いため、航空航法用の従来のジャイロスコープに焦点を当てます。
マイクロエレクトロニクスの最近の進歩により、機械式(より正確にはMEMS )ジャイロスコープを5x5 mmのケースに組み立てることが可能になりました。 STとアナログ・デバイセズは、あらゆる味と感度に対応する顕微鏡ジャイロスコープと加速度計のフルラインを提供しています。
理論的には、ジャイロスコープのみを使用して角度を決定できますが、いくつかの問題があります。 ジャイロスコープは(この速度に比例する一定の電圧レベルで)回転角速度を示しますが、ドリフトなどの現象があります:ゼロ値のランダムな側へのシフト(私の手では、これは停止後のセンサーの残留「めまい」として現れました)回転)。 エラーの急速な蓄積は、他のセンサーがなければ起こりません。
同様に、それらに適用される加速度に関する情報を同様に提供する加速度計もあります。 重要な点:加速度計は実際に加えられた加速度と通常のgの差を示すため、簡単な計算により、異なる軸に沿って向けられた3つの加速度計からの信号から、地球の冷却システムに対する装置の冷却システムの回転角度を取得できます(たぶん、オリジナルでは、参照のフレームです)。 しかし、デバイスが何らかの加速度を得るとすぐに、得られた角度の値は不正確になります(加速度が大きい場合-完全に正しくありません)。
両方のタイプのセンサーから得られた値を関連付けるために、 カルマンフィルターが伝統的に使用されます。これは把握するのに長い時間がかかりますが、優れた結果をもたらし、その実装例はインターネット上でいっぱいです。
センサー用ボードの製造
原則として、既製の慣性航法モジュールの1つを既に作成されたソフトウェアですぐに購入することができましたが、これはスポーツではありませんよね? そのため、いくつかのデジタル( アナログが必要なのはなぜですか?I2Cステア! )MEMSの詳細を購入し、ボードをはんだ付けするために仕様を読み始めました。
しかし、ボードを未知のデバイスの下に置くのは非常に退屈で長くなることがすぐに明らかになりました(フットプリント-はんだ付けテンプレート-ゼロから描画する必要があります)。 既製のセンサーモジュールを実装しようとする方が良いでしょう。すでに配線があります。撮って印刷するだけです ( 購入しますか?いいえ、70ドルを払って持ち込むのを待ってください! )。 同時に、 レーザーアイロンの方法を習得し、重宝します。
テンプレートを印刷します(ミラーリングを常に忘れているため、複数回)
休憩なしで明確なトラックを得るまで、数十回アイロンをかけます
私たちはトナーを毒でふき取ります。 何かがエッチングされていないことを確信しています。上記の手順を繰り返します。
並行して、三角法で遅延コンボリューションに歪みを与え、制御アルゴリズムを「発明」します。 モーターコントローラーをarduinoに接続します(今回は少なくとも購入しました)。 コンピューターからの電源は、中速で1つのアンロードモーターに電力を供給できませんでした。 強さ
これは1日でも1週間でもないことに注意してください。 部品の市場に4回出かけますが(常に何か忘れるかもしれませんが)、利用できない加速度計をアメリカから持ってきます...
そして、突然、自宅の回路基板に穴をめっきすることができないことに気づきました。穴は、回路基板に直接隣接するQFNハウジングのジャイロスコープと加速度計の腹の真下にあるためです。 穏やかに言えば、私たちは悲しく感じました。 私は工場で料金を注文しなければなりませんでした。 はんだ付けステーションがなかったため、これらの同じケースで足なしで部品をはんだ付けしようとしたときに別の障害が私たちを待っていました。 しかし、わずかな費用で、それが判明した人たちがこれを手伝ってくれました。 仕様を注意深く読む必要があったため、長い間この回路を動作させることができなかったという事実についても、私は黙秘します。
そうですね。
最後に、加速度計とジャイロスコープを備えた既製のボードを用意しました。ソフトウェアの作成を開始できます。 そして、慣れていない習慣を扱う電子機器が私の頭に忍び込んでくるという考え-むしろありがたい仕事です。 しかし、始まったばかりです。
データを取得します
デバッグのために、単純なADCで何らかの種類のArduinoシールドを収集します
ポテンショメータが「正直な」角度を示していると仮定して、ポテンショメータを回転させるテストパッドにすべてを取り付けることもできます。 参考のため、これは当てはまりません。
コンパイル、解釈、またはバイトコードに変換されるすべてのものに表面的なプログラミングスキルを持ち、センサーから値を受信し、CSVファイルに保存してExcel処理を行い、3Dモデルを表示してグラフを表示するプログラムのようなものをスケッチしますリアルタイムで。
まず第一に、動かないセンサーの値を取得します。
センサーを移動しようとすると、ノイズが増加します。 6個のモーターからのノイズがどうなるかを考えるのは怖いです。
ボードを回します。
当然、各センサーの回転角度の取得値は異なります。 ただし、2番目の図は、加速度計のバージョンとポテンショメータに応じた角度値の偏差を明確に示しており、ほぼ同じである必要があります。
ポテンショメータの抵抗は、回転角度に応じて非線形に変化することがわかります。 混allyとも言えます。
すべてのグラフィックにうんざり。 ポテンショメーターを捨て、カルマンフィルターの実装をCからC#に書き換えると、ターンに対する多かれ少なかれ適切な反応が得られます。
(ここでは両方のウィンドウが同じものを示していますが、視覚化は手のセンサーの実際の位置に非常に近いです)。 すべてが機能します。
UPD
SovGVDの書き込み:
小さなノートに分割する価値はないと思いますが、そのようなペースでは、パート20から30はまだWii Motion Plus(私がdxで注文したものの例)とWii Nunchack(それぞれジャイロスコープと加速度計)について言及する価値があります: .comおよび時にはすべてがより簡単になります...精度はもちろん完璧ではありませんが、価格は安く、入手は簡単で、ボードを毒する必要はありません
継続する。
加速度計(およびその他のナビゲーションセンサー)を使用したテーマは、 ARのコンテキストとドローンの両方で人気を博することに注意してください。 セグウェイでも同じ慣性システムが使用されています。 matanの友達は、より効率的で信頼性の高いアルゴリズムを開発できます。
そして、1 組の レコードを開始することができます。