2013a/Member/BK201/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2013a/Member]]
*空き缶運びレース[#ha7f4abf]
*ロボットの紹介 [#q20e8f2b]
僕達が作ったロボットはシンプルに仕上げました。
ロボットはセンサーが機体に近くするためよりコンパクトに設...
#ref(2013a/Member/BK201/Mission1/IMG_0685.JPG,20%,ろぼっ...
*コースの攻略法 [#k9096768]
http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&re...
+最初に右に曲がること
+交差点を上手くわたる
+缶を指定の位置に置く
+最後は右に曲がって終了
*プログラムの説明 [#ub6b4419]
プラグラムの定義に関して
#define BLACK 31//黒線の明るさ
#define WHITE 62//白紙の明るさ
#define SPEED_H 30//タイヤの出力
#define SPEED_L 25
#define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OU...
#define go OnRL(SPEED_H,SPEED_H);//前に進む
#define left1 OnRL(SPEED_L,-SPEED_L);//ロボットの中心を...
#define left0 OnRL(SPEED_L,0);//左タイヤを軸に左旋回 ...
#define right0 OnRL(0,SPEED_L);//右タイヤを軸に右旋回 ...
#define right1 OnRL(-SPEED_L,SPEED_L);//ロボットの中心を...
#define STEP 10//動作時間0.01秒
#define nMAX 15//nの回数最高15回
#define short_break Off(OUT_BC);Wait(500);//休憩時間0.5秒
#define CROSS_TIME 350//交差点を渡る時間0.35秒
#define cross_line OnRL(SPEED_L,SPEED_L); Wait(CROSS_TIM...
task main()
{//1
SetSensorLight(S1);//センサーライト
int nOnline=0;// nOnlineの初期値
int n=0;// nの初期値
int m=0;// mの初期値
long t0=CurrentTick();// ここでt0での時間の測定が始まる
最初に右に曲がる
while(CurrentTick()-t0<=5000){//2 //時間制限5秒以内で...
if (SENSOR_1<37)//明るさ37未満なら右1
{ right1;}
else {//3
if (SENSOR_1<42)
{ right0; }//明るさ37以上42未満なら右0
else if (SENSOR_1<50)
{ go;}//明るさ42以上50未満なら進む
else
{ left1;}//それ以外なら左1
}//3
}//2
交差点を4回渡るまでライントレース
while(true){//4 //カッコ内を繰り返す
while(m<4){//5 //mが4カウントされたらカッコ内の行動...
while(nOnline<nMAX){//6 // nOnlineのカウントが連続で ...
if (SENSOR_1<37)
{right1; nOnline++;}//明るさが37未満なら右1そして nOnli...
else {//7
if (SENSOR_1<42)
{ right0; }//明るさが37以上42未満なら右0
else if (SENSOR_1<50)
{ go;}//明るさが42以上50未満なら進む
else if (SENSOR_1<56)
{ left0; }明るさが50以上56未満なら左0
else
{ left1;}//そのほかは左1
nOnline=0;}//7 //それぞれ時間はSTEPの0.01秒以上の行動...
Wait(STEP);
}//6
left1;cross_line;m++;//nOnlineのカウントが連続で nMAX(15...
}//5
}//4
缶を置く時間の変数の定義
long t1=CurrentTick();//ここでt1での時間の測定が始まる
缶を置く場所までのライントレース
while(CurrentTick()-t1<=12800){//8 //時間制限12.8秒以...
if (SENSOR_1<37)
{ right1; }//明るさが37未満なら右1 ...
else {//9
if (SENSOR_1<42)
{ right0; }//明るさが37以上42未満なら右0
else if (SENSOR_1<50)
{ go;}//明るさが42以上50未満なら進む
else if (SENSOR_1<56)
{ left0; }//明るさが50以上56未満なら左0
else
{ left1; }//それら以外は左1
}//9
}//8
缶をその場所に置く。時間制限を過ぎると半回転してバックの...
Off(OUT_BC);
OnFwd(OUT_B,20);OnRev(OUT_C,20);Wait(2600);//半回転
OnRev(OUT_BC,35);Wait(1000);//後退
OnFwd(OUT_B,20);OnRev(OUT_C,20);Wait(2600);//半回転
ラインどうりに進みゴールに向かう
while(true){//10//カッコ内で繰り返す 最後から2番目の...
if (SENSOR_1<35)
{ right1; }//明るさが35未満で右1 ...
else {//11
if (SENSOR_1<42)
{ right0; }//明るさが35以上42未満で右0 ...
else if (SENSOR_1<50)
{ go;}//明るさが42以上50未満で進む
else if (SENSOR_1<56)
{ left0; }//明るさが50以上56未満で左0
else
{ left1;}//それ以外は左1
Wait(STEP);
}//11
}//10
}//1
*まとめ [#bc730b07]
今回の課題は缶を指定の場所に持っていくことでしたが、私た...
終了行:
[[2013a/Member]]
*空き缶運びレース[#ha7f4abf]
*ロボットの紹介 [#q20e8f2b]
僕達が作ったロボットはシンプルに仕上げました。
ロボットはセンサーが機体に近くするためよりコンパクトに設...
#ref(2013a/Member/BK201/Mission1/IMG_0685.JPG,20%,ろぼっ...
*コースの攻略法 [#k9096768]
http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&re...
+最初に右に曲がること
+交差点を上手くわたる
+缶を指定の位置に置く
+最後は右に曲がって終了
*プログラムの説明 [#ub6b4419]
プラグラムの定義に関して
#define BLACK 31//黒線の明るさ
#define WHITE 62//白紙の明るさ
#define SPEED_H 30//タイヤの出力
#define SPEED_L 25
#define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OU...
#define go OnRL(SPEED_H,SPEED_H);//前に進む
#define left1 OnRL(SPEED_L,-SPEED_L);//ロボットの中心を...
#define left0 OnRL(SPEED_L,0);//左タイヤを軸に左旋回 ...
#define right0 OnRL(0,SPEED_L);//右タイヤを軸に右旋回 ...
#define right1 OnRL(-SPEED_L,SPEED_L);//ロボットの中心を...
#define STEP 10//動作時間0.01秒
#define nMAX 15//nの回数最高15回
#define short_break Off(OUT_BC);Wait(500);//休憩時間0.5秒
#define CROSS_TIME 350//交差点を渡る時間0.35秒
#define cross_line OnRL(SPEED_L,SPEED_L); Wait(CROSS_TIM...
task main()
{//1
SetSensorLight(S1);//センサーライト
int nOnline=0;// nOnlineの初期値
int n=0;// nの初期値
int m=0;// mの初期値
long t0=CurrentTick();// ここでt0での時間の測定が始まる
最初に右に曲がる
while(CurrentTick()-t0<=5000){//2 //時間制限5秒以内で...
if (SENSOR_1<37)//明るさ37未満なら右1
{ right1;}
else {//3
if (SENSOR_1<42)
{ right0; }//明るさ37以上42未満なら右0
else if (SENSOR_1<50)
{ go;}//明るさ42以上50未満なら進む
else
{ left1;}//それ以外なら左1
}//3
}//2
交差点を4回渡るまでライントレース
while(true){//4 //カッコ内を繰り返す
while(m<4){//5 //mが4カウントされたらカッコ内の行動...
while(nOnline<nMAX){//6 // nOnlineのカウントが連続で ...
if (SENSOR_1<37)
{right1; nOnline++;}//明るさが37未満なら右1そして nOnli...
else {//7
if (SENSOR_1<42)
{ right0; }//明るさが37以上42未満なら右0
else if (SENSOR_1<50)
{ go;}//明るさが42以上50未満なら進む
else if (SENSOR_1<56)
{ left0; }明るさが50以上56未満なら左0
else
{ left1;}//そのほかは左1
nOnline=0;}//7 //それぞれ時間はSTEPの0.01秒以上の行動...
Wait(STEP);
}//6
left1;cross_line;m++;//nOnlineのカウントが連続で nMAX(15...
}//5
}//4
缶を置く時間の変数の定義
long t1=CurrentTick();//ここでt1での時間の測定が始まる
缶を置く場所までのライントレース
while(CurrentTick()-t1<=12800){//8 //時間制限12.8秒以...
if (SENSOR_1<37)
{ right1; }//明るさが37未満なら右1 ...
else {//9
if (SENSOR_1<42)
{ right0; }//明るさが37以上42未満なら右0
else if (SENSOR_1<50)
{ go;}//明るさが42以上50未満なら進む
else if (SENSOR_1<56)
{ left0; }//明るさが50以上56未満なら左0
else
{ left1; }//それら以外は左1
}//9
}//8
缶をその場所に置く。時間制限を過ぎると半回転してバックの...
Off(OUT_BC);
OnFwd(OUT_B,20);OnRev(OUT_C,20);Wait(2600);//半回転
OnRev(OUT_BC,35);Wait(1000);//後退
OnFwd(OUT_B,20);OnRev(OUT_C,20);Wait(2600);//半回転
ラインどうりに進みゴールに向かう
while(true){//10//カッコ内で繰り返す 最後から2番目の...
if (SENSOR_1<35)
{ right1; }//明るさが35未満で右1 ...
else {//11
if (SENSOR_1<42)
{ right0; }//明るさが35以上42未満で右0 ...
else if (SENSOR_1<50)
{ go;}//明るさが42以上50未満で進む
else if (SENSOR_1<56)
{ left0; }//明るさが50以上56未満で左0
else
{ left1;}//それ以外は左1
Wait(STEP);
}//11
}//10
}//1
*まとめ [#bc730b07]
今回の課題は缶を指定の場所に持っていくことでしたが、私た...
ページ名: