2015b/Member/kei/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*今回の課題について [#j95b5819]
#ref(2015b/Member/kei/Mission2/2015b-mission2.png,ルート)
今回の課題はルートA→BまたはルートB→Aをうまくライントレー...
ルートA→B:A地点 → P直進 → Q直進 → Q右折 → P右折 → Q左折 →...
ルートB→A:B地点 → P右折 → Q右折 → P左折 → Q左折 → Q直進 →...
今回の課題はただライントレースをするだけでなく交差点での...
今回、私はルートB→Aを担当します。&br;
[[2015年後期/課題2:http://yakushi.shinshu-u.ac.jp/roboti...
*ロボットの構造について [#v6451296]
今回はロボットは基本的にテキストに乗っているベースの型で...
#ref(2015b/Member/kei/Mission2/IMG_4889(1).JPG,50%);
*プログラミングについて [#d1fffe12]
今回は交差点をどう認識し、ラインをトレースするとき線のど...
また、できるだけ早くゴールできるようにする工夫もした。
**定義部分 [#a7a7053c]
***定義部分の解説 [#w387b37b]
この部分では主に三つの事を定義している。一つは黒と白を見...
//課題:交差点で1秒停止、コースB B地点→P右折→Q右折→P...
#define BLACK 35 //これ以下は濃い黒
#define WHITE 50 //これ以上は白
#define LowSPEED 25
#define HighSPEED 30
#define Go OnFwd(OUT_AB,HighSPEED); // 直進
#define Go_left OnFwd(OUT_B,LowSPEED);Off(OUT_A);
#define Go_right OnFwd(OUT_A,LowSPEED);Off(OUT_B);
#define turn_left OnFwd(OUT_B,LowSPEED);OnRev(OUT_A,Hig...
#define turn_right OnFwd(OUT_A,LowSPEED);OnRev(OUT_B,Hi...
#define STEP 1
#define Chokushin Off(OUT_AB);Wait(1000);Go;Wait(700);b...
#define Usetu Off(OUT_AB);Wait(1000);turn_right;Wait(70...
#define Sasetu Off(OUT_AB);Wait(1000);turn_left;Wait(50...
----
**sub関数部分(交差点での動作) [#b9b87472]
sub KOUSATEN(int counter) {
switch (counter) {
case 0: Usetu;
case 1: Usetu;
case 2: Sasetu;
case 3: Sasetu;
case 4: Chokushin;
case 5: Chokushin;
default: Wait(1);
}
}
***交差点での動作の解説 [#v0c861df]
このsub関数で交差点での動作を決定している。下のMain関数で...
**Main関数 [#fcde30a2]
task main() {
SetSensorLight(S1);
int counter = 0;
int counter1 = 0;
int counter2 = 0;
Off(OUT_AB);
Wait(1000);
while (true) {
if (SENSOR_1 < BLACK) { //濃い黒のとき&br;
***Main関数の解説? [#j518088b]
今までに通った交差点の数が0、1、5、6のどれかであると...
if (counter == 0 || counter == 1 || counter =...
Go_left; //左へ
counter1++;
----
***Main関数の解説? [#ife210e1]
今までに通った交差点の数が二つであるときかつ濃い黒線の上...
ここではcounter2という変数を別に用意してcounter2の値が一...
} else if (counter == 2) {
Go_right; //右へ
counter2++;
if (counter2 < 5000) {
counter1 = 0;
} else {
counter1++;
}
----
***Main関数の解説? [#g54d2652]
今までに通った交差点の数が3の時かつ黒い線の上であるとき...
} else if(counter == 3) {
Go_right;
counter1++;
----
***Main関数の解説? [#nf2ac057]
通った交差点の数が上記以外すなわち4の時かつ黒い線の上の...
} else {
turn_right;
counter1++;
----
***Main関数の解説? [#pbcda0ed]
ここでは上で数え続けたcounter1が250を超えたときの動作...
} if (counter1 > 250) {
KOUSATEN(counter);
counter++;
counter1 = 0;
}
----
***Main関数の解説? [#hf79f6b3]
BLACKよりは明るいがWHITEより暗い場所は境界線付近であると...
} else if (SENSOR_1 < WHITE) { //境界付近なら
Go; //直進
counter1 = 0;
----
***Main関数の解説? [#x35f0106]
ここは白い部分での動作なので線を見失ってから線を探す動作...
} else { //白のとき
if (counter == 0 || counter == 1) {
Go_right; //右へ
counter1 = 0;
} else if (counter == 2 || counter == 3) {
turn_left; //左へ
counter1 = 0;
} else if (counter == 5 || counter == 6){
Go_right;
} else {
turn_left;
counter1 = 0;
}
}
Wait(STEP);
}
}
----
***まとめ [#s181151b]
このプログラムでは基本的に黒い線の上にいるときにcounter1...
**プログラムの工夫点 [#w7514f8b]
今回のプログラムでの工夫点は交差点の数を数えてその数に応...
また二回目の交差点を回った後は誤作動が起きないように別の...
さらに交差点を越えた時にできるだけカーブの外側をライント...
*感想と考察 [#u19249aa]
**考察 [#ze267323]
今回の課題での最後までの成功率はあまり高くなかった。タイ...
**感想 [#p7482e50]
今回の課題では本当は5段階でラインを認識して滑らかに動く...
終了行:
目次
#contents
*今回の課題について [#j95b5819]
#ref(2015b/Member/kei/Mission2/2015b-mission2.png,ルート)
今回の課題はルートA→BまたはルートB→Aをうまくライントレー...
ルートA→B:A地点 → P直進 → Q直進 → Q右折 → P右折 → Q左折 →...
ルートB→A:B地点 → P右折 → Q右折 → P左折 → Q左折 → Q直進 →...
今回の課題はただライントレースをするだけでなく交差点での...
今回、私はルートB→Aを担当します。&br;
[[2015年後期/課題2:http://yakushi.shinshu-u.ac.jp/roboti...
*ロボットの構造について [#v6451296]
今回はロボットは基本的にテキストに乗っているベースの型で...
#ref(2015b/Member/kei/Mission2/IMG_4889(1).JPG,50%);
*プログラミングについて [#d1fffe12]
今回は交差点をどう認識し、ラインをトレースするとき線のど...
また、できるだけ早くゴールできるようにする工夫もした。
**定義部分 [#a7a7053c]
***定義部分の解説 [#w387b37b]
この部分では主に三つの事を定義している。一つは黒と白を見...
//課題:交差点で1秒停止、コースB B地点→P右折→Q右折→P...
#define BLACK 35 //これ以下は濃い黒
#define WHITE 50 //これ以上は白
#define LowSPEED 25
#define HighSPEED 30
#define Go OnFwd(OUT_AB,HighSPEED); // 直進
#define Go_left OnFwd(OUT_B,LowSPEED);Off(OUT_A);
#define Go_right OnFwd(OUT_A,LowSPEED);Off(OUT_B);
#define turn_left OnFwd(OUT_B,LowSPEED);OnRev(OUT_A,Hig...
#define turn_right OnFwd(OUT_A,LowSPEED);OnRev(OUT_B,Hi...
#define STEP 1
#define Chokushin Off(OUT_AB);Wait(1000);Go;Wait(700);b...
#define Usetu Off(OUT_AB);Wait(1000);turn_right;Wait(70...
#define Sasetu Off(OUT_AB);Wait(1000);turn_left;Wait(50...
----
**sub関数部分(交差点での動作) [#b9b87472]
sub KOUSATEN(int counter) {
switch (counter) {
case 0: Usetu;
case 1: Usetu;
case 2: Sasetu;
case 3: Sasetu;
case 4: Chokushin;
case 5: Chokushin;
default: Wait(1);
}
}
***交差点での動作の解説 [#v0c861df]
このsub関数で交差点での動作を決定している。下のMain関数で...
**Main関数 [#fcde30a2]
task main() {
SetSensorLight(S1);
int counter = 0;
int counter1 = 0;
int counter2 = 0;
Off(OUT_AB);
Wait(1000);
while (true) {
if (SENSOR_1 < BLACK) { //濃い黒のとき&br;
***Main関数の解説? [#j518088b]
今までに通った交差点の数が0、1、5、6のどれかであると...
if (counter == 0 || counter == 1 || counter =...
Go_left; //左へ
counter1++;
----
***Main関数の解説? [#ife210e1]
今までに通った交差点の数が二つであるときかつ濃い黒線の上...
ここではcounter2という変数を別に用意してcounter2の値が一...
} else if (counter == 2) {
Go_right; //右へ
counter2++;
if (counter2 < 5000) {
counter1 = 0;
} else {
counter1++;
}
----
***Main関数の解説? [#g54d2652]
今までに通った交差点の数が3の時かつ黒い線の上であるとき...
} else if(counter == 3) {
Go_right;
counter1++;
----
***Main関数の解説? [#nf2ac057]
通った交差点の数が上記以外すなわち4の時かつ黒い線の上の...
} else {
turn_right;
counter1++;
----
***Main関数の解説? [#pbcda0ed]
ここでは上で数え続けたcounter1が250を超えたときの動作...
} if (counter1 > 250) {
KOUSATEN(counter);
counter++;
counter1 = 0;
}
----
***Main関数の解説? [#hf79f6b3]
BLACKよりは明るいがWHITEより暗い場所は境界線付近であると...
} else if (SENSOR_1 < WHITE) { //境界付近なら
Go; //直進
counter1 = 0;
----
***Main関数の解説? [#x35f0106]
ここは白い部分での動作なので線を見失ってから線を探す動作...
} else { //白のとき
if (counter == 0 || counter == 1) {
Go_right; //右へ
counter1 = 0;
} else if (counter == 2 || counter == 3) {
turn_left; //左へ
counter1 = 0;
} else if (counter == 5 || counter == 6){
Go_right;
} else {
turn_left;
counter1 = 0;
}
}
Wait(STEP);
}
}
----
***まとめ [#s181151b]
このプログラムでは基本的に黒い線の上にいるときにcounter1...
**プログラムの工夫点 [#w7514f8b]
今回のプログラムでの工夫点は交差点の数を数えてその数に応...
また二回目の交差点を回った後は誤作動が起きないように別の...
さらに交差点を越えた時にできるだけカーブの外側をライント...
*感想と考察 [#u19249aa]
**考察 [#ze267323]
今回の課題での最後までの成功率はあまり高くなかった。タイ...
**感想 [#p7482e50]
今回の課題では本当は5段階でラインを認識して滑らかに動く...
ページ名: