2016b/Member/ssh/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*はじめに [#efefdf44]
#ref(2016b/Member/ssh/Mission2/2016b-mission2.png)
今回私は、上の図のA地点からスタートしてQ付近の3/4円周上で...
*機体の説明 [#ubda7b3e]
**全体像 [#yce6f36d]
機体の本体部分はなるべくコンパクトでシンプルな形にして、...
#ref(2016b/Member/ssh/Mission2/1482125363195.png)
**アームパーツ [#q1120e27]
プログラムを簡単にするため、また、バッテリーの減少による...
#ref(2016b/Member/ssh/Mission2/DSC_0197.png)
シュートするためにピンポン玉を機体で押し込む際に、ピンポ...
#ref(2016b/Member/ssh/Mission2/1482125361765.png)
*プログラムの説明 [#w61ced9f]
**今回使ったマクロとサブルーチン [#zfc80fab]
#define left_turn OnFwd(OUT_C); Off(OUT_A); //左に...
#define right_turn OnFwd(OUT_A); Off(OUT_C); //右に...
#define left_senkai OnFwd(OUT_C); OnRev(OUT_A); //左に...
#define right_senkai OnFwd(OUT_A); OnRev(OUT_C); //右に...
#define go_forward OnFwd(OUT_AC); //まっ...
#define TURN_TIME 80 //頻繁...
機体が黒線をなぞって進み、また、交差点を判断する動作であ...
また、交差点とカーブを見分ける方法は、光センサーは黒線の...
sub folow_line()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<30)
{ if(SENSOR_2>50){right_senkai; ClearTimer(0);}
else if(SENSOR_2>47){right_turn; ClearTimer(0);}
else if(SENSOR_2>43){go_forward; ClearTimer(0);}
else if(SENSOR_2>39){left_turn; ClearTimer(0);}
else if(SENSOR_2>35){left_senkai;}
}
Off(OUT_AC);
PlaySound(SOUND_UP);
Wait(100);
Off(OUT_AC);
}
交差点で直進するサブルーチンである。
sub chokusin()
{
right_turn;
Wait(TURN_TIME*2);
Off(OUT_AC);
}
交差点で右折するサブルーチンである。
sub usetu()
{
right_turn;
Wait(TURN_TIME);
Off(OUT_AC);
}
交差点で左折するサブルーチンである。
sub sasetu()
{
left_senkai;
Wait(TURN_TIME/2);
Off(OUT_AC);
}
ピンポン玉をキャッチするサブルーチンである。
sub CATCH()
{
OnRev(OUT_B);
Wait(40);
Off(OUT_B);
}
ピンポン玉をゴールに押し込むサブルーチンである。
sub shoot()
{
OnRev(OUT_AC);
Wait(100);
Off(OUT_AC);
OnFwd(OUT_B);
Wait(60);
Off(OUT_B);
OnFwd(OUT_AC);
Wait(70);
OnRev(OUT_AC);
Wait(100);
Off(OUT_AC);
}
**今回の主要なプログラム [#y3cdd9e5]
task main()
{
folow_line(); //A地点から交差点Pまで進む。
chokusin(); //交差点PからQまで進む。
folow_line();
chokusin(); //3/4演習場でピンポン玉をキャッチして...
CATCH();
folow_line();
chokusin(); //交差点QからRまで進む。
folow_line();
usetu(); //交差点RからPまで進む。
folow_line();
chokusin(); //交差点PからSまで進む。
folow_line();
sasetu(); //交差点SからD地点まで進む。
folow_line();
chokusin(); //ピンポン玉をゴールに押し込む。
shoot();
}
*まとめ [#a554eec9]
今回の課題はライントレース自体は機体の大きさやアームパー...
終了行:
目次
#contents
*はじめに [#efefdf44]
#ref(2016b/Member/ssh/Mission2/2016b-mission2.png)
今回私は、上の図のA地点からスタートしてQ付近の3/4円周上で...
*機体の説明 [#ubda7b3e]
**全体像 [#yce6f36d]
機体の本体部分はなるべくコンパクトでシンプルな形にして、...
#ref(2016b/Member/ssh/Mission2/1482125363195.png)
**アームパーツ [#q1120e27]
プログラムを簡単にするため、また、バッテリーの減少による...
#ref(2016b/Member/ssh/Mission2/DSC_0197.png)
シュートするためにピンポン玉を機体で押し込む際に、ピンポ...
#ref(2016b/Member/ssh/Mission2/1482125361765.png)
*プログラムの説明 [#w61ced9f]
**今回使ったマクロとサブルーチン [#zfc80fab]
#define left_turn OnFwd(OUT_C); Off(OUT_A); //左に...
#define right_turn OnFwd(OUT_A); Off(OUT_C); //右に...
#define left_senkai OnFwd(OUT_C); OnRev(OUT_A); //左に...
#define right_senkai OnFwd(OUT_A); OnRev(OUT_C); //右に...
#define go_forward OnFwd(OUT_AC); //まっ...
#define TURN_TIME 80 //頻繁...
機体が黒線をなぞって進み、また、交差点を判断する動作であ...
また、交差点とカーブを見分ける方法は、光センサーは黒線の...
sub folow_line()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<30)
{ if(SENSOR_2>50){right_senkai; ClearTimer(0);}
else if(SENSOR_2>47){right_turn; ClearTimer(0);}
else if(SENSOR_2>43){go_forward; ClearTimer(0);}
else if(SENSOR_2>39){left_turn; ClearTimer(0);}
else if(SENSOR_2>35){left_senkai;}
}
Off(OUT_AC);
PlaySound(SOUND_UP);
Wait(100);
Off(OUT_AC);
}
交差点で直進するサブルーチンである。
sub chokusin()
{
right_turn;
Wait(TURN_TIME*2);
Off(OUT_AC);
}
交差点で右折するサブルーチンである。
sub usetu()
{
right_turn;
Wait(TURN_TIME);
Off(OUT_AC);
}
交差点で左折するサブルーチンである。
sub sasetu()
{
left_senkai;
Wait(TURN_TIME/2);
Off(OUT_AC);
}
ピンポン玉をキャッチするサブルーチンである。
sub CATCH()
{
OnRev(OUT_B);
Wait(40);
Off(OUT_B);
}
ピンポン玉をゴールに押し込むサブルーチンである。
sub shoot()
{
OnRev(OUT_AC);
Wait(100);
Off(OUT_AC);
OnFwd(OUT_B);
Wait(60);
Off(OUT_B);
OnFwd(OUT_AC);
Wait(70);
OnRev(OUT_AC);
Wait(100);
Off(OUT_AC);
}
**今回の主要なプログラム [#y3cdd9e5]
task main()
{
folow_line(); //A地点から交差点Pまで進む。
chokusin(); //交差点PからQまで進む。
folow_line();
chokusin(); //3/4演習場でピンポン玉をキャッチして...
CATCH();
folow_line();
chokusin(); //交差点QからRまで進む。
folow_line();
usetu(); //交差点RからPまで進む。
folow_line();
chokusin(); //交差点PからSまで進む。
folow_line();
sasetu(); //交差点SからD地点まで進む。
folow_line();
chokusin(); //ピンポン玉をゴールに押し込む。
shoot();
}
*まとめ [#a554eec9]
今回の課題はライントレース自体は機体の大きさやアームパー...
ページ名: