2012b/Member/tada0/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2012b/Member]]
#contents
*メンバー紹介 [#r9752e52]
-tada0 工学部機械システム工学科
-KARINA 工学部土木工学科
*課題の内容 [#ff0e762b]
-スタート地点から出発し、スタート地点外のすぐ近くに置かれ...
-ピンポン玉をつかんだら速やかにスタート地点の境界の黒線に...
-ゴール地点に到達したら、ゴールエリア外からピンポン玉をゴ...
&ref(2012b/Member/tada0/Mission1/2012b-mission1.png,80%,...
※2012年度後期・課題 のページを引用
*ロボットの説明 [#f38573ec]
#ref(2012b/Member/tada0/Mission1/robo-0.jpg,100,robo-0)
これが私たちのロボットです
機動性、安定性の面からタイヤを三輪にしました
アームの機構は至って簡単で、上下に開閉するアームでボール...
#ref(2012b/Member/tada0/Mission1/robo-1.jpg,100%,open)
#ref(2012b/Member/tada0/Mission1/robo-2.jpg,100,close)
上図のように、モーターによって前後に運動する棒と連動して...
*プログラムの説明 [#e81fa90b]
&ref(2012b/Member/tada0/Mission1/time.png,80%,画像の説明);
-ロボットはラインの左側をトレースするようにプログラムされ...
-A-B間Aを、C-D間はCを、E-F間はEをそれぞれ基準とし、ある一...
-B-C間、D-E間、F-G間はカウンターを用いて、濃い黒を3回また...
--A-B間、C-D間、E-F間はカーブを直角と認識しないようにカウ...
--F-G間において、直角以外で濃い黒を3回連続で感知する場所...
--直角と認識するとピロピロと音が鳴り思いどうりの動作が行...
#define ikichi 43 //域値を指定
#define HIPOWER 7 //モーターの強さを強へ
#define LOWPOWER 2 //モーターの強さを弱へ
#define set_power_H SetPower(OUT_AC,HIPOWER); //モー...
#define set_power_L SetPower(OUT_AC,LOWPOWER); //モー...
#define go set_power_H;OnFwd(OUT_AC); ...
#define t_l_hp set_power_L;OnRev(OUT_A);OnFwd(OUT_C); ...
#define t_l_lp set_power_L;Off(OUT_A);OnFwd(OUT_C); ...
#define t_r_hp set_power_L;OnFwd(OUT_A);OnRev(OUT_C); ...
#define t_r_lp set_power_L;OnFwd(OUT_A);Off(OUT_C); ...
#define step 1 //動作の間隔
#define t_1 700 //A-B間のおおよその時間
#define t_2 800 //C-D間のおおよその時間
#define t_3 700 //E-F間のおおよその時間
#define balltime 50 //ボールを挟むためのアームを動か...
#define p_1 PlaySound(SOUND_CLICK); //ピッと音を鳴らす
#define p_2 PlaySound(SOUND_UP); //ピロピロと音を鳴...
int n=0; //濃い黒の連続感知...
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT); //センサーの2...
OnFwd(OUT_AC); //ボールを掴...
Wait(40);
OnRev(OUT_B);
Wait(30);
Off(OUT_B);
Wait(20);
ClearTimer(0); //点Aを基準...
while(FastTimer(0)<t_1){ //タイマー0...
if (SENSOR_2 < ikichi -5){t_l_hp} //...
else if (SENSOR_2 < ikichi -2){t_l_lp} //...
else if (SENSOR_2 < ikichi +2){go} //...
else if (SENSOR_2 < ikichi +5){t_r_lp} //...
else {t_r_hp} //...
Wait(step); //...
}
do{ //n...
if (SENSOR_2 < ikichi -5){t_l_hp;n +=1;p_1;} ...
else if (SENSOR_2 < ikichi -2){t_l_lp;int n=0;} ...
else if (SENSOR_2 < ikichi +2){go;int n=0;} ...
else if (SENSOR_2 < ikichi +5){t_r_lp;int n=0;} ...
else {t_r_hp;int n=0;} ...
Wait(step); ...
}while(n<3);
OnFwd(OUT_A); //Xラインを越えるため向きを修...
Wait(10);
OnFwd(OUT_AC);
Wait(20);
p_2; //ピロピロ...
ClearTimer(0); //Xラインを...
while(FastTimer(0)<t_2){ //タイマー0...
if (SENSOR_2 < ikichi -5){t_l_hp} //濃い...
else if (SENSOR_2 < ikichi -2){t_l_lp} //薄い...
else if (SENSOR_2 < ikichi +2){go} //灰色...
else if (SENSOR_2 < ikichi +5){t_r_lp} //薄い...
else {t_r_hp} //その...
Wait(step); //動作...
}
n==0; //n...
do{ //n...
if (SENSOR_2 < ikichi -5){t_l_hp;n +=1;p_1;} //...
else if (SENSOR_2 < ikichi -2){t_l_lp;int n=0;} //薄...
else if (SENSOR_2 < ikichi +2){go;int n=0;} //灰...
else if (SENSOR_2 < ikichi +5){t_r_lp;int n=0;} //薄...
else {t_r_hp;int n=0;} //そ...
Wait(step); //動...
}while(n<3);
p_2; //ピロピロと...
ClearTimer(0); //タイマー0...
while(FastTimer(0)<t_3){t_l_hp} //濃い黒なら...
else if (SENSOR_2 < ikichi -2){t_l_lp} //薄い黒なら...
else if (SENSOR_2 < ikichi +2){go} //灰色なら直進
else if (SENSOR_2 < ikichi +5){t_r_lp} //薄い白なら...
else {t_r_hp} //その他なら...
Wait(step); //動作に間隔...
}
n==0; //nに...
do{ //n<5...
if (SENSOR_2 < ikichi -5){t_l_hp;n +=1;p_1;} //濃...
else if (SENSOR_2 < ikichi -2){t_l_lp;int n=0;} //薄...
else if (SENSOR_2 < ikichi +2){go;int n=0;} //灰...
else if (SENSOR_2 < ikichi +5){t_r_lp;int n=0;} //薄...
else {t_r_hp;int n=0;} //そ...
Wait(step); //動...
}while(n<5);
t_r_hp; //ゴールの方向を向かせる
Wait(10);
p_2; //ピロピロと音を鳴らす
Off(OUT_AC);
Wait(100);
OnRev(OUT_AC); //ボール掴みながら下がる
Wait(130);
SetPower(OUT_ABC,9); //勢いをつけるため、モーターの...
OnFwd(OUT_ABC); //前進しながらアームをあげる
Wait(30);
Off(OUT_B); //アームのみ停止
Wait(80);
Off(OUT_AC); //すべての動作を停止
}
*まとめ・感想 [#g303fd87]
-ロボットの機体の構想はすぐできたが、プログラムがうまくい...
-まだ誤動作を行うことがあるため完全とは言えないものになっ...
-今回いろいろ苦戦したことを次の課題に生かしていきたい
終了行:
[[2012b/Member]]
#contents
*メンバー紹介 [#r9752e52]
-tada0 工学部機械システム工学科
-KARINA 工学部土木工学科
*課題の内容 [#ff0e762b]
-スタート地点から出発し、スタート地点外のすぐ近くに置かれ...
-ピンポン玉をつかんだら速やかにスタート地点の境界の黒線に...
-ゴール地点に到達したら、ゴールエリア外からピンポン玉をゴ...
&ref(2012b/Member/tada0/Mission1/2012b-mission1.png,80%,...
※2012年度後期・課題 のページを引用
*ロボットの説明 [#f38573ec]
#ref(2012b/Member/tada0/Mission1/robo-0.jpg,100,robo-0)
これが私たちのロボットです
機動性、安定性の面からタイヤを三輪にしました
アームの機構は至って簡単で、上下に開閉するアームでボール...
#ref(2012b/Member/tada0/Mission1/robo-1.jpg,100%,open)
#ref(2012b/Member/tada0/Mission1/robo-2.jpg,100,close)
上図のように、モーターによって前後に運動する棒と連動して...
*プログラムの説明 [#e81fa90b]
&ref(2012b/Member/tada0/Mission1/time.png,80%,画像の説明);
-ロボットはラインの左側をトレースするようにプログラムされ...
-A-B間Aを、C-D間はCを、E-F間はEをそれぞれ基準とし、ある一...
-B-C間、D-E間、F-G間はカウンターを用いて、濃い黒を3回また...
--A-B間、C-D間、E-F間はカーブを直角と認識しないようにカウ...
--F-G間において、直角以外で濃い黒を3回連続で感知する場所...
--直角と認識するとピロピロと音が鳴り思いどうりの動作が行...
#define ikichi 43 //域値を指定
#define HIPOWER 7 //モーターの強さを強へ
#define LOWPOWER 2 //モーターの強さを弱へ
#define set_power_H SetPower(OUT_AC,HIPOWER); //モー...
#define set_power_L SetPower(OUT_AC,LOWPOWER); //モー...
#define go set_power_H;OnFwd(OUT_AC); ...
#define t_l_hp set_power_L;OnRev(OUT_A);OnFwd(OUT_C); ...
#define t_l_lp set_power_L;Off(OUT_A);OnFwd(OUT_C); ...
#define t_r_hp set_power_L;OnFwd(OUT_A);OnRev(OUT_C); ...
#define t_r_lp set_power_L;OnFwd(OUT_A);Off(OUT_C); ...
#define step 1 //動作の間隔
#define t_1 700 //A-B間のおおよその時間
#define t_2 800 //C-D間のおおよその時間
#define t_3 700 //E-F間のおおよその時間
#define balltime 50 //ボールを挟むためのアームを動か...
#define p_1 PlaySound(SOUND_CLICK); //ピッと音を鳴らす
#define p_2 PlaySound(SOUND_UP); //ピロピロと音を鳴...
int n=0; //濃い黒の連続感知...
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT); //センサーの2...
OnFwd(OUT_AC); //ボールを掴...
Wait(40);
OnRev(OUT_B);
Wait(30);
Off(OUT_B);
Wait(20);
ClearTimer(0); //点Aを基準...
while(FastTimer(0)<t_1){ //タイマー0...
if (SENSOR_2 < ikichi -5){t_l_hp} //...
else if (SENSOR_2 < ikichi -2){t_l_lp} //...
else if (SENSOR_2 < ikichi +2){go} //...
else if (SENSOR_2 < ikichi +5){t_r_lp} //...
else {t_r_hp} //...
Wait(step); //...
}
do{ //n...
if (SENSOR_2 < ikichi -5){t_l_hp;n +=1;p_1;} ...
else if (SENSOR_2 < ikichi -2){t_l_lp;int n=0;} ...
else if (SENSOR_2 < ikichi +2){go;int n=0;} ...
else if (SENSOR_2 < ikichi +5){t_r_lp;int n=0;} ...
else {t_r_hp;int n=0;} ...
Wait(step); ...
}while(n<3);
OnFwd(OUT_A); //Xラインを越えるため向きを修...
Wait(10);
OnFwd(OUT_AC);
Wait(20);
p_2; //ピロピロ...
ClearTimer(0); //Xラインを...
while(FastTimer(0)<t_2){ //タイマー0...
if (SENSOR_2 < ikichi -5){t_l_hp} //濃い...
else if (SENSOR_2 < ikichi -2){t_l_lp} //薄い...
else if (SENSOR_2 < ikichi +2){go} //灰色...
else if (SENSOR_2 < ikichi +5){t_r_lp} //薄い...
else {t_r_hp} //その...
Wait(step); //動作...
}
n==0; //n...
do{ //n...
if (SENSOR_2 < ikichi -5){t_l_hp;n +=1;p_1;} //...
else if (SENSOR_2 < ikichi -2){t_l_lp;int n=0;} //薄...
else if (SENSOR_2 < ikichi +2){go;int n=0;} //灰...
else if (SENSOR_2 < ikichi +5){t_r_lp;int n=0;} //薄...
else {t_r_hp;int n=0;} //そ...
Wait(step); //動...
}while(n<3);
p_2; //ピロピロと...
ClearTimer(0); //タイマー0...
while(FastTimer(0)<t_3){t_l_hp} //濃い黒なら...
else if (SENSOR_2 < ikichi -2){t_l_lp} //薄い黒なら...
else if (SENSOR_2 < ikichi +2){go} //灰色なら直進
else if (SENSOR_2 < ikichi +5){t_r_lp} //薄い白なら...
else {t_r_hp} //その他なら...
Wait(step); //動作に間隔...
}
n==0; //nに...
do{ //n<5...
if (SENSOR_2 < ikichi -5){t_l_hp;n +=1;p_1;} //濃...
else if (SENSOR_2 < ikichi -2){t_l_lp;int n=0;} //薄...
else if (SENSOR_2 < ikichi +2){go;int n=0;} //灰...
else if (SENSOR_2 < ikichi +5){t_r_lp;int n=0;} //薄...
else {t_r_hp;int n=0;} //そ...
Wait(step); //動...
}while(n<5);
t_r_hp; //ゴールの方向を向かせる
Wait(10);
p_2; //ピロピロと音を鳴らす
Off(OUT_AC);
Wait(100);
OnRev(OUT_AC); //ボール掴みながら下がる
Wait(130);
SetPower(OUT_ABC,9); //勢いをつけるため、モーターの...
OnFwd(OUT_ABC); //前進しながらアームをあげる
Wait(30);
Off(OUT_B); //アームのみ停止
Wait(80);
Off(OUT_AC); //すべての動作を停止
}
*まとめ・感想 [#g303fd87]
-ロボットの機体の構想はすぐできたが、プログラムがうまくい...
-まだ誤動作を行うことがあるため完全とは言えないものになっ...
-今回いろいろ苦戦したことを次の課題に生かしていきたい
ページ名: