- 追加された行はこの色です。
- 削除された行はこの色です。
[[戻る>2005/A6]]
*製作中のプログラム [#c4c4fb09]
#define line 40
// センサー2つ モーター2つ用プログラム
// 11月28日
// コンド
// 軽量化によってある程度スピードが出るようになってしまい、強度面の問題もあって少々苦労した。
task main() // 光センサーを使った簡単なプログラム
#define line 47 // 明暗のおよその境界値
task main() // ライトセンサーを使ったプログラム
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
SetSensor(SENSOR_1, SENSOR_LIGHT); // 左側のライトセンサー
SetSensor(SENSOR_3, SENSOR_LIGHT); // 右側のライトセンサー
OnFwd(OUT_A + OUT_C); // 前進する
while(true)
{
if(SENSOR_1 < line) // ライン上は右に曲がる
if((SENSOR_1 < line) && (SENSOR_3 > line)) // 左センサーがライン上のとき
{
OnFwd(OUT_C);
Off(OUT_A);
OnFwd(OUT_C); // 右タイヤが正転
Off(OUT_A); // 左タイヤが停止
until(SENSOR_1 > line); // 両センサーがライン外に出るまで
}
else
if((SENSOR_1 > line) && (SENSOR_3 < line)) // 右センサーがライン上のとき
{
OnFwd(OUT_A); // ライン外は左に曲がる
Off(OUT_C);
OnFwd(OUT_A); // 左タイヤが正転
Off(OUT_C); // 右タイヤが停止
until(SENSOR_3 > line); // 両センサーがライン外に出るまで
}
else // 特に問題が無い場合
{
OnFwd(OUT_A + OUT_C); // 前進する
}
}
}
*製作したプログラム 『これまでの流れ』 [#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』を使ったプログラム
{
repeat(3)
{
OnFwd(OUT_A+OUT_C);
Wait(150); // 一つの辺の軌跡を書く
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(110); // 一つの角の軌跡を書く
}
}
#comment
**課題1についてのプログラム [#r8c50d1d]
[[2005/A6/課題1/一班/コンドのプログラム]]
**課題2についてのプログラム [#efca2f18]
// 11月24日
// コンド
// 何度も失敗して、一周する確率が一番高くなったときのプログラム
// 一番大きいタイヤを使用し、バンパーにホイールやら補強やらとにかく取りつけてみました。
#define little 37 // 後退する時間
task main() // 反時計回りに机の周りを回るプログラム
{
SetSensor(SENSOR_1, SENSOR_TOUCH); // 右側のセンサー
SetSensor(SENSOR_3, SENSOR_TOUCH); // 左側のセンサー
while (true)
{
if((SENSOR_1 == 0) && (SENSOR_3 == 1)) // 右側のセンサーが触れる
{
Off(OUT_C); // 左側のタイヤを止める
OnFwd(OUT_A); // 右側のタイヤが正転する
until(SENSOR_3 == 0); // 右側のセンサーが離れるまで回る
}
if((SENSOR_1 == 0) && (SENSOR_3 == 0)) // 右側のセンサーが離れる
{
Off(OUT_A); // 右側のタイヤが止まる
OnFwd(OUT_C); // 左側のタイヤが正転する
until(SENSOR_3 == 1); // 右側のセンサーが触れるまで回る
}
else // 壁に衝突する
{
OnRev(OUT_A + OUT_C); // 両側のタイヤが逆転する
Wait(little); // しばし待つ
Off(OUT_C); // 左側のタイヤを止める
OnFwd(OUT_A); // 右側のタイヤが正転する
until(SENSOR_3 == 1); // 右側のセンサーが壁に当たるまで回る
}
}
}
-どんな感じのロボットか、プログラムとセットでロボットの説明もあるといいですね。 -- [[松本(教員)]] &new{2005-11-24 (木) 21:43:19};
[[2005/A6/課題2左]]
#comment