2014a/Member/saborijini/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2014a/Member]]
*今回の課題 [#s226aa99]
図のようなコースを各自で作成した上で、次のような動作をす...
スタート地点から出発し、黒い線にそって動く。
一つ目の十字の交差点と二つめの十字の交差点の間に置かれた...
さらに黒線に沿って動いてゴール地点を目指す。
ゴールに向けてピンポン玉をシュートする。
ただしT字路では、直進、右折、左折を正しく判断させること。...
さらに以下のような動作に挑戦することが望ましい。
ゴールエリア外からピンポン玉をシュートする。
曲線部中央の障害物に接触しないようにすること。
課題1のコース
&ref(http://yakushi.shinshu-u.ac.jp/robotics/?plugin=atta...
*ロボット解説 [#gdd343b7]
&ref(IMG_0141.JPG);課題コースのカーブの半径が小さいので出...
&ref(IMG_0142.JPG);光センサを地面に対して垂直にタイヤの近...
&ref(IMG_0143.JPG);これはアームを上げた状態です。アームの...
&ref(IMG_0144.JPG);これはアームを下した状態です。アームは...
*プログラム解説 [#x0709217]
#define Line 43 //黒と白の境界値
#define Max 10 //黒の認識(左...
#define speed 30 //移動に用いる...
#define step 1 //ライントレー...
#define time 190 //黒線を横断す...
sub go_fwd()
{ OnFwd(OUT_AC,speed); } //前進
sub turn_left()
{ OnFwd(OUT_A,speed);OnRev(OUT_C,speed); } //左旋回
sub turn_right()
{ OnRev(OUT_A,speed);OnFwd(OUT_C,speed); } //右旋回
sub short_break()
{ Off(OUT_AC);Wait(700); } //一時停止
sub cross()
{ OnFwd(OUT_AC,speed);Wait(time); } //黒線を横断
task main()
{
SetSensorLight(S1); //センサ1に...
int nOnline=0; //センサが黒...
int nCrossline=0; //黒線に横断...
go_fwd(); //黒線になる...
until(SENSOR_1 <= Line);
short_break(); //一時停止し...
cross();
short_break();
while(nCrossline < 4){ //3回黒線を横断...
while(nOnline < Max){ //?黒の認識が最...
if(SENSOR_1 < Line-15){ //センサ<境界値...
turn_left();nOnline++;
}else{
if(SENSOR_1 < Line-7){ //境界値-15<セン...
turn_left();
}else if(SENSOR_1 < Line+7){ //境界値-7<セン...
go_fwd();
}else{
turn_right();} //それ以外(境界...
nOnline=0; } //黒の認識をリセ...
Wait(step); } //?を0.001秒の間...
cross(); //黒の認識が最大...
short_break();
nOnline=0; //黒の認識をリセ...
nCrossline++; //黒線を横断した...
if(nCrossline < 2){ //横断回数が2回...
OnFwd(OUT_AC,speed); //少し前進し右旋...
Wait(200);
turn_right();
Wait(180);
short_break();
OnFwd(OUT_B,28); //バーを下ろす
Wait(680);
Off(OUT_B); }
}
OnRev(OUT_B,28); //横断4回目にな...
Wait(680);
Off(OUT_ABC);
}
*感想 [#eb84fb1a]
今回の課題では車体を作ることよりもプログラムをゼロから作...
終了行:
[[2014a/Member]]
*今回の課題 [#s226aa99]
図のようなコースを各自で作成した上で、次のような動作をす...
スタート地点から出発し、黒い線にそって動く。
一つ目の十字の交差点と二つめの十字の交差点の間に置かれた...
さらに黒線に沿って動いてゴール地点を目指す。
ゴールに向けてピンポン玉をシュートする。
ただしT字路では、直進、右折、左折を正しく判断させること。...
さらに以下のような動作に挑戦することが望ましい。
ゴールエリア外からピンポン玉をシュートする。
曲線部中央の障害物に接触しないようにすること。
課題1のコース
&ref(http://yakushi.shinshu-u.ac.jp/robotics/?plugin=atta...
*ロボット解説 [#gdd343b7]
&ref(IMG_0141.JPG);課題コースのカーブの半径が小さいので出...
&ref(IMG_0142.JPG);光センサを地面に対して垂直にタイヤの近...
&ref(IMG_0143.JPG);これはアームを上げた状態です。アームの...
&ref(IMG_0144.JPG);これはアームを下した状態です。アームは...
*プログラム解説 [#x0709217]
#define Line 43 //黒と白の境界値
#define Max 10 //黒の認識(左...
#define speed 30 //移動に用いる...
#define step 1 //ライントレー...
#define time 190 //黒線を横断す...
sub go_fwd()
{ OnFwd(OUT_AC,speed); } //前進
sub turn_left()
{ OnFwd(OUT_A,speed);OnRev(OUT_C,speed); } //左旋回
sub turn_right()
{ OnRev(OUT_A,speed);OnFwd(OUT_C,speed); } //右旋回
sub short_break()
{ Off(OUT_AC);Wait(700); } //一時停止
sub cross()
{ OnFwd(OUT_AC,speed);Wait(time); } //黒線を横断
task main()
{
SetSensorLight(S1); //センサ1に...
int nOnline=0; //センサが黒...
int nCrossline=0; //黒線に横断...
go_fwd(); //黒線になる...
until(SENSOR_1 <= Line);
short_break(); //一時停止し...
cross();
short_break();
while(nCrossline < 4){ //3回黒線を横断...
while(nOnline < Max){ //?黒の認識が最...
if(SENSOR_1 < Line-15){ //センサ<境界値...
turn_left();nOnline++;
}else{
if(SENSOR_1 < Line-7){ //境界値-15<セン...
turn_left();
}else if(SENSOR_1 < Line+7){ //境界値-7<セン...
go_fwd();
}else{
turn_right();} //それ以外(境界...
nOnline=0; } //黒の認識をリセ...
Wait(step); } //?を0.001秒の間...
cross(); //黒の認識が最大...
short_break();
nOnline=0; //黒の認識をリセ...
nCrossline++; //黒線を横断した...
if(nCrossline < 2){ //横断回数が2回...
OnFwd(OUT_AC,speed); //少し前進し右旋...
Wait(200);
turn_right();
Wait(180);
short_break();
OnFwd(OUT_B,28); //バーを下ろす
Wait(680);
Off(OUT_B); }
}
OnRev(OUT_B,28); //横断4回目にな...
Wait(680);
Off(OUT_ABC);
}
*感想 [#eb84fb1a]
今回の課題では車体を作ることよりもプログラムをゼロから作...
ページ名: