2019a/Member/Daisuke/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019a/Member]]
目次
#contents
*課題について [#m8a38d19]
詳しくはこちらを参照[[2019a/Mission2]]
-ロボットを動かすルートは次の通り。
A→B→C→D→E→F→G→J→K→L→M
*ロボットについて [#k040e525]
-今回の課題は線に沿って動く動作と球を掴んでゴールするとい...
-ロボットの下部
#ref(./ろぼっと1.jpg)
-画像左側がロボットの前部分になるが、見てわかるようにタイ...
-ロボットの全体
#ref(./ろぼっと2.jpg)
-アームを取り付けるだけの簡易的なものにしたため、アーム用...
*プログラムについて [#t965a40d]
-今回のプログラムは、センサーを使って、黒線をトレースする...
**定義について [#p017fad2]
-今回のプログラムの定義は次のようにした。左右に曲がる曲が...
#define BLACK 28 //黒色の値
#define WHITE 54 //白色の値
#define SPEED_H 30 //速い方のスピード
#define SPEED_L 20 //遅い方のスピード
#define go_forward OnFwd(OUT_BC,SPEED_H); //前進
#define turn_left1 OnFwd(OUT_B,SPEED_L);Off(OUT_C); //ゆ...
#define turn_left2 OnFwd(OUT_B,SPEED_H);Off(OUT_C); //速...
#define turn_left3 OnFwd(OUT_B,SPEED_L);OnRev(OUT_C,10);...
#define turn_right1 Off(OUT_B);OnFwd(OUT_C,SPEED_L); //...
#define turn_right2 Off(OUT_B);OnFwd(OUT_C,SPEED_H); //...
#define turn_right3 OnRev(OUT_B,10);OnFwd(OUT_C,SPEED_L)...
#define STEP 1
**線をトレースするプログラム [#c0e3b0c4]
-僕は今回、左トレースで考えた。そうすることによってほとん...
void follow_line()
{
long t0=0,t_BLACK=0,t_max=110;
t0=CurrentTick();
while(t_BLACK<t_max){
if(SENSOR_3>BLACK){ //黒灰のとき
turn_left2;
} else if(SENSOR_3>BLACK+5){ //灰のとき
go_forward;
} else if(SENSOR_3>WHITE-5){ //白灰のとき
turn_right2;
} else if(SENSOR_3>WHITE){ //白のとき
turn_right1;
} else{ //黒のとき
turn_left1;
t0=CurrentTick();
until((SENSOR_3<BLACK+5)&&(SENSOR_3>BLACK));
t_BLACK=CurrentTick()-t0;
}
Wait(STEP);
}
}
**ヘアピンカーブを曲がるプログラム [#l1117b1d]
-このプログラムは線をトレースするプログラムとほとんど同じ...
void follow_line()
{
long t0=0,t_BLACK=0,t_max=110;
t0=CurrentTick();
while(t_BLACK<t_max){
if(SENSOR_3>BLACK){ //黒灰のとき
turn_left2;
} else if(SENSOR_3>BLACK+5){ //灰のとき
go_forward;
} else if(SENSOR_3>WHITE-5){ //白灰のとき
turn_right2;
} else if(SENSOR_3>WHITE){ //白のとき
turn_right3;
} else{ //黒のとき
turn_left3;
t0=CurrentTick();
until((SENSOR_3<BLACK+5)&&(SENSOR_3>BLACK));
t_BLACK=CurrentTick()-t0;
}
Wait(STEP);
}
}
**交差点を突き進むプログラム [#re5b1113]
-上記のプログラムで交差点に差し掛かるとロボットは、斜め左...
void cross_line()
{
go_forward;
until(SENSOR_3>WHITE-5);
turn_right2;
until(SENSOR_3>BLACK);
}
**全体のプログラム [#h2a64b16]
上記のプログラムを組み合わせてこのように組んだ。
task main()
{
SetSensorLight(S3);
follow_line(); //AからDまで
cross_line(); //D地点の交差点
follow_line(); //ゴールまで突っ込む
Off(OUT_`BC);
}
-僕は今回ぎりぎりまでプログラムを少なくしてみようと思った...
*結果 [#c99b7835]
-直線的な部分はしっかり進んだが、急カーブになると正しい道...
-モーター(電池)の都合で上手く曲がってくれなかった。
*考察 [#b15cb5df]
-「ロボットについて」でも述べたように、タイヤの後ろにセン...
*感想と反省 [#k60903df]
**感想 [#xd27195d]
-今回課題2をやってみて、とりあえず難しいなと心から感じた...
**反省 [#hd6ac875]
-課題2では、わからないことが課題1に比べてたくさん出てき...
終了行:
[[2019a/Member]]
目次
#contents
*課題について [#m8a38d19]
詳しくはこちらを参照[[2019a/Mission2]]
-ロボットを動かすルートは次の通り。
A→B→C→D→E→F→G→J→K→L→M
*ロボットについて [#k040e525]
-今回の課題は線に沿って動く動作と球を掴んでゴールするとい...
-ロボットの下部
#ref(./ろぼっと1.jpg)
-画像左側がロボットの前部分になるが、見てわかるようにタイ...
-ロボットの全体
#ref(./ろぼっと2.jpg)
-アームを取り付けるだけの簡易的なものにしたため、アーム用...
*プログラムについて [#t965a40d]
-今回のプログラムは、センサーを使って、黒線をトレースする...
**定義について [#p017fad2]
-今回のプログラムの定義は次のようにした。左右に曲がる曲が...
#define BLACK 28 //黒色の値
#define WHITE 54 //白色の値
#define SPEED_H 30 //速い方のスピード
#define SPEED_L 20 //遅い方のスピード
#define go_forward OnFwd(OUT_BC,SPEED_H); //前進
#define turn_left1 OnFwd(OUT_B,SPEED_L);Off(OUT_C); //ゆ...
#define turn_left2 OnFwd(OUT_B,SPEED_H);Off(OUT_C); //速...
#define turn_left3 OnFwd(OUT_B,SPEED_L);OnRev(OUT_C,10);...
#define turn_right1 Off(OUT_B);OnFwd(OUT_C,SPEED_L); //...
#define turn_right2 Off(OUT_B);OnFwd(OUT_C,SPEED_H); //...
#define turn_right3 OnRev(OUT_B,10);OnFwd(OUT_C,SPEED_L)...
#define STEP 1
**線をトレースするプログラム [#c0e3b0c4]
-僕は今回、左トレースで考えた。そうすることによってほとん...
void follow_line()
{
long t0=0,t_BLACK=0,t_max=110;
t0=CurrentTick();
while(t_BLACK<t_max){
if(SENSOR_3>BLACK){ //黒灰のとき
turn_left2;
} else if(SENSOR_3>BLACK+5){ //灰のとき
go_forward;
} else if(SENSOR_3>WHITE-5){ //白灰のとき
turn_right2;
} else if(SENSOR_3>WHITE){ //白のとき
turn_right1;
} else{ //黒のとき
turn_left1;
t0=CurrentTick();
until((SENSOR_3<BLACK+5)&&(SENSOR_3>BLACK));
t_BLACK=CurrentTick()-t0;
}
Wait(STEP);
}
}
**ヘアピンカーブを曲がるプログラム [#l1117b1d]
-このプログラムは線をトレースするプログラムとほとんど同じ...
void follow_line()
{
long t0=0,t_BLACK=0,t_max=110;
t0=CurrentTick();
while(t_BLACK<t_max){
if(SENSOR_3>BLACK){ //黒灰のとき
turn_left2;
} else if(SENSOR_3>BLACK+5){ //灰のとき
go_forward;
} else if(SENSOR_3>WHITE-5){ //白灰のとき
turn_right2;
} else if(SENSOR_3>WHITE){ //白のとき
turn_right3;
} else{ //黒のとき
turn_left3;
t0=CurrentTick();
until((SENSOR_3<BLACK+5)&&(SENSOR_3>BLACK));
t_BLACK=CurrentTick()-t0;
}
Wait(STEP);
}
}
**交差点を突き進むプログラム [#re5b1113]
-上記のプログラムで交差点に差し掛かるとロボットは、斜め左...
void cross_line()
{
go_forward;
until(SENSOR_3>WHITE-5);
turn_right2;
until(SENSOR_3>BLACK);
}
**全体のプログラム [#h2a64b16]
上記のプログラムを組み合わせてこのように組んだ。
task main()
{
SetSensorLight(S3);
follow_line(); //AからDまで
cross_line(); //D地点の交差点
follow_line(); //ゴールまで突っ込む
Off(OUT_`BC);
}
-僕は今回ぎりぎりまでプログラムを少なくしてみようと思った...
*結果 [#c99b7835]
-直線的な部分はしっかり進んだが、急カーブになると正しい道...
-モーター(電池)の都合で上手く曲がってくれなかった。
*考察 [#b15cb5df]
-「ロボットについて」でも述べたように、タイヤの後ろにセン...
*感想と反省 [#k60903df]
**感想 [#xd27195d]
-今回課題2をやってみて、とりあえず難しいなと心から感じた...
**反省 [#hd6ac875]
-課題2では、わからないことが課題1に比べてたくさん出てき...
ページ名: