- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006a/B5]]
**光を追いかけるロボット [#i150c5d2]
*光源を見失った時には明るさに比例した周波数の音を出しながら旋回して光源を探すプログラム [#ea631c4d]
*光を追いかけるロボット [#i150c5d2]
**光源を見失った時には明るさに比例した周波数の音を出しながら旋回して光源を探すプログラム [#ea631c4d]
task main ()
{
SetSensor (SENSOR_1, SENSOR_LIGHT);
SetSensor (SENSOR_2, SENSOR_LIGHT);
while (true)
{
if(SENSOR_1 > SENSOR_3) //SENSOR_1の値がSENSOR_3の値より大きい場合
{
OnFwd(OUT_A);
Off(OUT_C);
PlayTone(SENSOR_1 * 10, 3); //SENSOR_1の値の10倍の周波数の音を出しながら右に旋回
}
if(SENSOR_1 < SENSOR_3) //SENSOR_3の値がSENSOR_1の値より大きい場合
{
OnFwd(OUT_C);
Off(OUT_A);
PlayTone(SENSOR_3 * 10, 3); //SENSOR_3の値の10倍の周波数の音を出しながら左に旋回
}
}
}
** [#ged5ee8c]
**光を見失ったら、曲を演奏しながら光を探す [#dccc4295]
#define Do 523 //----------音楽-----------
#define Re 587
#define Mi 659
#define Fa 698
#define Sol 784
#define Ra 880
#define Si 988
#define Doa 1047
#define Rea 1175
#define Mia 1319
#define Faa 1397
task music() //音楽演奏用タスク[music]を指定
{
while (true) //↓演奏プログラム[高橋]
{
PlayTone(Mi,15); Wait(20);
PlayTone(Sol,15); Wait(20);
PlayTone(Doa,15); Wait(20);
PlayTone(Doa,35); Wait(40);
PlayTone(Doa,55); Wait(60);
PlayTone(Mi,15); Wait(20);
PlayTone(Sol,15); Wait(20);
PlayTone(Doa,15); Wait(20);
PlayTone(Doa,35); Wait(40);
PlayTone(Doa,55); Wait(60);
PlayTone(Fa,15); Wait(20);
PlayTone(Ra,15); Wait(20);
PlayTone(Doa,15); Wait(20);
PlayTone(Doa,35); Wait(40);
PlayTone(Doa,55); Wait(60);
PlayTone(Si,15); Wait(20);
PlayTone(Ra,15); Wait(20);
PlayTone(Si,15); Wait(20);
PlayTone(Si,95); Wait(100);
}
} //-------音楽ここまで------
task main () //--------メイン--------
{
SetSensor (SENSOR_1, SENSOR_LIGHT); //センサー1,2を光センサーに設定
SetSensor (SENSOR_2, SENSOR_LIGHT);
int music_flag = 0; //変数(スイッチ)music_flagを作る 初期値0
while (true) //----↓-繰り返し-↓----
{
if(SENSOR_1 < 60 ) //センサー1の値が60以下のとき
{
if (music_flag == 0) { //music_flagが0ならば
start music; //演奏をスタートし
music_flag = 1; //music_flagの値を1に置き換え
}
}else{ //センサー1が60以上のとき
if (music_flag == 1) { //music_flagが1ならば
stop music; //演奏をストップし
music_flag = 0; //music_flagの値を0に置き換え
}
}
if(SENSOR_3 < 60 ) //センサー3の値が60以下のとき
{
if (music_flag == 0) { //music_flagが0ならば
start music; //演奏をスタートし
music_flag = 1; //music_flagの値を1に置き換え
}
}else{ //センサー3が60以上のとき
if (music_flag == 1) { //music_flagが1ならば
stop music; //演奏をストップし
music_flag = 0; //music_flagの値を0に置き換え
}
if(SENSOR_1 > SENSOR_3) //センサー1がセンサー3より大きければ
{
OnFwd(OUT_A); //Aを回転
Off(OUT_C);
}
if(SENSOR_1 < SENSOR_3) //センサー3がセンサー1より大きければ
{
OnFwd(OUT_C); //Cを回転
Off(OUT_A);
}
} //-----↑-繰り返し-↑------
} // 丸岡
***分かりにくいので [#p69fa653]
#ref(フローチャート.bmp,nolink);
*コメントはこちらから↓ [#k9b1c1d4]
#comment