2006a/C1/課題3左/光を追うプログラム02
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*光を追うプログラム02 [#t6381002]
☆制作者☆ツノハラ
#define TURN_TIME 600//*一周の時間を定義*
#define mi 659 //*音を定義*
#define fa 698
#define fal 740
#define so 784
#define sol 831
#define ra 880
#define shi 988
#define Do 1047
#define Dol 1109
#define re 1175
#define rel 1245
task play_music01()
{
while(true)//*音楽01を繰り返し演奏*
{
PlayTone(mi,40); Wait(40);
PlayTone(ra,40); Wait(40);
PlayTone(sol,40);Wait(40);
PlayTone(ra,40);Wait(40);
PlayTone(shi,40);Wait(40);
PlayTone(Do,40);Wait(40);
PlayTone(shi,40);Wait(40);
PlayTone(Do,40);Wait(40);
PlayTone(re,40);Wait(40);
PlayTone(mi*2,240);Wait(240);
PlayTone(so*2,80);Wait(80);
PlayTone(mi*2,240);Wait(240);
PlayTone(ra*2,40);Wait(40);
PlayTone(so*2,40);Wait(40);
PlayTone(mi*2,160);Wait(200);
PlayTone(mi*2,40);Wait(40);
PlayTone(re,40);Wait(40);
PlayTone(Do,40);Wait(40);
PlayTone(re,20);Wait(20);
PlayTone(Do,20);Wait(20);
PlayTone(ra,200);Wait(200);
PlayTone(Do,80);Wait(80);
PlayTone(ra,400);Wait(500);
}
}
task play_music02()
{
while(true)//*音楽02を繰り返し演奏*
{
PlayTone(so,80); Wait(82);
PlayTone(fal,20);Wait(20);
PlayTone(so,20);Wait(20);
PlayTone(ra,40);Wait(42);
PlayTone(mi,80);Wait(82);
PlayTone(re/2,80);Wait(82);
PlayTone(Do/2,80);Wait(62);
PlayTone(shi/2,20);Wait(22);
PlayTone(Do/2,20);Wait(22);
PlayTone(re/2,40);Wait(42);
PlayTone(ra/2,160);Wait(162);
PlayTone(shi/2,80);Wait(82);
PlayTone(Dol/2,20);Wait(22);
PlayTone(re/2,40);Wait(42);
PlayTone(mi,20);Wait(22);
PlayTone(ra,80);Wait(82);
PlayTone(re/2,80);Wait(82);
PlayTone(so,80);Wait(82);
PlayTone(so,20);Wait(22);
PlayTone(fal,40);Wait(42);
PlayTone(mi,20);Wait(22);
PlayTone(re/2,160);Wait(162);
}
}
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);//*センサーが光センサーであることを定義*
SetSensor(SENSOR_3,SENSOR_LIGHT);//*上と同じ*
int light_max=0,time_max=0;//*光と時間の最大値を0に設定*
ClearTimer(0);//*タイマーをクリアー
while(FastTimer(0)<15)//*タイマーの値が小さいと回転して光の最大値と一番明るい場所*
{ //*に行くまでの時間を定義*
OnFwd(OUT_A);OnRev(OUT_C);
Wait(TURN_TIME);
if((SENSOR_1>light_max+50)||(SENSOR_3>light_max+50))//*最大の光を感知したら*
{
light_max=SENSOR_1;//*光の最大値をセンサー1に定義*
time_max=FastTimer(0);//*最大に明るい場所までの時間をタイマーに定義*
}
}
while(FastTimer(0)>15)//*最大値を定義し終わった後*
{
start play_music01 ;//*音楽01の演奏をスタート*
Off(OUT_A+OUT_C);
Wait(100);
OnFwd(OUT_A);OnRev(OUT_C);//*最大に明るかったところまで回転*
Wait(time_max);
OnFwd(OUT_A+OUT_C);Wait(100);//*少し前進*
ClearTimer(0);
SetPower(OUT_A,5);//*3個目のwhile文に行くためにモーターの力を変える*
SetPower(OUT_C,5);//*上と同じ*
}
while(OUT_A<6)//*ここから光を追うプログラム*
{
if((SENSOR_1>=60)||(SENSOR_3>=60))//*光が当たっているところだと*
{
start play_music01 ;//*音楽01の演奏を始める*
OnFwd(OUT_A+OUT_C);//*前進*
}
if((SENSOR_1<50)&&(SENSOR_3>60))//*センサー1に当たる光が弱くなると*
{
OnFwd(OUT_A);//*時計回りに回転*
OnRev(OUT_C);
}
if((SENSOR_3<50)&&(SENSOR_1>60))//*センサー2に当たる光が弱くなると*
{
OnFwd(OUT_C);//*逆時計回りに回転*
OnRev(OUT_A);
}
if((SENSOR_1<50)&&(SENSOR_3<50))//*センサーに当たる光が両方とも弱いと*
{
stop play_music01 ;//*音楽01を止める*
start play_music02 ;//*音楽02を流す*
OnFwd(OUT_A);//*光を探すため回転*
OnRev(OUT_C);
}
}
}
終了行:
*光を追うプログラム02 [#t6381002]
☆制作者☆ツノハラ
#define TURN_TIME 600//*一周の時間を定義*
#define mi 659 //*音を定義*
#define fa 698
#define fal 740
#define so 784
#define sol 831
#define ra 880
#define shi 988
#define Do 1047
#define Dol 1109
#define re 1175
#define rel 1245
task play_music01()
{
while(true)//*音楽01を繰り返し演奏*
{
PlayTone(mi,40); Wait(40);
PlayTone(ra,40); Wait(40);
PlayTone(sol,40);Wait(40);
PlayTone(ra,40);Wait(40);
PlayTone(shi,40);Wait(40);
PlayTone(Do,40);Wait(40);
PlayTone(shi,40);Wait(40);
PlayTone(Do,40);Wait(40);
PlayTone(re,40);Wait(40);
PlayTone(mi*2,240);Wait(240);
PlayTone(so*2,80);Wait(80);
PlayTone(mi*2,240);Wait(240);
PlayTone(ra*2,40);Wait(40);
PlayTone(so*2,40);Wait(40);
PlayTone(mi*2,160);Wait(200);
PlayTone(mi*2,40);Wait(40);
PlayTone(re,40);Wait(40);
PlayTone(Do,40);Wait(40);
PlayTone(re,20);Wait(20);
PlayTone(Do,20);Wait(20);
PlayTone(ra,200);Wait(200);
PlayTone(Do,80);Wait(80);
PlayTone(ra,400);Wait(500);
}
}
task play_music02()
{
while(true)//*音楽02を繰り返し演奏*
{
PlayTone(so,80); Wait(82);
PlayTone(fal,20);Wait(20);
PlayTone(so,20);Wait(20);
PlayTone(ra,40);Wait(42);
PlayTone(mi,80);Wait(82);
PlayTone(re/2,80);Wait(82);
PlayTone(Do/2,80);Wait(62);
PlayTone(shi/2,20);Wait(22);
PlayTone(Do/2,20);Wait(22);
PlayTone(re/2,40);Wait(42);
PlayTone(ra/2,160);Wait(162);
PlayTone(shi/2,80);Wait(82);
PlayTone(Dol/2,20);Wait(22);
PlayTone(re/2,40);Wait(42);
PlayTone(mi,20);Wait(22);
PlayTone(ra,80);Wait(82);
PlayTone(re/2,80);Wait(82);
PlayTone(so,80);Wait(82);
PlayTone(so,20);Wait(22);
PlayTone(fal,40);Wait(42);
PlayTone(mi,20);Wait(22);
PlayTone(re/2,160);Wait(162);
}
}
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);//*センサーが光センサーであることを定義*
SetSensor(SENSOR_3,SENSOR_LIGHT);//*上と同じ*
int light_max=0,time_max=0;//*光と時間の最大値を0に設定*
ClearTimer(0);//*タイマーをクリアー
while(FastTimer(0)<15)//*タイマーの値が小さいと回転して光の最大値と一番明るい場所*
{ //*に行くまでの時間を定義*
OnFwd(OUT_A);OnRev(OUT_C);
Wait(TURN_TIME);
if((SENSOR_1>light_max+50)||(SENSOR_3>light_max+50))//*最大の光を感知したら*
{
light_max=SENSOR_1;//*光の最大値をセンサー1に定義*
time_max=FastTimer(0);//*最大に明るい場所までの時間をタイマーに定義*
}
}
while(FastTimer(0)>15)//*最大値を定義し終わった後*
{
start play_music01 ;//*音楽01の演奏をスタート*
Off(OUT_A+OUT_C);
Wait(100);
OnFwd(OUT_A);OnRev(OUT_C);//*最大に明るかったところまで回転*
Wait(time_max);
OnFwd(OUT_A+OUT_C);Wait(100);//*少し前進*
ClearTimer(0);
SetPower(OUT_A,5);//*3個目のwhile文に行くためにモーターの力を変える*
SetPower(OUT_C,5);//*上と同じ*
}
while(OUT_A<6)//*ここから光を追うプログラム*
{
if((SENSOR_1>=60)||(SENSOR_3>=60))//*光が当たっているところだと*
{
start play_music01 ;//*音楽01の演奏を始める*
OnFwd(OUT_A+OUT_C);//*前進*
}
if((SENSOR_1<50)&&(SENSOR_3>60))//*センサー1に当たる光が弱くなると*
{
OnFwd(OUT_A);//*時計回りに回転*
OnRev(OUT_C);
}
if((SENSOR_3<50)&&(SENSOR_1>60))//*センサー2に当たる光が弱くなると*
{
OnFwd(OUT_C);//*逆時計回りに回転*
OnRev(OUT_A);
}
if((SENSOR_1<50)&&(SENSOR_3<50))//*センサーに当たる光が両方とも弱いと*
{
stop play_music01 ;//*音楽01を止める*
start play_music02 ;//*音楽02を流す*
OnFwd(OUT_A);//*光を探すため回転*
OnRev(OUT_C);
}
}
}
ページ名: