-
Notifications
You must be signed in to change notification settings - Fork 31
movie_text_how_to_upload_sketch_and_calibrate
今回はMOTIONER IMUへのArduinoのブートローダの書き込み、スケッチのアップロードとキャリブレーションを行います。
MOTIONERは抽象的な名前の為、以降IMUで統一します
ATMega328Pに ブートローダー ブートローダを書き込むためのArduino ISPを用意します。
英単語の和訳の語尾は伸ばさないで統一、Arduinoのメニュー項目の表記と対応させる為
Arduinoと プロセッシング Processingがインストールされたコンピュータを用意してください。
全て正式名称を使う様にしてください
IMUとArduino ISPを繋ぎます。
ケーブルの向きに注意してください。
大西:ブートローダーを書き込むためのアルディーノの解説はいるのだろうか?
少し冗長なのでwiki参照でいいと思います
Arduinoを立ち上げ、ツールメニューのマイコンボードから、Arduino Pro or Pro Mini (5V, 16MHz) w/ ATMega328を選択します。
シリアルポートはTTYのUSBを選択します。
OSやFTDIのチップによって違います。
シリアルポートはArduino ISPの物を選択してください
断定しようがないのでこうとしか言えません
プログラマー 書込装置はArduino as ISPを選択してください
全て日本語ローカライズされた状態のアプリのメニューに表示される言葉で統一します
ブートローダを書込むをクリックします
書き込みにはしばらく時間がかかります
書き込み終了したらIMUを外します。
次にUSBシリアル変換ケーブルとこのような筒とゴムを用意します。
IMUをゴムでセットします。
USBシリアル変換ケーブルとIMUを繋ぎます
コンピュータにUSBケーブルを繋ぎます。
Arduinoの動作チェックのためにLEDのプログラムをインストールしてみましょう。
LEDプログラムを選択しインストルーします。
LEDandSerialDebug.inoスケッチを開きます
IMUのシリアルポートを選択してください
ファイルメニューからマイコンボードに書込むを選んでスケッチをアップロードしてください
しばらくして書き込みが終わり、LEDが点滅したらOKです。
IMUとコントローラー間の通信の為のテストを行います。
CANテストをインストールします。
インストールではない
CANDebug.inoスケッチをアップロードしてください
ツールメニューからシリアルモニタを開いてください
シリアルモニタの右下にあるボーレートを57600にします
シリアルモニタに"0x55 0xAA 0x00 0xFF…"といった数字が表示されればOKです
0が羅列された場合や、何も表示されない場合は、MCP2515の足のハンダ付けが不十分かはんだがブリッジしている、またはMCP2515が壊れている可能性があります。
MPU6050(6軸センサ)とHMC5883L(地軸センサ)のチックをします。
IMUDebug.inoスケッチをアップロードします
[V]キーを押すとIMUのヴァージョン情報がシリアルモニタに表示されます
[D]キーを押すとセンサから取得した値がシリアルモニタに表示されます
センサの値を見て、IMUを水平に回した時に右側の数値が 1から300 0から360の間で数値が変化したり、IMUを軽く振った時に左側の数値が変化すればOKです。
0の羅列や、何も表示されない場合は失敗です。6軸か地磁気の足のハンダ付けが不十分でないか、はんだのブリッジがないか確認してください。
キャリブレーション用のプログラムをインストールします。
この時点でアップロード済み
引き続きIMUDebug.inoのスケッチをアップロードした状態で、今度は9軸センサのキャリブレーションをします。
次はProcessingを立ち上げます。
MagnCalibration.pdeを開きます
スケッチ先頭の方にあるSERIAL_PORT_NUMの値をIMUのポートと同じ物にしてください
地磁気センサーを水平に指定ください。(これは間違いです3:50)
立ち上がったらRUNを押してください。
IMUを回転させます。
このキャリブレーションの目標は、描画される点で最も大きな球体を作る事です
IMUと自分の体をいろいろな角度に回転させながら一番半径が大きくなる軸を探してください
地磁気センサーは地球の磁気を計測しています。正しい 方向 方角に合わせる事が 目的なので 重要です。
まずはXYZそれぞれの軸で一番半径が大きくなる場所を探すのが簡単です
縦のラインを描きます。
次は横のラインを描きます。
外周のラインを描きます
さらに全体にまんべんなく点を描きます
奇麗に球体が描けたらエンターキーを押します。
キャリブレーションしたデータが自動的にIMUに保存されます
上手く行かなかった場合は[R]キーを押すとリセットできます
地磁気センサーのキャリブレーションは以上で終了です。
次にACCキャリブレーションを行います。
これは加速度センサーのキャリブレーションです。
トートロジー?:)
次は加速度センサのキャリブレーションを行います
AcceCalibration.pdeを開きます
こちらも、スケッチ先頭の方にあるSERIAL_PORT_NUMの値をIMUのポートと同じ物にしてください
このキャリブレーションの目標は地球の純粋な重力の値を知る事です
その為、加速度センサを出来る限り慎重にゆっくりと動かす必要があります
また、加速度センサのXYZそれぞれの軸に対してキャリブレーションする必要があります
まずはIMUを水平に持ってください。
スケッチをRUNしてください
加速度センサーのキャリブレーションは画面を見ずにセンサーを観て丁寧に動かすとやり易いです
慎重に動かしてください
まずはこの方向に回転させます ... 次は ... 最後に ...
ここは映像に合わせる感じでお願いします
(縦横 斜めに 動かす)
斜めはないはずです ロール、ピッチ方向に180度ずつと、完全に水平な方向(0度)、IMUをひっくり返して完全に水平な方向(360度)だったと思います
(エンターを押し忘れています!)
途中でIMUを揺らしたり、衝撃を与えてしまった場合は[R]キーを押して何度でもやり直せます
上手く行ったらエンターキーを押します。
GyroCalibration.pdeを開いてください
こちらも、スケッチ先頭の方にあるSERIAL_PORT_NUMの値をIMUのポートと同じ物にしてください
このキャリブレーションの目的はジャイロセンサの誤差を計測する事です
IMUを完全に静止させた状態で机の上に置いたままスケッチをRUNします
ほんの少しでもIMUが動いてしまった場合は、[R]キーを押してリセットします
10秒ほど待ってからエンターを押します。
ではキャリブレーションは終了です。
上手く出来ましたか?
IMUVisualization.pdeスケッチをRUNすると、IMUが正しくセンサーの値を取得出来ていて、上手くキャリブレーションされているか視覚的に確認する事が出来ます
成功のコツ的なコメントが必要。
どうでしょう。。地磁気センサ、加速度センサ、ジャイロセンサがどのようなものか調べてみてくださいとか
とりあえずキャリブレーション中にも色々コツを追記しました