[[2005/C4]] **演奏するロボット [#x78619bf] *ロボットの特徴 [#w5abd9bc] 演奏するロボットはプログラムが入っている以外はとくに何も 改造されてはいない。 *演奏するプログラム [#yb23fc6c] #define WHOLE_NOTE 100 #define HALF_NOTE ( WHOLE_NOTE / 2 ) #define QUARTER_NOTE ( WHOLE_NOTE / 4 ) #define EIGHTH_NOTE ( WHOLE_NOTE / 8 ) #define SIXTEENTH_NOTE ( WHOLE_NOTE / 16 ) task main() { ClearMessage(); until(Message() != 0); Wait(50); if ( Message() == 1); PlayTone( 195, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 195, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 293, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 293, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 329, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 329, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 293, WHOLE_NOTE ); Wait( WHOLE_NOTE ); Wait( WHOLE_NOTE ); PlayTone( 261, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 261, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 246, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 246, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 220, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 220, HALF_NOTE ); Wait( HALF_NOTE ); Wait( HALF_NOTE ); PlayTone( 195, WHOLE_NOTE ); Wait( WHOLE_NOTE ); ClearTimer(0); ClearMessage(); while( Timer(0) <=10){ SendMessage(1); } } *苦労した点 [#lef1c65f] 音楽の知識と才能が皆無なので、プログラムやロボット以前に曲の決定から手間取ってしまった。結局簡単なきらきら星になった。 **踊るロボット [#g4116232] *ロボットの特徴 [#u776dc1c] このロボットには顔と音楽に合わせて踊るための腕がついている。 *踊るプログラム [#nef795fe] task main() { ClearTimer(0); while ( Timer(0) <=10){SendMessage(1);} OnFwd(OUT_A); Wait(30); OnRev(OUT_C); Wait(30); OnFwd(OUT_C); Wait(30); OnRev(OUT_A); Wait(30); ClearMessage(); until (Message() != 0); if( Message() == 1){ Off(OUT_A+OUT_C); } } *苦労した点 [#d40cbc7d] 音楽に合わせて腕を動かすようにしたが、通信のプログラムを間違えて、腕が止まらなくなってしまって大変だった。結局は送信側で送信する番号を間違えていたという簡単なミスだった。