2004/A1/練習問題1

//自由に動くロボット//

#define move_time 150//移動時間を定義
#define turn_time 100//旋回時間を定義
task main()
{
while(true)//真の間実行する
{
OnFwd(OUT_A+OUT_C);//A,Cモータを正回転させる
Wait(move_time);//定義した時間だけ保持
if(Random(1)==0)//ランダム(0,1)に発生する数値が0の場合実行
{
OnRev(OUT_A);//Aモータを逆回転させる(左折する)
}
else//if文の条件以外に実行
{
OnRev(OUT_C);//Cモータを逆回転させる(右折する)
}
Wait(turn_time);//定義した時間だけ保持
}
}

《反省・感想》

 新たにif文の条件にRandomという値をいれることで、このプログラムでは、左折と右折がランダムに行なわれ、ロボコンで邪魔ロボットとして利用することができるものであった。  しかし実際にロボコンで利用しようとすると、邪魔ロボとしては利用できるが、壁にぶちあたった時に移動不能になるため、このプログラムではあまり効果的でなかった。  改善するとすれば、タッチセンサーをロボットの前部に取り付け、壁にぶつかったら違うプログラムを発動させるようにすれば良かったと思った。

 製作「ともT」


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-02-26 (土) 13:43:26