- 追加された行はこの色です。
- 削除された行はこの色です。
[[戻る>2005/A6]]
*製作中のプログラム [#c4c4fb09]
**机の周りを回るロボット [#if1dd803]
#define little 37 // 後退する時間
task main() // 反時計回りに机の周りを回るプログラム
{
SetSensor(SENSOR_1, SENSOR_TOUCH); // 右側のセンサー
SetSensor(SENSOR_3, SENSOR_TOUCH); // 左側のセンサー
{
SetSensor(SENSOR_1, SENSOR_TOUCH); // 右側のセンサー
SetSensor(SENSOR_3, SENSOR_TOUCH); // 左側のセンサー
while (true)
{
{
if(SENSOR_3 == 1) // 右側のセンサーが触れる
{
Off(OUT_C); // 左側のタイヤが止まる
OnFwd(OUT_A); // 右側のタイヤが正転する
}
if((SENSOR_1 == 0) && (SENSOR_3 == 1)) // 右側のセンサーが触れる
{
Off(OUT_C); // 左側のタイヤを止める
OnFwd(OUT_A); // 右側のタイヤが正転する
until(SENSOR_3 == 0); // 右側のセンサーが離れるまで回る
}
if(SENSOR_3 == 0) // 右側のセンサーが離れる
{
Off(OUT_A); // 右側のタイヤが止まる
OnFwd(OUT_C); // 左側のタイヤが正転する
}
if((SENSOR_1 == 0) && (SENSOR_3 == 0)) // 右側のセンサーが離れる
{
Off(OUT_A); // 右側のタイヤが止まる
OnFwd(OUT_C); // 左側のタイヤが正転する
until(SENSOR_3 == 1); // 右側のセンサーが触れるまで回る
}
if(SENSOR_1 == 1) // 左側のセンサーが触れる
{
OnFwd(OUT_A); // 右側のタイヤが正転する
OnRev(OUT_C); // 左側のタイヤが逆転する
}
else // 壁に衝突する
{
OnRev(OUT_A + OUT_C); // 両側のタイヤが逆転する
Wait(little); // しばし待つ
Off(OUT_C); // 左側のタイヤを止める
OnFwd(OUT_A); // 右側のタイヤが正転する
until(SENSOR_3 == 1); // 右側のセンサーが壁に当たるまで回る
}
}
}
}
}
#comment
*製作したプログラム 『これまでの流れ』 [#c0e77817]
**一番最初に作ったプログラム [#cb967754]
// 初めてロボットを動かした時のプログラム
task main()
{
OnFwd(OUT_A);
OnFwd(OUT_C);
Wait(110);
Off(OUT_A+OUT_C);
} // ただ進んで止まるだけ
#comment
**二番目に作った三角形を書くプログラム [#tc0fe390]
//『repeat』プログラムを使えば簡単だった・・・
task main()
{
OnFwd(OUT_A+OUT_C);
Wait(150);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(110);
OnFwd(OUT_A+OUT_C);
Wait(150);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(110);
OnFwd(OUT_A+OUT_C);
Wait(150);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(110);
OnFwd(OUT_A+OUT_C);
Wait(150);
} // 正三角形の軌跡を残すだけ
#comment
task main()
{
repeat(3)
{
OnFwd(OUT_A+OUT_C);
Wait(150); // 一つの辺の軌跡を書く
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(110); // 一つの角の軌跡を書く
}
} // 『repeat』を使ったプログラム
#comment
**課題1についてのプログラム [#r8c50d1d]
[[2005/A6/課題1/一班/コンドのプログラム]]