2012a/A3/maabo/M2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*課題2 ライントレースをするロボット [#jcd8ae35]
**ロボット本体 [#o3420e6e]
ライントレースが主な内容なので、特に工夫されている所はありません。
~あえていうなら、ライントレースをなるべく正確に行うために、車軸近くにセンサーを取り付けました。
~あと、ロボットは左右対称になっています。
&ref(robo1.JPG);
&ref(robo2.JPG);
**コース [#j7704333]
コースは、比較的シンプルな造りになっています。
-ヘアピンカーブ 1
-十字路 2
-直角カーブ 1
&ref(course.JPG);
ロボットは左回りにライントレースをするようになっています。
**ライントレース方法 [#pa3204de]
&ref(figure1.jpg);
&ref(figure2.jpg);
**脱出方法 [#a3807291]
&ref(figure3.jpg);
**プログラム [#z8e67d41]
#define THRESHOLD 48
task main()
{
long fTime=0,time=0;
bool escape=false;
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensorLight(IN_1);//光センサーを設定
fTime = CurrentTick(); //時間取得
while(true)
{
time = CurrentTick() - fTime;
if(time >= 65000) //timeが65秒を超えたとき
{
if(SENSOR_1 >= THRESHOLD) //白
{
while(SENSOR_1 >= THRESHOLD) //黒い線を見つけるまで、繰り返し
{
OnFwd(OUT_C,50);
Off(OUT_A);
}
}
while(SENSOR_1 < THRESHOLD) //黒い線の外側に移動
{
OnFwd(OUT_AC,70);
Off(OUT_AC);
}
escape = true;
}
if(escape == false) //脱出しない場合
{
if(SENSOR_1 < THRESHOLD) //黒
{
OnFwd(OUT_A,45);
Off(OUT_C);
}
else if(SENSOR_1 >= THRESHOLD) //白
{
OnFwd(OUT_C,45);
Off(OUT_A);
}
}
else if(escape == true) //脱出の時
{
if(SENSOR_1 < THRESHOLD) //黒
{
OnFwd(OUT_C,45);
Off(OUT_A);
}
else if(SENSOR_1 >= THRESHOLD) //白
{
OnFwd(OUT_A,45);
Off(OUT_C);
}
}
}
Off(OUT_AC);
}
**感想 [#ec925aa0]
ライントレースは簡単だと思っていたが、難しく、大変だった。
~脱出方法を考えるのが意外と難しかった。
~時間によって脱出する方法は、失敗する時もあったので、もっとよい脱出方法を考えられればよかった。
~もっと早く、正確にトレースできるようにしたいと思った。
終了行:
#contents
*課題2 ライントレースをするロボット [#jcd8ae35]
**ロボット本体 [#o3420e6e]
ライントレースが主な内容なので、特に工夫されている所はありません。
~あえていうなら、ライントレースをなるべく正確に行うために、車軸近くにセンサーを取り付けました。
~あと、ロボットは左右対称になっています。
&ref(robo1.JPG);
&ref(robo2.JPG);
**コース [#j7704333]
コースは、比較的シンプルな造りになっています。
-ヘアピンカーブ 1
-十字路 2
-直角カーブ 1
&ref(course.JPG);
ロボットは左回りにライントレースをするようになっています。
**ライントレース方法 [#pa3204de]
&ref(figure1.jpg);
&ref(figure2.jpg);
**脱出方法 [#a3807291]
&ref(figure3.jpg);
**プログラム [#z8e67d41]
#define THRESHOLD 48
task main()
{
long fTime=0,time=0;
bool escape=false;
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensorLight(IN_1);//光センサーを設定
fTime = CurrentTick(); //時間取得
while(true)
{
time = CurrentTick() - fTime;
if(time >= 65000) //timeが65秒を超えたとき
{
if(SENSOR_1 >= THRESHOLD) //白
{
while(SENSOR_1 >= THRESHOLD) //黒い線を見つけるまで、繰り返し
{
OnFwd(OUT_C,50);
Off(OUT_A);
}
}
while(SENSOR_1 < THRESHOLD) //黒い線の外側に移動
{
OnFwd(OUT_AC,70);
Off(OUT_AC);
}
escape = true;
}
if(escape == false) //脱出しない場合
{
if(SENSOR_1 < THRESHOLD) //黒
{
OnFwd(OUT_A,45);
Off(OUT_C);
}
else if(SENSOR_1 >= THRESHOLD) //白
{
OnFwd(OUT_C,45);
Off(OUT_A);
}
}
else if(escape == true) //脱出の時
{
if(SENSOR_1 < THRESHOLD) //黒
{
OnFwd(OUT_C,45);
Off(OUT_A);
}
else if(SENSOR_1 >= THRESHOLD) //白
{
OnFwd(OUT_A,45);
Off(OUT_C);
}
}
}
Off(OUT_AC);
}
**感想 [#ec925aa0]
ライントレースは簡単だと思っていたが、難しく、大変だった。
~脱出方法を考えるのが意外と難しかった。
~時間によって脱出する方法は、失敗する時もあったので、もっとよい脱出方法を考えられればよかった。
~もっと早く、正確にトレースできるようにしたいと思った。
ページ名: