- 追加された行はこの色です。
- 削除された行はこの色です。
*//演奏ロボット// [#u813c74d]
#define Do 523
#define Re 587
#define Mi 659
#define Mi 659//変数を決める
int m;//変数m(mは定数)
int m;
task play_music1(){
task play_music1(){
while(true){
m=30;
PlayTone(Do,25); Wait(m);
PlayTone(Re,25); Wait(m);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,25); Wait(m);
PlayTone(Do,25); Wait(m);
PlayTone(Do,25); Wait(m);
PlayTone(Re,25); Wait(m);
PlayTone(Mi,25); Wait(m);
PlayTone(Re,25); Wait(m);
PlayTone(Do,25); Wait(m);
PlayTone(Re,50); Wait(55);
m=25;
PlayTone(Do,20); Wait(m);
PlayTone(Re,20); Wait(m);
PlayTone(Mi,40); Wait(45);
PlayTone(Re,20); Wait(m);
PlayTone(Do,20); Wait(m);
PlayTone(Do,20); Wait(m);
PlayTone(Re,20); Wait(m);
PlayTone(Mi,20); Wait(m);
PlayTone(Re,20); Wait(m);
PlayTone(Do,20); Wait(m);
PlayTone(Re,40); Wait(45);
Wait(15);
}
}
task play_music2(){
while(true){
m=55;
PlayTone(Re,50);Wait(m);
Wait(15); }
PlayTone(Re,50);Wait(55);
Wait(50); }
}
task main(){
int time;
SetSensor(SENSOR_3,SENSOR_TOUCH); time=200 ;
SetSensor(SENSOR_3,SENSOR_TOUCH); time=250 ;
while(true){
stop play_music2;
start play_music1; OnFwd(OUT_A); until(SENSOR_3==1);
stop play_music2; start play_music1; //play_music2を止めてplay_music1
を再生
OnFwd(OUT_A); until(SENSOR_3==1);//センサーが押されるまで前進
if(SENSOR_3==1){
stop play_music1; start play_music2;
OnRev(OUT_A);Wait(time);
stop play_music1; start play_music2;///play_music1を止めてplay_music2
を再生
OnRev(OUT_A);Wait(time);//250秒間後退
}
}
Off(OUT_A+OUT_C);
}
Off(OUT_A+OUT_C);//停止
*《反省・感想》 [#k4d20938]
曲を二つ作り前進と後進で音楽を変えた。モーターを一つにした。
モータ1つで方向変換などの動作を行なうことが難しく、ロボットの本体の作成にも時間がかかった。またプログラムでtask mainなどは1,2と数値を付ければ、何個かプログラムを作成できることがわかった。(ここではtask play_music)