robocup メイン fumiya
Dependencies: AQM0802A HMC6352 L6470_lib PID mbed
Fork of CatPot_Main_ver1 by
wraparound.cpp
- Committer:
- ryuna
- Date:
- 2015-01-10
- Revision:
- 7:7a0aee1477d9
- Parent:
- 6:c2c31bc971ad
File content as of revision 7:7a0aee1477d9:
//回り込みます /** ballの位置によりボールが正面に来るまで.を一連の処理動作とし,動作を考える. すなわち,逐一モーターを動かし,ボールとの位置をチェックしモーターを動かすのではなく,はじめの状態から移動を考えてその処理を終えるまでモーターは拘束される. この動作について信用を得るために超音波(後ろ,左右),irセンサ,地磁気センサの三つから現在状態およびボールとの距離を把握.計算により移動量,回転速度を決定,行動へ. 上位4ビットで一番目のボールの位置,下位4ビットで二番目のボールの位置 二つ目の8ビットで1個目のボールの値 三つ目の8ビットで2個目のボールの値 Ir1//irの一番値が大きいもの Ir2//irの二番目に値が大きいもの 以上は割と序盤に考えたことで適当なこと言ってる。 1 フローチャートを用いる。 12/26~ 露骨にオートマトンのプログラムを参考にしている。 もしかして途中までの計算まとめられる ir分岐後の計算がほとんど同じ 動きが他のものと違う後ろと前以外を先に関数でどっかに飛ばす if(ir == 1 || ir == 7){ (*ControlRobo[ir/7])(&CompassDef); //これで0,1に分けれるはず continue; } この後ほかのやつは似たような処理をしたあと それぞれに分岐するとか考えられる。 逆にこれによる害は何か。 *****/ /*** irは+-30度まで読めるが,距離が遠い場所ほど減衰 ボールがないときは12 *1 *0 *2 *11 *3 *10 *4 *9 *5 *8 *6 *7 **/