[[2014a/Member]]
目次

#contents

*課題の説明 [#q316f020]

詳しい説明は[[2014a/Mission1]]を見てください。

*メンバー [#n5ce0733]

dai  mame

* ロボット本体 [#db4e1456]

写真の挿入方法&ref(2014a/Member/dai/Mission1/sample2-small.jpg.30%);

[[image.jpg]]

** drive base [#v4772f44]

**arm [#z3d76455]

&ref(2014a/Member/dai/Mission1/image.jpeg.30%);

**light sensor [#uc7ab4ed]

*プログラム [#j9f1fbc4]

 #define THRESHOLD 45//しきい値
 #define SPEED_H 40//高速
 #define SPEED_L 30//低速
 #define OnRL(speedR,speedL)  OnFwd(OUT_B,speedR); OnFwd(OUT_C,speedL);
 #define go_forward  OnRL(SPEED_H,SPEED_H);//直進
 #define turn_left1  OnRL(SPEED_L,-SPEED_L);//左旋回
 #define turn_left0  OnRL(SPEED_L,0);//左折
 #define turn_right0  OnRL(0,SPEED_L);//右折
 #define turn_right1  OnRL(-SPEED_L,SPEED_L);//右旋回
 #define STEP  1  //1回の判断で動作させる時間
 #define nMAX  140  //通常のカーブとして許容できる繰り返しの最大値
 #define short_break  Off(OUT_BC); Wait(1000);//小休止
 #define CROSS_TIME  200//交差点通過にかかる時間
 #define cross_line  OnRL(SPEED_L,SPEED_L); Wait(CROSS_TIME); short_break;//交差点通過
 #define Catch  Off(OUT_BC);OnFwd(OUT_A,60);Wait(500);Off(OUT_A);//ボールキャッチ
 #define Shot   Off(OUT_BC);OnRev(OUT_A,100);Wait(500);Off(OUT_A);//シュート
 

 task main()
 { 
 SetSensorLowspeed(S4);
 if (SensorUS(S4)<=8) {Catch;}
 SetSensorLight(S1);
 
 int nOnline=0  ;//続けて黒になった回数
 int nCrossline=0;//交差点を通過した回数

 while (true)   {
 while  (nOnline  <  nMAX)  {
 if (SENSOR_1 < THRESHOLD-18){
   turn_left1;
   nOnline++;
 }  else 
 if (SENSOR_1 < THRESHOLD-10)  {
   turn_left0 ;
 } else 
   if(SENSOR_1 < THRESHOLD-3) {
      go_forward;
 } else 
 if  (SENSOR_1 < THRESHOLD+3) {
    turn_right0;
 } else {
  turn_right1;
 }
    nOnline=0;
 }
  Wait(STEP);
 }
 short_break;
 turn_right1; Wait(nMAX*STEP);
 cross_line;
 nCrossline++;
 nOnline=0;

 nCrossline>=5;
 Shot;
 nCrossline=0;
 }


*反省・感想 [#g085b8ca]
アームはうまく作れたと思うが、プログラミングができず苦労した。

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