部屋が明るいためセンサーがうまく働かなかったので、光に近付くと後退する
 光から逃げるロボットにしました。
 光が暗いときは前進でアニメ『トムとジェリー』に流れる音楽、光を感知すると
 ドラクエに流れる音楽を出して後退し(逃げ)ます。
 工夫として事前にtameshi13で『トムとジェリー』に流れる音楽を調整し、
 またサブルーチンを使ってプログラムの簡略化を計ってみました

-[[tameshi13>2004/C5/tameshi13]]

 /*tameshi12*/   //hikari de   koutai
 #define THRESHOLD 40
 #define RUN_TIME 150
 #define Do  523
 #define Do1  554
 #define Re  587
 #define Re1  622
 #define Mi  659
 #define Fa  698
 #define Fa1  740
 #define So  784
 #define So1  831
 #define Ra  880
 #define Ra1  932
 #define Si  988
 
 task winner()
 {
 while(true)
 {
 PlayTone(Mi,10);Wait(15);
 PlayTone(Mi,10);Wait(15);
 PlayTone(Mi,10);Wait(15);
 PlayTone(Mi,20);Wait(30);
 PlayTone(Re,10);Wait(15);
 PlayTone(So,10);Wait(15);
 PlayTone(Fa,40);Wait(50);
 PlayTone(349,40); Wait(50);
 }
 } 
 
 task tom()
 {
 while(true)
 {
 PlayTone(So,10);Wait(30);
 PlayTone(Mi,10);Wait(30);
 PlayTone(So,10);Wait(15);
 PlayTone(Ra,10);Wait(15);
 PlayTone(So,10);Wait(45); 
 
 PlayTone(So,10);Wait(15);
 PlayTone(Mi,10);Wait(15);
 PlayTone(So,10);Wait(15);
 PlayTone(Mi,10);Wait(30);
 
 PlayTone(Do,10);Wait(30);
 PlayTone(Do,10);Wait(15);
 PlayTone(Do,10);Wait(15);
 PlayTone(Do,10);Wait(15);
 
 PlayTone(So,10);Wait(30);
 PlayTone(Mi,10);Wait(30);
 PlayTone(Do,10);Wait(15);
 PlayTone(Do,10);Wait(15);
 
 PlayTone(Ra,10);Wait(30);
 PlayTone(So,10);Wait(15);
 
 PlayTone(Mi,10);Wait(15);
 PlayTone(Re,10);Wait(15);
 
 PlayTone(1319,10);Wait(15);
 PlayTone(1175,10);Wait(15);
 
 PlayTone(Mi,10);Wait(15);
 PlayTone(Re,10);Wait(30);
 PlayTone(Do,10);Wait(30);
 }}
 
 sub go()
 { OnFwd(OUT_A); }
 
 sub back()
 { OnRev(OUT_A); }
 
 task main()
 {
 SetSensor(SENSOR_1,SENSOR_LIGHT);
 ClearTimer(0);
 while(Timer(0)<=RUN_TIME)
 { if(SENSOR_1<THRESHOLD)
 { go();
 start tom; 
 else
 {
 back();
 start winner;
 } 
 } 
 }

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS