名称 | Arduino 単体での動作試験 |
---|---|
番号 | MIRSMG4D-SYST-0007 |
版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
---|---|---|---|---|
A01 | 2017.04.18 | 牛丸真司 | 牛丸真司 | 初版 |
A02 | 2021.05.25 | 牛丸真司 | 牛丸真司 | 管理台帳フォーマットへの変更 |
A02 | 2022.05.31 | 牛丸真司 | 牛丸真司 | 内容の一部変更 |
モータ・エンコーダ(2個)、モータ制御ボード(2個)、バッテリー、電源スイッチをを接続した Arudino テスト環境の構成図
zipファイルの展開は、unzip ZIPファイル名とする。
mg4_arduino_ver* の loop 関数で、試験したいプログラムを選択する。 以下に loope 関数内のコメントでのテストに関する説明をを示す。
void loop(){ /* いずれか一つの関数を有効にする。 どの関数も無限ループになっている。しがたってこの loop 関数は実際にはループしない。 */ / * RasPi からの指令で動作させるとき、slave を有効にする。*/ //slave(); /* --------------機能のテスト--------------------------------------------- テスト関数 test_*() のいずれかを有効にする。 実行時にシリアルモニタを立ち上げて値を確認する。 ------------------------------------------------------------------------- */ /* モータ動作テスト 引数:左モータのPWM値、右モータのPWM値 (範囲は -255~255)*/ //test_motor(150, 150); /* エンコーダテスト(モータを回転させて行う)*/ motor_set(50, 50) ; test_encoder(); /* 距離計のテスト(モータを回転させて行う)*/ //motor_set(50, 50) ; test_distance(); /* 速度制御のテスト 引数:左モータの速度[cm/s]、右モータの速度[cm/s] */ //test_vel_ctrl(25, 0); /* 走行制御のテスト 引数:モード(直進:STR or 回転:ROT)、速度[cm/s] or 角速度[deg/s]、距離[cm] or 角度 の速度[deg] */ //test_run_ctrl(STR, 25, 100); //test_run_ctrl(ROT, 45, 90); /* バッテリー値の確認 */ //test_batt(); /* シリア通信のエンコード、デコーダ値の確認 */ //test_encode(); //test_decode(); }
Arduino IDE の右矢印アイコンをクリックして、プログラムのコンパイル・転送を行う。
プログラムの転送が完了した時点で、そのプログラムが動作する。
以下にエンコーダテスト時のシリアルモニタのログを示す。
Ver3.0 以降でシリアルモニターを使う場合は、この図のように右下の通信速度を9800bpsから
115200bps に変更すること。
エンコーダテスト時のシリアルモニタのログ(通信速度を 115200bpsに変更していることに注意)
テスト項目 | テスト関数 | チェック項目 | 備考 |
---|---|---|---|
モータの動作テスト | test_motor() | モータの回転方向は正しいか?引数の値を変更して速度が変化するか?符号を変えたときに回転方向が変化するか? | 左右それぞれについてチェックする |
エンコーダの動作テスト | test_encoder() | エンコーダの1周のカウント数は正しいか?モータの回転方向を変えた場合に、カウントの増減が変化するか? | 左右それぞれについてチェックする。モータをバッテリーで回転させて行う場合は、set_motor()関数を使う。タイヤを回してチェックする場合は、バッテリーをはずして行う、1周のパルス数はギア分がかかる。その際はカタログの精密ギア比を用いること。 |
速度制御の動作テスト | test_vel_ctrl() | 速度値を変化させた場合に、回転速度・回転方向が正しく変化するか? | 左右それぞれについて確認する。 |
バッテリー電圧測定 | test_batt() | バッテリー値が正しく読めているか? | テスターで測った値と比較する。 |
なお、距離計のテスト(test_encoder())とシリアル通信テスト(test_encoder(), test_decoder())は省略してよい。
また、機体の走行制御テスト test_vel_ctrl() は、機体組み上げ後に行うこと。