| 名称 | 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() は、機体組み上げ後に行うこと。