2005/C1/音楽を演奏・指揮するロボット
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2005/C1/宇佐美]]
#contents
*音楽を演奏するロボット(カエルのうた):制作途中 [#u01ce26b]
**制作者 [#b3fc3b9b]
C1一同
**プログラム [#y10357bf]
int t;
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 881 //音階指定
#define turn_right OnFwd(OUT_A); OnRev(OUT_C); Wait(t);
#define turn_left OnFwd(OUT_C); OnRev(OUT_A); Wait(t);
#define off Off(OUT_A+OUT_C); //3つがダンスの動き
task play_music()
{
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(La,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
} //カエルのうたを指定
task message_send()
{
ClearTimer(0);
while( Timer(0) <=425 ) { SendMessage(1); }
} //2小節が終わるとメッセージ1を送信
task main()
{
start play_music; //ミュージックスタート!
start message_send; //メッセージ送信
turn_right(55); off;
turn_left(55); off;
turn_left(55); off;
turn_right(55); off;
turn_right(55); off;
turn_left(55); off;
turn_left(55); off;
turn_right(55); off; //左右に振れるダンス
turn_left(425); off; //左回転
turn_right(425); off; //右回転
turn_left(55); off;
turn_right(55); off;
turn_right(55); off;
turn_left(55); off;
turn_left(55); off;
turn_right(55); off;
turn_right(55); off;
turn_left(55); off; //左右に振れるダンス
}
**感想 [#y966c0fa]
未だ制作途中。踊りは簡単なものだが、曲にばっちり合う予定。
ロボコンが終わってから2体に分解して完成させたい。
と思って、2体作った。けど、カメには走行機能が付いていない・・・。ダンス、使用不可。でも、これはテスト最終日、つまり初MAC使用のプログラムなので、載せておきます。「カエルのうた」は先生にMACの使い方を教えて頂いて作り上げました。私事ですが、バイトなどで時間がなく、このプログラムを使用するに至るまで、課題5に時間をかけられなかったのが残念です・・・。
*指揮をとり、輪唱するロボット(カエルのうた):制作途中 [#o01c1811]
**制作者 [#w265d94f]
C1一同
**プログラム [#hc07f44a]
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 881 //音階指定
#define shiki OnFwd(OUT_B); Wait(55); Off(OUT_B);
OnRev(OUT_B); Wait(55); Off(OUT_B);
OnRev(OUT_B); Wait(55); Off(OUT_B);
OnFwd(OUT_B); Wait(55); Off(OUT_B); //指揮の動作指定
task play_music()
{
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(La,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi, 50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
} //カエルのうたを指定
task main()
{
ClearMessage();
repeat(16){
shiki;
} //shikiの動作を16回繰り返す
until(Message() !=1);
if( Message() == 1 ) play_music; //メッセージ1を受け取ったらミュージックスタート
}
**感想 [#t0cd65a7]
未だ制作途中。輪唱し始めてほしいときにちゃんと通信できるかが鍵。
これから調整していきたい。
ちなみに指揮は2拍子。
ロボットの形は変わったものの、このプログラムを改良して第2弾に使用。
*カエルのうた『第2弾』〜カエル人間(?)の指揮〜 [#d67697b4]
**制作者 [#m4ac5c36]
C1一同
**写真 [#f4a5d1aa]
&ref(2005/C1/音楽を演奏・指揮するロボット/画像 039.jpg,30%,カエル人間(?)とカメ);
**プログラム [#i3d81091]
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 881 //音階指定
#define shiki OnFwd(OUT_B); Wait(15); Off(OUT_B); OnRev(OUT_B); Wait(15); Off(OUT_B); //指揮の動き
task play_music()
{
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(La,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi, 50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
} //カエルのうた指定
task te()
{repeat(50){ shiki;}} //指揮の動作を50回繰り返す
task main()
{
start te; //指揮スタート
while(true)
{
ClearMessage();
until(Message() !=0);
if( Message() == 1 ) start play_music;
} //メッセージ1を受信したらミュージックスタート
}
**感想 [#z4a72dcb]
指揮の動作50回の繰り返しはさすがに多く、演奏が終わっても指揮してました。改良できずじまい・・・。でも、輪唱はうまくいった。お聞かせしたかったです・・・。
*カエルのうた『第2弾』〜カメのダンス〜 [#sc970835]
**制作者 [#n01b72d5]
C1一同
**写真 [#o1072ee9]
&ref(2005/C1/音楽を演奏・指揮するロボット/画像 038.jpg,30%,カメ);
**プログラム [#d72fa9ba]
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 881 //音階指定
void head_turn_right(int t) {OnFwd(OUT_C); Wait(t);} //頭右回転
void head_turn_left (int t){OnRev(OUT_C); Wait(t);} //頭左回転
task play_music()
{
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(La,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
} //カエルのうた指定
task message_send()
{
Wait(425);
SendMessage(1); Wait(500);
} //2小節終わったらメッセージ1送信
task shippo()
{
repeat(29){
OnFwd(OUT_A); Wait(15); Off(OUT_A);
OnRev(OUT_A); Wait(15); Off(OUT_A);
OnRev(OUT_A); Wait(15); Off(OUT_A);
OnFwd(OUT_A); Wait(15); Off(OUT_A);
}
} //シッポを振るダンス
task head()
{
head_turn_right(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_left(425); Off(OUT_C);
head_turn_right(425); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
} //頭回転のダンス
task main()
{
start play_music; //ミュージックスタート
start message_send; //メッセージ送信
start shippo; //シッポダンススタート
start head; //頭ダンススタート
}
**感想 [#p30236a6]
頭、シッポともに、とても激しいダンスでした。
最初はプログラムの不備でメッセージの送信が出来ず、投げ出してしまおうかと思いましたが、何とかやり遂げました!
送信できるようになると、上にも書いたとおり、ちゃんと輪唱してくれました。
-期待しています -- [[かとりーぬ(TA)]] &new{2006-02-07 (火) 13:02:43};
#comment
終了行:
[[2005/C1/宇佐美]]
#contents
*音楽を演奏するロボット(カエルのうた):制作途中 [#u01ce26b]
**制作者 [#b3fc3b9b]
C1一同
**プログラム [#y10357bf]
int t;
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 881 //音階指定
#define turn_right OnFwd(OUT_A); OnRev(OUT_C); Wait(t);
#define turn_left OnFwd(OUT_C); OnRev(OUT_A); Wait(t);
#define off Off(OUT_A+OUT_C); //3つがダンスの動き
task play_music()
{
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(La,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
} //カエルのうたを指定
task message_send()
{
ClearTimer(0);
while( Timer(0) <=425 ) { SendMessage(1); }
} //2小節が終わるとメッセージ1を送信
task main()
{
start play_music; //ミュージックスタート!
start message_send; //メッセージ送信
turn_right(55); off;
turn_left(55); off;
turn_left(55); off;
turn_right(55); off;
turn_right(55); off;
turn_left(55); off;
turn_left(55); off;
turn_right(55); off; //左右に振れるダンス
turn_left(425); off; //左回転
turn_right(425); off; //右回転
turn_left(55); off;
turn_right(55); off;
turn_right(55); off;
turn_left(55); off;
turn_left(55); off;
turn_right(55); off;
turn_right(55); off;
turn_left(55); off; //左右に振れるダンス
}
**感想 [#y966c0fa]
未だ制作途中。踊りは簡単なものだが、曲にばっちり合う予定。
ロボコンが終わってから2体に分解して完成させたい。
と思って、2体作った。けど、カメには走行機能が付いていない・・・。ダンス、使用不可。でも、これはテスト最終日、つまり初MAC使用のプログラムなので、載せておきます。「カエルのうた」は先生にMACの使い方を教えて頂いて作り上げました。私事ですが、バイトなどで時間がなく、このプログラムを使用するに至るまで、課題5に時間をかけられなかったのが残念です・・・。
*指揮をとり、輪唱するロボット(カエルのうた):制作途中 [#o01c1811]
**制作者 [#w265d94f]
C1一同
**プログラム [#hc07f44a]
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 881 //音階指定
#define shiki OnFwd(OUT_B); Wait(55); Off(OUT_B);
OnRev(OUT_B); Wait(55); Off(OUT_B);
OnRev(OUT_B); Wait(55); Off(OUT_B);
OnFwd(OUT_B); Wait(55); Off(OUT_B); //指揮の動作指定
task play_music()
{
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(La,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi, 50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
} //カエルのうたを指定
task main()
{
ClearMessage();
repeat(16){
shiki;
} //shikiの動作を16回繰り返す
until(Message() !=1);
if( Message() == 1 ) play_music; //メッセージ1を受け取ったらミュージックスタート
}
**感想 [#t0cd65a7]
未だ制作途中。輪唱し始めてほしいときにちゃんと通信できるかが鍵。
これから調整していきたい。
ちなみに指揮は2拍子。
ロボットの形は変わったものの、このプログラムを改良して第2弾に使用。
*カエルのうた『第2弾』〜カエル人間(?)の指揮〜 [#d67697b4]
**制作者 [#m4ac5c36]
C1一同
**写真 [#f4a5d1aa]
&ref(2005/C1/音楽を演奏・指揮するロボット/画像 039.jpg,30%,カエル人間(?)とカメ);
**プログラム [#i3d81091]
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 881 //音階指定
#define shiki OnFwd(OUT_B); Wait(15); Off(OUT_B); OnRev(OUT_B); Wait(15); Off(OUT_B); //指揮の動き
task play_music()
{
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(La,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi, 50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
} //カエルのうた指定
task te()
{repeat(50){ shiki;}} //指揮の動作を50回繰り返す
task main()
{
start te; //指揮スタート
while(true)
{
ClearMessage();
until(Message() !=0);
if( Message() == 1 ) start play_music;
} //メッセージ1を受信したらミュージックスタート
}
**感想 [#z4a72dcb]
指揮の動作50回の繰り返しはさすがに多く、演奏が終わっても指揮してました。改良できずじまい・・・。でも、輪唱はうまくいった。お聞かせしたかったです・・・。
*カエルのうた『第2弾』〜カメのダンス〜 [#sc970835]
**制作者 [#n01b72d5]
C1一同
**写真 [#o1072ee9]
&ref(2005/C1/音楽を演奏・指揮するロボット/画像 038.jpg,30%,カメ);
**プログラム [#d72fa9ba]
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 881 //音階指定
void head_turn_right(int t) {OnFwd(OUT_C); Wait(t);} //頭右回転
void head_turn_left (int t){OnRev(OUT_C); Wait(t);} //頭左回転
task play_music()
{
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(La,50); Wait(55);
PlayTone(So,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
PlayTone(Do,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Fa,50); Wait(55);
PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);
PlayTone(Do,50); Wait(55);
Wait(55);
} //カエルのうた指定
task message_send()
{
Wait(425);
SendMessage(1); Wait(500);
} //2小節終わったらメッセージ1送信
task shippo()
{
repeat(29){
OnFwd(OUT_A); Wait(15); Off(OUT_A);
OnRev(OUT_A); Wait(15); Off(OUT_A);
OnRev(OUT_A); Wait(15); Off(OUT_A);
OnFwd(OUT_A); Wait(15); Off(OUT_A);
}
} //シッポを振るダンス
task head()
{
head_turn_right(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_left(425); Off(OUT_C);
head_turn_right(425); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_right(55); Off(OUT_C);
head_turn_left(55); Off(OUT_C);
} //頭回転のダンス
task main()
{
start play_music; //ミュージックスタート
start message_send; //メッセージ送信
start shippo; //シッポダンススタート
start head; //頭ダンススタート
}
**感想 [#p30236a6]
頭、シッポともに、とても激しいダンスでした。
最初はプログラムの不備でメッセージの送信が出来ず、投げ出してしまおうかと思いましたが、何とかやり遂げました!
送信できるようになると、上にも書いたとおり、ちゃんと輪唱してくれました。
-期待しています -- [[かとりーぬ(TA)]] &new{2006-02-07 (火) 13:02:43};
#comment
ページ名: