#define migi OUT_A
#define hidari OUT_C
#define ageru OUT_B
#define midori 39
task main()
{SetSensor(SENSOR_2,SENSOR_TOUCH); //壁に当たると反応するタッチセンサー SetSensor(SENSOR_1,SENSOR_LIGHT); //ライントレース用の光センサー OnRev(migi+hidari); Wait(300); //緑の線までバック
OnRev(migi+hidari); until(SENSOR_1 == midori);
Off(migi+hidari); Off(migi); OnFwd(hidari); Wait(250); //左を向く Off(migi+hidari); Wait(100); ClearTimer(0); while(Timer(0) <= 35) //3.5秒間緑の線をトレース {if(SENSOR_1 < midori) {OnFwd(hidari); Off(migi);} else{Off(hidari); OnFwd(migi);}}
OnFwd(migi); OnRev(hidari); Wait(110); //右を向く
Off(migi+hidari); Wait(100); OnRev(migi+hidari); //少しバック until(SENSOR_1 == midori); OnRev(migi+hidari); Wait(150); Off(migi+hidari); Wait(100); repeat(25){ //以下の動作を25回繰り返す
SetSensor(SENSOR_3,SENSOR_LIGHT); //パックに反応する光センサー
if(SENSOR_3 < 36) //ロボの前にパックがきたら {PlaySound(SOUND_UP); OnFwd(ageru);OnFwd(migi+hidari); //壁に当たるまで前進 until(SENSOR_2 == 1); Off(migi+hidari);Wait(100); OnFor(ageru,1500); //15秒間パックを持ち上げる動作をする OnRev(migi+hidari); Wait(200); //少しバック Off(migi+hidari);} }
}
#include "spy.nqh"
#define migi OUT_A
#define hidari OUT_B
task main()
{OnFwd(migi+hidari); Wait(700); //前進してUターンする Off(migi+hidari); Wait(50); OnFwd(hidari);Off(migi); Wait(600); Off(migi+hidari); Wait(50);
repeat(15) //以下の動作を15回繰り返す {Wait(100); OnFwd(migi+hidari); //壁に当たるまで前進 until(SENSOR_1==1); //SENSOR_1はタッチセンサー Off(migi+hidari); Wait(50); OnRev(migi+hidari); Wait(45); //少しバック Off(migi+hidari); Wait(50); OnFwd(migi); SetPower(migi,7); Off(hidari); Wait(300); //左を向く Off(migi+hidari); Wait(50); OnFwd(migi+hidari); Wait(100); //少し前進して、持ち上げるロボの前にパックを置く Off(migi+hidari); Wait(50); OnRev(migi+hidari); Wait(300); //少しバック Off(migi+hidari); Wait(50); OnFwd(migi); SetPower(migi,7); Off(hidari); Wait(280); //左を向く OnFwd(migi+hidari); Wait(500); //前進 Off(migi+hidari); Wait(50); OnFwd(hidari);Off(migi); Wait(550); //Uターン Off(migi+hidari); Wait(50); }
}
task main() {
OnFwd(OUT_A); //前進 PlaySound(SOUND_CLICK); Wait(200); //意味なくいろんな音を出す PlaySound(SOUND_DOUBLE_BEEP); Wait(200); PlaySound(SOUND_DOWN); Wait(200); PlaySound(SOUND_UP); Wait(200); PlaySound(SOUND_LOW_BEEP); Wait(200); PlaySound(SOUND_FAST_UP); Wait(200); repeat(10){ //以下の動作を10回繰り返す ClearTimer(0); while(Timer(0) <=50){SendMessage(0);} //妨害電波を出しながら時々バック OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=100){SendMessage(1);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=150){SendMessage(2);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=200){SendMessage(3);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=250){SendMessage(4);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=300){SendMessage(5);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=350){SendMessage(6);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=400){SendMessage(7);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=450){SendMessage(8);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=500){SendMessage(9);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=550){SendMessage(10);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=600){SendMessage(11);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=650){SendMessage(12);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=700){SendMessage(13);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=750){SendMessage(14);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=800){SendMessage(15);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=850){SendMessage(16);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=900){SendMessage(17);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=950){SendMessage(18);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=1000){SendMessage(19);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); while(Timer(0) <=1050){SendMessage(20);} OnRev(OUT_A); Wait(50); OnFwd(OUT_A); }
}