[[2009a]]
*光に向かってブロックを投げるロボット [#g16c74c9]
**課題 [#kd5c47bc]
1、止まっている懐中電灯を全方向から探し出してそこにブロックを投げる。(DAN)&br;
2、動く電灯を追いかけてブロックを投げる。(だる)
*ロボット [#bc0e9bfb]
&ref(reverse.jpeg);
&ref(arm.jpeg);
&ref(all.jpeg);
**1、のプログラム [#wf1f41e2]

   int brightmax ;int runover ;
   
   task main(){
              SetSensor(SENSOR_1,SENSOR_LIGHT);
              SetSensor(SENSOR_3,SENSOR_LIGHT);
              SetPower(OUT_A,7);    
            
             brightmax=SENSOR_1;ClearTimer(0+1);OnFwd(OUT_A);
             
               until(Timer(1)==70) //1回転するまで
               {if(SENSOR_1>brightmax){brightmax=SENSOR_1;    ClearTimer(0);}}//1 番明るかった時の時間を記録
             
            runover=Timer(0);           
               ClearTimer(1);
             until(Timer(1)>=(runover+10)){OnRev(OUT_A);}
             Off(OUT_A);Wait(30);//その時間だけ逆回転、戻る
             
            until((SENSOR_1>48)&&(SENSOR_3>48))
             {if(SENSOR_1>SENSOR_3){OnFwd(OUT_A);Wait(20);}
              else{OnRev(OUT_A);Wait(20);}}//近づく
              
              until(SENSOR_1==SENSOR_3){
              if(SENSOR_1>SENSOR_3){OnFwd(OUT_A);}
              if(SENSOR_3>SENSOR_1){OnRev(OUT_A);}}//狙いを定める
                       
               Off(OUT_A);OnRev(OUT_B);Wait(10);Off(OUT_B);} //投げる
  

#define T 35
#define rst OnRev(OUT_A);Wait(100);Off(OUT_A);
#define lst OnFwd(OUT_A);Wait(100);Off(OUT_A);
task main (){
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while(SENSOR_3<=57){
if (SENSOR_1<T){
if (SENSOR_3<T){
lst}
else {
rst}}
else {
if (SENSOR_3<T){
lst}
else {
lst}}}
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
}
**2、のプログラム [#mcb91f8f]
*コメント [#xa57f986]
感想をよろしくお願いします。
#comment

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS