2016a/Member/kuzusan/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*はじめに [#x34128b0]
~risを使って光センサーによりライントレースを行う。
~自分達でコースを作成し、出来るだけ早くゴールすることを目的とする。
~コースは以下の通りである。
#ref(./2016a-mission2.png)
~自分は今回A→P→Q→R→Bのコースを担当した
*ロボット本体の説明 [#hafc71dd]
今回使ったロボットは以下である
#ref(./index.jpeg)
~ロボットの中心がラインの中心になるよう光センサーは少し左に設置した
~ラインを判別しやすいよう光センサーはできるだけ地面に近づけました。
*プログラムの説明 [#b8fd6fc1]
~最初に以下の定義をした。
#define Black 42 //これ以下は黒
#define White 51 //これ以上は白
#define turn_right OnFwd(OUT_A); OnRev(OUT_C); Wait(turn_time); //右へ旋回
#define turn_rightP OnFwd(OUT_A); Off(OUT_C); Wait(turn_time);//右折
#define turn_left OnFwd(OUT_C); OnRev(OUT_A); Wait(turn_time); //左へ旋回
#define turn_leftP OnFwd(OUT_C); Off(OUT_A); Wait(turn_time);//左折
#define go_forward(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC);//直進
#define STEP 1
**サブルーチン [#r1d2d76f]
~タスクメインを簡単にするために以下のサブルーチンを利用した。
sub line_trace()
{
ClearTimer(0);
while(FastTimer(0) <=50){
if (SENSOR_2 < Black) { //黒
turn_right;
} else if (SENSOR_2 < Black ) { //黒よりの灰色
turn_rightP;
} else if (SENSOR_2 > White) { //白よりの灰色
turn_leftP;
ClearTimer(0);
} else if (SENSOR_2 >= White) { //白
turn_left;
ClearTimer(0);
} else { //それ以外
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
PlaySound(SOUND_UP);
Wait(110);
}
sub line_left()
{
while (FastTimer(0) < 140 ) {
turn_leftP;
}
ClearTimer(0);
}
sub line_left_H()
{
while (FastTimer(0) < 230) {
turn_left;
}
ClearTimer(0);
}
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
go_forward(130);
line_trace();
line_left();
line_trace();
line_left();
line_trace();
line_left();
line_trace();
line_left_H();
go_forward(130);
line_trace();
}
**交差点の判別方法 [#q384152f]
FastTimerを使い、一定時間右旋回か右折が続いたら交差点と判断するようにした。
sub line_trace()
{
ClearTimer(0);
while(FastTimer(0) <=50){
if (SENSOR_2 < Black) { //黒
turn_right;
} else if (SENSOR_2 < Black ) { //黒よりの灰色
turn_rightP;
} else if (SENSOR_2 > White) { //白よりの灰色
turn_leftP;
ClearTimer(0);
} else if (SENSOR_2 >= White) { //白
turn_left;
ClearTimer(0);
} else { //それ以外
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
*感想 [#p4768ef8]
僕自身の感想だが、前回より格段に難易度が上がっている気がする。今回も100%ゴールできたわけではなかったので次の最後の課題を頑張りたい
終了行:
目次
#contents
*はじめに [#x34128b0]
~risを使って光センサーによりライントレースを行う。
~自分達でコースを作成し、出来るだけ早くゴールすることを目的とする。
~コースは以下の通りである。
#ref(./2016a-mission2.png)
~自分は今回A→P→Q→R→Bのコースを担当した
*ロボット本体の説明 [#hafc71dd]
今回使ったロボットは以下である
#ref(./index.jpeg)
~ロボットの中心がラインの中心になるよう光センサーは少し左に設置した
~ラインを判別しやすいよう光センサーはできるだけ地面に近づけました。
*プログラムの説明 [#b8fd6fc1]
~最初に以下の定義をした。
#define Black 42 //これ以下は黒
#define White 51 //これ以上は白
#define turn_right OnFwd(OUT_A); OnRev(OUT_C); Wait(turn_time); //右へ旋回
#define turn_rightP OnFwd(OUT_A); Off(OUT_C); Wait(turn_time);//右折
#define turn_left OnFwd(OUT_C); OnRev(OUT_A); Wait(turn_time); //左へ旋回
#define turn_leftP OnFwd(OUT_C); Off(OUT_A); Wait(turn_time);//左折
#define go_forward(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC);//直進
#define STEP 1
**サブルーチン [#r1d2d76f]
~タスクメインを簡単にするために以下のサブルーチンを利用した。
sub line_trace()
{
ClearTimer(0);
while(FastTimer(0) <=50){
if (SENSOR_2 < Black) { //黒
turn_right;
} else if (SENSOR_2 < Black ) { //黒よりの灰色
turn_rightP;
} else if (SENSOR_2 > White) { //白よりの灰色
turn_leftP;
ClearTimer(0);
} else if (SENSOR_2 >= White) { //白
turn_left;
ClearTimer(0);
} else { //それ以外
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
PlaySound(SOUND_UP);
Wait(110);
}
sub line_left()
{
while (FastTimer(0) < 140 ) {
turn_leftP;
}
ClearTimer(0);
}
sub line_left_H()
{
while (FastTimer(0) < 230) {
turn_left;
}
ClearTimer(0);
}
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
go_forward(130);
line_trace();
line_left();
line_trace();
line_left();
line_trace();
line_left();
line_trace();
line_left_H();
go_forward(130);
line_trace();
}
**交差点の判別方法 [#q384152f]
FastTimerを使い、一定時間右旋回か右折が続いたら交差点と判断するようにした。
sub line_trace()
{
ClearTimer(0);
while(FastTimer(0) <=50){
if (SENSOR_2 < Black) { //黒
turn_right;
} else if (SENSOR_2 < Black ) { //黒よりの灰色
turn_rightP;
} else if (SENSOR_2 > White) { //白よりの灰色
turn_leftP;
ClearTimer(0);
} else if (SENSOR_2 >= White) { //白
turn_left;
ClearTimer(0);
} else { //それ以外
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
*感想 [#p4768ef8]
僕自身の感想だが、前回より格段に難易度が上がっている気がする。今回も100%ゴールできたわけではなかったので次の最後の課題を頑張りたい
ページ名: