[[2010a]]

#contents
*課題  [#z2fc69ef]
各チームで作成したコースを1周するロボットを製作せよ。交差点以外のコース上に350mlの空の空き缶を2個以上おき、空き缶にぶつかった時には次のような動作するプログラムを作成せよ。(他のメンバーと重ならないように一人一つのプログラムを作成する);
1.空き缶をコース上に戻して再びコースに戻って進む;
2.空き缶を次の交差点まで運んで行き、その交差点に空き缶を残してさらにコースに沿って進む;
3.奇数回目に空き缶に遭遇したら、その場で反転して進み、偶数回目に遭遇したら、空き缶を押しのけて進む;
ただし、;

•速さと正確さを追求すること
•コースを1周したら自動的に止まること
•交差点では一時停止すること
**ロボット [#r204181d]
&ref(P1010032.JPG);
&ref(P1010030.JPG);

&ref(P1010034.JPG);
&ref(P1010035.JPG);
&ref(P1010031.JPG);
&ref(P1010036.JPG);





**コース [#pf434381]
&ref(P1010033.JPG);


**YUのプログラム [#gd295df8]



**UMEのプログラム [#ka967300]

 
 int a;
 #define BORDER 40    
 int flag = 0;
 task main ()
 {
 a=0;	
 SetSensor ( SENSOR_1, SENSOR_LIGHT );//光センサー
 SetSensor ( SENSOR_2, SENSOR_TOUCH );//タッチセンサー
 SetSensor ( SENSOR_3, SENSOR_LIGHT );//光センサー
 Wait ( 100 );//センサーの反応待機	
 while ( flag < 3){     
 else{					
 if ((SENSOR_1>40)&&(SENSOR_3>40)){ //両センサーが白の場合    
 OnRev(OUT_A+OUT_C);//直進する	
				}
 else {     				
 if ((SENSOR_1<40)&&(SENSOR_3<40)){  //両センサが黒の場合
 Off(OUT_A+OUT_C);//交差点の場合少し止まる	
 Wait(50);     
 OnRev(OUT_A+OUT_C);進む  	
 Wait(20);     
 }
 else {     //左センサーが黒の場合				
 OnRev(OUT_A);
 Wait(5);
 OnFwd(OUT_C);
 Wait(5);     //左に曲がる		
				}
			}
 else {     //右センサーが黒の場合					
 if ( SENSOR_3> 40 ){     //左センサーが白の場合	
 OnFwd (OUT_A);
 Wait(5);
 OnRev(OUT_C);
 Wait(5);    //右に曲がる		
				}
 if ( SENSOR_2 == 1 ){ if (a == 0){     //タッチセンサーが反応	
 OnFwd(OUT_A+OUT_C);旋回
 Wait(50);		
 Off(OUT_A+OUT_C);
 Wait(300);			
 OnRev(OUT_A+OUT_C);
 Wait(30); 
 ClearTimer(0);
 until ((SENSOR_2==1) || (Timer(0)>2 ))OnRev(OUT_A+OUT_C);}
 if(SENSOR_2==1){a=1;     //タッチセンサーが再び反応したら
 OnRev(OUT_B);
 Wait(50);     //空き缶を挟む
			             }
 else if(SENSOR_2==0){
 If((SENSOR_1>40)&&(SENSOR_3>40)){ 
 OnRev(OUT_A+OUT_C);
			                      }
 else{
 OnRev(OUT_A);
 Wait(5);
 OnFwd(OUT_C);
 Wait(5);
			                       }
			         
 else{
 if(SENSOR_3 > 40){
 OnFwd(OUT_A);
 Wait(5);
 OnRev(OUT_C);
 Wait(5);
			                         }
 else{
 Off(OUT_A+OUT_C);
 Wait(150);
 OnFwd(OUT_B);
 Wait(50);
 Off(OUT_B);
 OnFwd(OUT_A+OUT_C);
 Wait(100);
 Off(OUT_A+OUT_C);
 OnRev(OUT_A);
 Wait(50);
 Off(OUT_A);
 OnRev(OUT_C);
 Wait(150);
 Off(OUT_C);
 OnRev(OUT_A);
 Wait(50);
 Off(OUT_A);a=0;
			                             }
			                       }
 Off(OUT_A+OUT_C);}




 

**問題点、工夫した所 [#o890a03f]
・YU

・UME ラインとレースはよくできたと思うが、プログラムが長くなったのでもっとシンプルなものにできれば良かった。また、ロボットのアームが長すぎカーブのすぐに空き缶がある場合うまく挟めなかったんで、次はプログラムのほかにロボットの製作からしっかり考えたい。
***感想 [#ee38cb6d]
・YU 

・UME ハサミの機能を有効に使うのが難しく苦悩しました。しかし難しいことに挑戦し頑張れたのでいい勉強になりました。
***コメントをどうぞ [#o5783f2f]

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