2015a/Member/IR/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
課題2の目次
#contents
*今回の課題内容 [#m66ec619]
***コース [#naa9aeb0]
授業中に説明した下の図のようなコースを各チームで作成し、...
黒線の幅は20mmでなるべく均等な濃さにすること。 ゴールは1x...
#ref(./2015a-mission2.png,43%,課題2のコース)
***ミッション [#i3998df1]
3つの経路の内1つを選び黒い線にそって動くロボットを作成す...
そして、途中(P地点とQ地点)の間においたボール(ピンポン玉ま...
今回自分はC地点からA地点へ(Q交差点では直進、P三叉路では右...
*ロボット本体の説明 [#eecf640c]
&ref(./DSC_0001.jpg,10%,ロボット本体の画像);
&ref(./_28504.jpg,20%,ボールを運ぶアーム);
最初に作ったロボットではセンサーの位置がロボット本体と離...
ボールを運ぶアームは最初は小さめに制作していたがボールを...
*プログラムの説明 [#yac40c4c]
**定義文 [#g20e2f95]
マクロとして右折、左折、直進を定義し3種類の動作を使い分...
そして交差点を渡る際の動作も定義することでメインのプログ...
#define BLACK 40 ...
#define WHITE 50 ...
#define turn_right OnFwd(OUT_C); Off(OUT_A); ...
#define turn_left OnFwd(OUT_A); Off(OUT_C); ...
#define go_straight OnFwd(OUT_AC); ...
#define STEP 3 ...
#define MAX 100 ...
#define cross_line go_forward;Wait(20); Off(OUT_AC); ...
**サブルーチン [#b7ebe574]
ライントレースの基本となる黒い線の端をなぞって進んでいく...
それぞれ3種類の動作は進んでいる場所の明るさによって線の上...
sub trace()
{
while(FastTimer(0) < MAX) { //MAXの...
ClearTimer(0); ...
if (SENSOR_2 < BLACK) { //線上の...
turn_right; //右折
}
else if(SENSOR_2 < WHITE ) { //境界付...
go_straight; //前進
}
else { //線から...
turn_left; //左折
}
Wait(STEP);
}
}
**メインタスク [#n4909171]
交差点とゴールを別のものと認識させるために3つ場合分けを...
交差点から三叉路に向かう際ボールを掴んで急停止することで...
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
ClearTimer(0);
int goal = 0; //ゴール...
while(goal != 2)
{
trace(); //ライン...
if(goal == 0) { //交差点...
Off(OUT_AC);
Wait(200); //点Qで...
cross_line;
turn_right;
Wait(30);
Off(OUT_AC);
Wait(200); //点Pで...
goal = 1; //次到達...
ClearTimer(0);
}
else if(goal == 1) { //ゴール...
turn_right; //直接ゴ...
Wait(80);
Off(OUT_AC);
goal = 2; //ライン...
}
}
}
*反省点と課題 [#d2fa31e3]
最初に作った説明書通りのロボットを動かすことに固執してし...
実際にライントレースをしてみると電灯の位置によりロボット...
*まとめ [#s91c64c4]
全体的に初動が遅く基本となるところで躓いてしまうことで時...
終了行:
課題2の目次
#contents
*今回の課題内容 [#m66ec619]
***コース [#naa9aeb0]
授業中に説明した下の図のようなコースを各チームで作成し、...
黒線の幅は20mmでなるべく均等な濃さにすること。 ゴールは1x...
#ref(./2015a-mission2.png,43%,課題2のコース)
***ミッション [#i3998df1]
3つの経路の内1つを選び黒い線にそって動くロボットを作成す...
そして、途中(P地点とQ地点)の間においたボール(ピンポン玉ま...
今回自分はC地点からA地点へ(Q交差点では直進、P三叉路では右...
*ロボット本体の説明 [#eecf640c]
&ref(./DSC_0001.jpg,10%,ロボット本体の画像);
&ref(./_28504.jpg,20%,ボールを運ぶアーム);
最初に作ったロボットではセンサーの位置がロボット本体と離...
ボールを運ぶアームは最初は小さめに制作していたがボールを...
*プログラムの説明 [#yac40c4c]
**定義文 [#g20e2f95]
マクロとして右折、左折、直進を定義し3種類の動作を使い分...
そして交差点を渡る際の動作も定義することでメインのプログ...
#define BLACK 40 ...
#define WHITE 50 ...
#define turn_right OnFwd(OUT_C); Off(OUT_A); ...
#define turn_left OnFwd(OUT_A); Off(OUT_C); ...
#define go_straight OnFwd(OUT_AC); ...
#define STEP 3 ...
#define MAX 100 ...
#define cross_line go_forward;Wait(20); Off(OUT_AC); ...
**サブルーチン [#b7ebe574]
ライントレースの基本となる黒い線の端をなぞって進んでいく...
それぞれ3種類の動作は進んでいる場所の明るさによって線の上...
sub trace()
{
while(FastTimer(0) < MAX) { //MAXの...
ClearTimer(0); ...
if (SENSOR_2 < BLACK) { //線上の...
turn_right; //右折
}
else if(SENSOR_2 < WHITE ) { //境界付...
go_straight; //前進
}
else { //線から...
turn_left; //左折
}
Wait(STEP);
}
}
**メインタスク [#n4909171]
交差点とゴールを別のものと認識させるために3つ場合分けを...
交差点から三叉路に向かう際ボールを掴んで急停止することで...
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
ClearTimer(0);
int goal = 0; //ゴール...
while(goal != 2)
{
trace(); //ライン...
if(goal == 0) { //交差点...
Off(OUT_AC);
Wait(200); //点Qで...
cross_line;
turn_right;
Wait(30);
Off(OUT_AC);
Wait(200); //点Pで...
goal = 1; //次到達...
ClearTimer(0);
}
else if(goal == 1) { //ゴール...
turn_right; //直接ゴ...
Wait(80);
Off(OUT_AC);
goal = 2; //ライン...
}
}
}
*反省点と課題 [#d2fa31e3]
最初に作った説明書通りのロボットを動かすことに固執してし...
実際にライントレースをしてみると電灯の位置によりロボット...
*まとめ [#s91c64c4]
全体的に初動が遅く基本となるところで躓いてしまうことで時...
ページ名: