2016a/Member/kobayan219/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
*課題 [#m861cd37]
~&ref(./2016a-mission2.png);
~3つあるコースのうち、指定された1つのコースを選び、ロボ...
*機体の解説 [#a60e0a75]
~●全体像
~&ref(./index2.jpeg);
~機体はなるべく小さくし、曲がる動作がしやすくなるなど、ス...
~●上面
~&ref(./index.jpeg);
~円運動のように、車輪が中央のセンサーより距離が遠いほど揺...
~●真正面
~&ref(./index3.jpeg);
~センサーを電源の2番に取り付け、左車輪をA、右車輪をCに取...
~●底
~&ref(./index4.jpeg);
~摩擦の少ないタイヤを前方に取り付け、滑りやすい支えを後方...
*プログラム解説1【内部システム】 [#d33c658f]
~●線上を走るときのプログラムは、
~白 → 右旋回(A後退,C前進)
~白っぽい → 右折 (A動作なし,C前進)
~中間 → 直進 (AC両方前進)
~黒っぽい → 左折 (A前進,C動作なし)
~黒 → 左旋回(A前進,C後進)
~となっている。
#define middle 44 //光感知の度合い
int t=0; //交差点を通過する回数
~●室内の明るさや影の影響で交感知の調整において1違うだけで...
~光感度が44,45,46になった時にだいぶ動作が安定し、結果的に...
*プログラム解説2【交差点右折動作】 [#pba72224]
~(今回は右折のみ)
ClearTimer(0); //タイマー1の初期化
while(FastTimer(0)<=40)
{
if(SENSOR_2>middle+4) //左旋回
{
OnRev(OUT_A);
Onfwd(OUT_C);
ClearTimer(0);
}
else if(SENSOR_2>middle+2) //左折
{
OnFwd(OUT_A);
Off(OUT_C);
ClearTimer(0);
}
else if(SENSOR_2>middle) //直進
{
OnFwd(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>middle-2) //右折
{
OnFwd(OUT_C);
Off(OUT_A);
}
else //右旋回
{
OnFwd(OUT_A);
OnRev(OUT_C);
}
}
Off(OUT_AC);//一時停止
PlaySound(SOUND_CLICK);//確認音
PlaySound(SOUND_FAST_UP);//
Wait(100);//1秒停止
t++;
*プログラム解説3【交差点直進動作】 [#pf67aa76]
{
ClearTimer(0);
while(FastTimer(0)<=40)
{
if(SENSOR_2>middle+4) //左旋回
{
OnFwd(OUT_C);
OnRev(OUT_A);
ClearTimer(0);
}
else if(SENSOR_2>middle+2) //左折
{
OnFwd(OUT_A);
Off(OUT_C);
ClearTimer(0);
}
else if(SENSOR_2==middle) //直進
{
OnFwd(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>middle-2) //右折
{
OnFwd(OUT_C);
Off(OUT_A);
}
else //右旋回
{
OnFwd(OUT_A);
OnRev(OUT_C);
}
}
PlaySound(SOUND_CLICK);
Off(OUT_AC);
PlaySound(SOUND_FAST_UP);
Wait(100);
OnFwd(OUT_C);
Wait(50);
Off(OUT_AC);
t++;
PlaySound(SOUND_FAST_UP);
}
*交差点の判断方法 [#w26d36bb]
交差点の判断は先ほどの交差点のプログラムで示した、
ClearTimer(0); //タイマー1の初期化
while(FastTimer(0)<=40) //タイマー1の値が40以下(つまり...
~を用いて行う。これにより、一定時間で黒が連続して判断され...
*交差点の判断後の処理 [#e862b57f]
~※青線は理想的動作、赤線は実際の動作である。
~?内側を進みながら右折
~&ref(./index5.png);
RIGHT(); //交差点を右折
~交差点にきた機体が若干右に傾いたところで、 センサーが確...
~?直進
~&ref(./index6.png);
{STRAIGHT();} //交差点を直進(右傾きの利用)
~交差点にきた機体が若干右に傾いたところで、 センサーが確...
*実際の動作 [#f99b54b8]
B地点 → R右折 → Q直進 → Q直進 →P右折 → S右折 → C地点
~※右折、直進の動作が連続するときは、動作プログラムの下に、
repeat()
~を書き、連続する回数を()にいれて設定する。
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
OnFwd(OUT_AC);
RIGHT(); //1つ目の交差点を右折
repeat(2)
{STRAIGHT();} //2,3つ目の交差点を直進
repeat(3)
{RIGHT();} //3,4つ目の交差点を右折
}
*結果 [#w865412d]
誤差や失敗を20回以上繰り返しましたが、光度と動作の調...
*反省点 [#z290597c]
課題1に比べ、実際の動作の設定が少なかったが、調整の必要...
終了行:
[[2016a/Member]]
*課題 [#m861cd37]
~&ref(./2016a-mission2.png);
~3つあるコースのうち、指定された1つのコースを選び、ロボ...
*機体の解説 [#a60e0a75]
~●全体像
~&ref(./index2.jpeg);
~機体はなるべく小さくし、曲がる動作がしやすくなるなど、ス...
~●上面
~&ref(./index.jpeg);
~円運動のように、車輪が中央のセンサーより距離が遠いほど揺...
~●真正面
~&ref(./index3.jpeg);
~センサーを電源の2番に取り付け、左車輪をA、右車輪をCに取...
~●底
~&ref(./index4.jpeg);
~摩擦の少ないタイヤを前方に取り付け、滑りやすい支えを後方...
*プログラム解説1【内部システム】 [#d33c658f]
~●線上を走るときのプログラムは、
~白 → 右旋回(A後退,C前進)
~白っぽい → 右折 (A動作なし,C前進)
~中間 → 直進 (AC両方前進)
~黒っぽい → 左折 (A前進,C動作なし)
~黒 → 左旋回(A前進,C後進)
~となっている。
#define middle 44 //光感知の度合い
int t=0; //交差点を通過する回数
~●室内の明るさや影の影響で交感知の調整において1違うだけで...
~光感度が44,45,46になった時にだいぶ動作が安定し、結果的に...
*プログラム解説2【交差点右折動作】 [#pba72224]
~(今回は右折のみ)
ClearTimer(0); //タイマー1の初期化
while(FastTimer(0)<=40)
{
if(SENSOR_2>middle+4) //左旋回
{
OnRev(OUT_A);
Onfwd(OUT_C);
ClearTimer(0);
}
else if(SENSOR_2>middle+2) //左折
{
OnFwd(OUT_A);
Off(OUT_C);
ClearTimer(0);
}
else if(SENSOR_2>middle) //直進
{
OnFwd(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>middle-2) //右折
{
OnFwd(OUT_C);
Off(OUT_A);
}
else //右旋回
{
OnFwd(OUT_A);
OnRev(OUT_C);
}
}
Off(OUT_AC);//一時停止
PlaySound(SOUND_CLICK);//確認音
PlaySound(SOUND_FAST_UP);//
Wait(100);//1秒停止
t++;
*プログラム解説3【交差点直進動作】 [#pf67aa76]
{
ClearTimer(0);
while(FastTimer(0)<=40)
{
if(SENSOR_2>middle+4) //左旋回
{
OnFwd(OUT_C);
OnRev(OUT_A);
ClearTimer(0);
}
else if(SENSOR_2>middle+2) //左折
{
OnFwd(OUT_A);
Off(OUT_C);
ClearTimer(0);
}
else if(SENSOR_2==middle) //直進
{
OnFwd(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>middle-2) //右折
{
OnFwd(OUT_C);
Off(OUT_A);
}
else //右旋回
{
OnFwd(OUT_A);
OnRev(OUT_C);
}
}
PlaySound(SOUND_CLICK);
Off(OUT_AC);
PlaySound(SOUND_FAST_UP);
Wait(100);
OnFwd(OUT_C);
Wait(50);
Off(OUT_AC);
t++;
PlaySound(SOUND_FAST_UP);
}
*交差点の判断方法 [#w26d36bb]
交差点の判断は先ほどの交差点のプログラムで示した、
ClearTimer(0); //タイマー1の初期化
while(FastTimer(0)<=40) //タイマー1の値が40以下(つまり...
~を用いて行う。これにより、一定時間で黒が連続して判断され...
*交差点の判断後の処理 [#e862b57f]
~※青線は理想的動作、赤線は実際の動作である。
~?内側を進みながら右折
~&ref(./index5.png);
RIGHT(); //交差点を右折
~交差点にきた機体が若干右に傾いたところで、 センサーが確...
~?直進
~&ref(./index6.png);
{STRAIGHT();} //交差点を直進(右傾きの利用)
~交差点にきた機体が若干右に傾いたところで、 センサーが確...
*実際の動作 [#f99b54b8]
B地点 → R右折 → Q直進 → Q直進 →P右折 → S右折 → C地点
~※右折、直進の動作が連続するときは、動作プログラムの下に、
repeat()
~を書き、連続する回数を()にいれて設定する。
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
OnFwd(OUT_AC);
RIGHT(); //1つ目の交差点を右折
repeat(2)
{STRAIGHT();} //2,3つ目の交差点を直進
repeat(3)
{RIGHT();} //3,4つ目の交差点を右折
}
*結果 [#w865412d]
誤差や失敗を20回以上繰り返しましたが、光度と動作の調...
*反省点 [#z290597c]
課題1に比べ、実際の動作の設定が少なかったが、調整の必要...
ページ名: