- 追加された行はこの色です。
- 削除された行はこの色です。
[[2005/B1]]
左を書くプログラム
task main(){
OnRev(OUT_B);//ペンを上げる
OnFwd(OUT_B);//ペンを下げる
Wait(30);
Off(OUT_B);
Wait(30);
OnFwd(OUT_A+OUT_C);//直線を進む
Wait(250);
Off(OUT_A+OUT_C);
OnRev(OUT_B);//ペンを上げる
Wait(30);
Off(OUT_B);
Wait(30);
OnRev(OUT_A+OUT_C);//直線を戻る
Wait(100);//三分の一ぐらいまで
OnFwd(OUT_A);//直角に曲がる
Wait(90);
OnRev(OUT_A+OUT_C);//曲線の始めの点にいく
Wait(90);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);//ペンを下げる
Wait(30);
Off(OUT_B);
Wait(30);
repeat(18){//曲線部分を書く
OnFwd(OUT_A+OUT_C);
Wait(20);
Off(OUT_C);
Wait(3);
}
OnRev(OUT_B);//ペンを上げる
Wait(30);
Off(OUT_B);
repeat(7){//曲線部分を途中まで戻る
OnRev(OUT_A+OUT_C);
Wait(20);
Off(OUT_A);
Wait(3);
}
Off(OUT_A+OUT_C);
OnFwd(OUT_A);OnRev(OUT_C);//直角に曲がる
Wait(90);
Off(OUT_A+OUT_C);
//ここから工の部分
//ここから工の部分
OnFwd(OUT_B);//ペンを下げる
Wait(30);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);//直線を進む
Wait(100);
Off(OUT_A+OUT_C);
OnRev(OUT_B);//ペンを上げる
Wait(30);
Off(OUT_A);
OnRev(OUT_A+OUT_C);//直線を戻る
Wait(50);//半分ぐらいまで
OnFwd(OUT_C);//直角に曲がる
Wait(90);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);//ペンを下げる
Wait(30);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);//直線を進む
Wait(30);
Off(OUT_A+OUT_C);
OnRev(OUT_B);//ペンを上げる
Wait(30);
Off(OUT_B);
OnRev(OUT_C);OnFwd(OUT_A);//直角に曲がる
Wait(90);
OnRev(OUT_A+OUT_C);//最後の直線の始まりの部分に行く
Wait(70);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);//ペンを下げる
Wait(30);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);//直線を進む
Wait(140);
Off(OUT_A+OUT_C);
}
-関数やマクロを使ってもう少しプログラムを整理してみよう。 -- [[まいける(TA)]] &new{2005-12-02 (金) 17:01:18};
#comment
机の壁に沿って進むプログラム
task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH); //タッチセンサーだと宣言
SetSensor(SENSOR_2,SENSOR_TOUCH);
while(true)
{
while(SENSOR_1 == 1){ //センサー1がONならば以下の行動を繰り返す
OnRev(OUT_A);
OnRev(OUT_C);
Wait(1);
Off(OUT_A);
Wait(1);
}
if(SENSOR_1==0){ //もしセンサー1がOFFならば以下の行動をする
Off(OUT_C);
OnRev(OUT_A);
}
if(SENSOR_2==1){ //もしセンサー2がONならば以下の行動をする
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(150);
Off(OUT_C);
OnRev(OUT_A);
}
}
}
ライントレースするプログラム(センサー*1モーター*2
#define THRESHOLD 40 //明るさ
task main ()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
while (true) {
if (SENSOR_2 < THRESHOLD) { // 黒線上にいるとき
OnRev(OUT_A);
Off(OUT_C);
} else { // 黒線から外れたとき
Off(OUT_A);
OnRev(OUT_C);
}
}
}
ライントレースするプログラム(センサー*2モーター*2
#define light 42 //明るさ
task main ()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while (true){
if(SENSOR_1 > light){
OnRev(OUT_A);
}
else{
OnFwd(OUT_A);
}
if(SENSOR_3 > light){
OnRev(OUT_C);
}
else{
OnFwd(OUT_C);
}
}
}