2004/B5/台から落ちないロボット

まず、ロボットのフロントの左右にタッチセンサを台の面に接触するように取り付ける。このとき、タッチセンサは台にタッチしており、それゆえ、タッチセンサの値は二つとも1である。この条件のもとにおいてはロボットは前進しているのであるが、台の上でいつまでも前進していれば、いずれは台の際涯に到達しロボットは台から落下することになる。しかし、ロボットが台の際涯に到達すれば、当然ながら、タッチセンサは台に接触しない瞬間、すなわち、タッチセンサの値が0になる瞬間が訪れる。この瞬間をもってロボットは前進することをやめ、少しの間後退し、そして、後退したら今度は回転し方向を変えるのである。そして、ロボットは再び前進を始めることになる。そして、以上展開してきた動作が幾度となく繰り返されることになる。

PROGRAM

task main(){
SetSensor(SENSOR_1, SENSOR_TOUCH);
SetSensor(SENSOR_3, SENSOR_TOUCH);
OnFwd(OUT_A+OUT_C);
until((SENSOR_1 ==0) || (SENSOR_3 ==0)) ;
while(true){
if((SENSOR_1==0)||(SENSOR_3==0)){  
OnRev(OUT_A+OUT_C);  Wait(100);
OnFwd(OUT_A);  OnRev(OUT_C);  Wait(100);
OnFwd(OUT_C);
}}}

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