2015a/Member/swimy/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2015a/MemberOnly]]
*使用したロボ [#p88956df]
**使用したロボ [#s04c709e]
基本的なライントレースのロボをベースとしてピンポン玉を保...
#ref(2015a/Member/swimy/Mission2/R6_5641.jpg,50%,使用した...
**光センサー [#d56fd507]
車体の底の中心より少し前に光センサーを設置した。
#ref(2015a/Member/swimy/Mission2/R6_5035.jpg,50%,裏)
**アーム [#n096c1c0]
車体前方に取り付けたアームはBにつなげたモーターを前転させ...
#ref(2015a/Member/swimy/Mission2/R6_3844.jpg,50%,アーム)
*プログラム [#v178b2cc]
今回はラインの右端をトレースするようにしてみた。
このプログラムはBからAに進むものである。
#define THRESHOLD 46//光センサーの値の中心を決める
#define go_forward OnFwd(OUT_AC);//直進
#define turn_left0 OnFwd(OUT_C);//左旋回
#define turn_left1 OnFwd(OUT_C);OnRev(OUT_A);//左折
#define turn_right1 OnFwd(OUT_A);OnRev(OUT_C);//右折
#define turn_right0 OnFwd(OUT_A);//右旋回
#define nMAX 7//判断の最高回数を設定
#define short_break Off(OUT_AC);Wait(100);//小休止
#define CROSS_TIME 30//横断の時間
#define cross_line go_forward;Wait(CROSS_TIME);short_bre...
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int nOnline=0;//変数nを交差点判断のために定義、0にする
int pOnline=0;//変数pをボールをつかみ、シュートするタ...
while(pOnline < 2){
while (nOnline < nMAX){//nがnMAX未満の時に繰り返す
if(SENSOR_2 < THRESHOLD-7){
turn_right1;
nOnline++;//明度が基準ー7未満の時(はっきりと黒い...
} else {
if(SENSOR_2 <THRESHOLD-3){
turn_right0;//明度が基準ー3未満、−7以上の時(黒...
} else if(SENSOR_2 <THRESHOLD+3){
go_forward;//明度が基準+3未満、−3以上の時(白と...
} else if(SENSOR_2 <THRESHOLD+7){
turn_left0;//明度が基準+7未満、+3以上の時(白っ...
} else {
turn_left1;//明度が基準+7以上の時(はっきり白い...
}
nOnline=0;//変数nを0に戻す
}
Wait(1);//判断時間
}
if(pOnline < 1){
OnFwd(OUT_B);Wait(7);Off(OUT_B);//1つ目の交差点でボ...
short_break;
turn_left1; Wait(nMAX*1);
cross_line;
}
nOnline=0;
pOnline++;//交差点の数を数える
}
OnRev(OUT_B);Wait(7);Off(OUT_B);//2つ目の交差点でアー...
short_break;
turn_left1; Wait(nMAX*1);
cross_line;
Off(OUT_AC);//シュート(ボールを押し出す)
}
*反省 [#ifa0622b]
一度は時間を計ってシュートの判断をしなければならないと...
終了行:
[[2015a/MemberOnly]]
*使用したロボ [#p88956df]
**使用したロボ [#s04c709e]
基本的なライントレースのロボをベースとしてピンポン玉を保...
#ref(2015a/Member/swimy/Mission2/R6_5641.jpg,50%,使用した...
**光センサー [#d56fd507]
車体の底の中心より少し前に光センサーを設置した。
#ref(2015a/Member/swimy/Mission2/R6_5035.jpg,50%,裏)
**アーム [#n096c1c0]
車体前方に取り付けたアームはBにつなげたモーターを前転させ...
#ref(2015a/Member/swimy/Mission2/R6_3844.jpg,50%,アーム)
*プログラム [#v178b2cc]
今回はラインの右端をトレースするようにしてみた。
このプログラムはBからAに進むものである。
#define THRESHOLD 46//光センサーの値の中心を決める
#define go_forward OnFwd(OUT_AC);//直進
#define turn_left0 OnFwd(OUT_C);//左旋回
#define turn_left1 OnFwd(OUT_C);OnRev(OUT_A);//左折
#define turn_right1 OnFwd(OUT_A);OnRev(OUT_C);//右折
#define turn_right0 OnFwd(OUT_A);//右旋回
#define nMAX 7//判断の最高回数を設定
#define short_break Off(OUT_AC);Wait(100);//小休止
#define CROSS_TIME 30//横断の時間
#define cross_line go_forward;Wait(CROSS_TIME);short_bre...
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int nOnline=0;//変数nを交差点判断のために定義、0にする
int pOnline=0;//変数pをボールをつかみ、シュートするタ...
while(pOnline < 2){
while (nOnline < nMAX){//nがnMAX未満の時に繰り返す
if(SENSOR_2 < THRESHOLD-7){
turn_right1;
nOnline++;//明度が基準ー7未満の時(はっきりと黒い...
} else {
if(SENSOR_2 <THRESHOLD-3){
turn_right0;//明度が基準ー3未満、−7以上の時(黒...
} else if(SENSOR_2 <THRESHOLD+3){
go_forward;//明度が基準+3未満、−3以上の時(白と...
} else if(SENSOR_2 <THRESHOLD+7){
turn_left0;//明度が基準+7未満、+3以上の時(白っ...
} else {
turn_left1;//明度が基準+7以上の時(はっきり白い...
}
nOnline=0;//変数nを0に戻す
}
Wait(1);//判断時間
}
if(pOnline < 1){
OnFwd(OUT_B);Wait(7);Off(OUT_B);//1つ目の交差点でボ...
short_break;
turn_left1; Wait(nMAX*1);
cross_line;
}
nOnline=0;
pOnline++;//交差点の数を数える
}
OnRev(OUT_B);Wait(7);Off(OUT_B);//2つ目の交差点でアー...
short_break;
turn_left1; Wait(nMAX*1);
cross_line;
Off(OUT_AC);//シュート(ボールを押し出す)
}
*反省 [#ifa0622b]
一度は時間を計ってシュートの判断をしなければならないと...
ページ名: