- 追加された行はこの色です。
- 削除された行はこの色です。
[[戻る>2005/A6/課題3]]
*ラインに沿って動くロボットのプログラム [#u523a339]
**センサー2つ モーター2つ用プログラム [#i1c29a33]
#ref(2005/A6/課題3左/sensor-2.jpeg,200%,nolink)
// 12月2日
// コンド・AI・やまぐぐ
// 軽量化によってある程度スピードが出るようになってしまい、強度面の問題もあって少々苦労した。
// 命名:ライトセンサー壱号(兄貴)
#define line 47 // 明暗のおよその境界値
task main() // ライトセンサーを使ったプログラム
{
SetSensor(SENSOR_1, SENSOR_LIGHT); // 左側のライトセンサー
SetSensor(SENSOR_3, SENSOR_LIGHT); // 右側のライトセンサー
OnFwd(OUT_A + OUT_C); // 前進する
while(true)
{
if((SENSOR_1 < line) && (SENSOR_3 > line)) // 左センサーがライン上のとき
{
OnFwd(OUT_C); // 右タイヤが正転
Off(OUT_A); // 左タイヤが停止
until(SENSOR_1 > line); // 両センサーがライン外に出るまで
}
if((SENSOR_1 > line) && (SENSOR_3 < line)) // 右センサーがライン上のとき
{
OnFwd(OUT_A); // 左タイヤが正転
Off(OUT_C); // 右タイヤが停止
until(SENSOR_3 > line); // 両センサーがライン外に出るまで
}
else // 特に問題が無い場合
{
OnFwd(OUT_A + OUT_C); // 前進する
}
}
}
#comment
**センサー1つ モーター1つのプログラム [#qb9b1a74]
#ref(2005/A6/課題3左/sensor-1.jpeg,left,200%,nolink)
// 12月2日
// コンド・AI・やまぐぐ
// トップシークレットのギアの組み方をもとにし、タイヤは二輪(前部に支え付)にしました
// トップシークレットのギアの組み方をもとにし、タイヤは二輪(前部に支え付)にしました。
// 命名:ライトセンサー弐号(弟)
#define line 47 // 明暗のおよその境界値
task main() // ライトセンサーを使ったプログラム
{
SetSensor(SENSOR_2, SENSOR_LIGHT); // 真ん中のライトセンサー
while(true)
{
if(SENSOR_2 < line) // 真ん中センサーがライン上のとき
{
OnFwd(OUT_B); // 左に曲がる
until(SENSOR_2 > line); // センサーがライン外に出るまで
}
else // その他の場合
{
OnRev(OUT_B); // 右に曲がる
until(SENSOR_2 < line); // ライン内に入るまで
}
}
}
#comment