2005/A3/課題5右&左
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*音楽に合わせて踊るロボット program edeter All members(Hideshi&shungen&shunsuke&tatsuhiko) [#yf008ffd]
**機体概略 [#b8e5c34a]
#ref(1.ppt)
-パワーポイントのファイルです。お手数ですが、ダウンロードした後にファイルを開き、スライドショー → リハーサル へとお進みください。
***メリット 各部位のパーツ全てを一人一人が別々につくったので、全員が機体作りとプログラム作成を行なえた [#t9d625f2]
***デメリット それぞれが別々に作ったので、パーツ同士の協調性がない [#aa0c0c28]
**スタートボタンを押すRCX側のプログラム(メッセージを送信する側) [#eaf5a2bd]
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define Sol 784
#define Ra 880
#define Shi 988
task play_music() //音楽「カエルの歌」
{
while (true)
{
PlayTone(Do,30); Wait(35); SendMessage(1);
PlayTone(Re,30); Wait(35); SendMessage(2);
PlayTone(Mi,30); Wait(35);
PlayTone(Fa,30); Wait(35);
PlayTone(Mi,30); Wait(35);
PlayTone(Re,30); Wait(35); SendMessage(2);
PlayTone(Do,40); Wait(50);
PlayTone(Mi,30); Wait(35);
PlayTone(Fa,30); Wait(35);
PlayTone(Sol,30); Wait(35);
PlayTone(Ra,30); Wait(35); SendMessage(1);
PlayTone(Sol,30); Wait(35); SendMessage(2);
PlayTone(Fa,30); Wait(35);
PlayTone(Mi,45); Wait(55);
PlayTone(Do,45); Wait(50);
PlayTone(Do,45); Wait(50);
PlayTone(Do,45); Wait(50); SendMessage(1);
PlayTone(Do,45); Wait(50);
PlayTone(Do,25); Wait(30);
PlayTone(Do,25); Wait(30);
PlayTone(Re,25); Wait(30);
PlayTone(Re,25); Wait(30);
PlayTone(Mi,25); Wait(30); SendMessage(1);
PlayTone(Mi,25); Wait(30); SendMessage(2);
PlayTone(Fa,25); Wait(30);
PlayTone(Fa,25); Wait(30);
PlayTone(Mi,45); Wait(50);
PlayTone(Re,45); Wait(50);
PlayTone(Do,55); Wait(60);
}
}
task H_A() //青山英示が作成(マウス君)
{while(true)
{ClearMessage();
until( Message()!=0 );
if( Message()==1 ) //メッセージ1を受け取ると、
{OnFwd(OUT_B);Wait(5);OnRev(OUT_A);Wait(5);Off(OUT_B);};}; //口をぱくぱくする
}
#ref(kuchi.3gp)
task S_K() //雇俊産が作成(本体)
{while(true)
{ClearMessage();
until( Message()!=0 );
if( Message()==2 ) //メッセージ2を受け取ると、
{OnFwd(OUT_A+OUT_C);Wait(30);OnRev(OUT_A+OUT_C);Wait(30); };}; //前進したあとに後退をする
}
task main()
{
start play_music ;
start H_A;
start S_K;
}
**もう一方のRCXのプログラム (メッセージを受信する側)[#eeb16dc1]
-プログラム作成において全てのパーツは、メッセージの1と2を受信した場合しか動かないようにした。そのため受信側に備え付けたパーツは、受信後に受け取ったメッセージを送り返す必要があった。(西澤君の作成したプログラムに記述)
task S_T() //戸塚俊介が作成(プロペラ君)
{while(true){
ClearMessage();
until( Message()!=0 );
if( Message()==1 ) //メッセージ1を受け取った場合、時計回りを1秒続ける
{ OnFwd(OUT_A);Wait(100); };
if( Message()==2 ) //メッセージ2を受け取った場合、反時計回りを1秒続ける
{ OnRev(OUT_B);Wait(100);};
};
}
#ref(puropera.3gp)
task T_N() //西澤龍彦が作成(ドラム君)
{while(true){
ClearMessage();
until( Message()!=0 );
if( Message()==1 ) //メッセージ1を受け取ると、
{SendMessage(1); //メッセージ1を送信した後で、
OnFwd(OUT_A);Wait(35);
repeat(3)
{OnRev(OUT_A);Wait(15);OnFwd(OUT_A);Wait(15);}; //右手側が腕を三回振った後
Wait(110);}; //ドラムを三回叩く
if( Message()==2)
{ SendMessage(2); //メッセージ2を受け取ると、
OnFwd(OUT_B);Wait(45);
repeat(2)
{OnRev(OUT_A);Wait(5);OnFwd(OUT_B);Wait(5);}; //左手側が腕を2回振った後
Wait(120);}; //ドラムを2回叩く
};}
#ref(doramu.3gp)
task main()
{start T_N;
start S_T;}
****コメントをお願いします [#d2fb9f1b]
#comment
終了行:
#contents
*音楽に合わせて踊るロボット program edeter All members(Hideshi&shungen&shunsuke&tatsuhiko) [#yf008ffd]
**機体概略 [#b8e5c34a]
#ref(1.ppt)
-パワーポイントのファイルです。お手数ですが、ダウンロードした後にファイルを開き、スライドショー → リハーサル へとお進みください。
***メリット 各部位のパーツ全てを一人一人が別々につくったので、全員が機体作りとプログラム作成を行なえた [#t9d625f2]
***デメリット それぞれが別々に作ったので、パーツ同士の協調性がない [#aa0c0c28]
**スタートボタンを押すRCX側のプログラム(メッセージを送信する側) [#eaf5a2bd]
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define Sol 784
#define Ra 880
#define Shi 988
task play_music() //音楽「カエルの歌」
{
while (true)
{
PlayTone(Do,30); Wait(35); SendMessage(1);
PlayTone(Re,30); Wait(35); SendMessage(2);
PlayTone(Mi,30); Wait(35);
PlayTone(Fa,30); Wait(35);
PlayTone(Mi,30); Wait(35);
PlayTone(Re,30); Wait(35); SendMessage(2);
PlayTone(Do,40); Wait(50);
PlayTone(Mi,30); Wait(35);
PlayTone(Fa,30); Wait(35);
PlayTone(Sol,30); Wait(35);
PlayTone(Ra,30); Wait(35); SendMessage(1);
PlayTone(Sol,30); Wait(35); SendMessage(2);
PlayTone(Fa,30); Wait(35);
PlayTone(Mi,45); Wait(55);
PlayTone(Do,45); Wait(50);
PlayTone(Do,45); Wait(50);
PlayTone(Do,45); Wait(50); SendMessage(1);
PlayTone(Do,45); Wait(50);
PlayTone(Do,25); Wait(30);
PlayTone(Do,25); Wait(30);
PlayTone(Re,25); Wait(30);
PlayTone(Re,25); Wait(30);
PlayTone(Mi,25); Wait(30); SendMessage(1);
PlayTone(Mi,25); Wait(30); SendMessage(2);
PlayTone(Fa,25); Wait(30);
PlayTone(Fa,25); Wait(30);
PlayTone(Mi,45); Wait(50);
PlayTone(Re,45); Wait(50);
PlayTone(Do,55); Wait(60);
}
}
task H_A() //青山英示が作成(マウス君)
{while(true)
{ClearMessage();
until( Message()!=0 );
if( Message()==1 ) //メッセージ1を受け取ると、
{OnFwd(OUT_B);Wait(5);OnRev(OUT_A);Wait(5);Off(OUT_B);};}; //口をぱくぱくする
}
#ref(kuchi.3gp)
task S_K() //雇俊産が作成(本体)
{while(true)
{ClearMessage();
until( Message()!=0 );
if( Message()==2 ) //メッセージ2を受け取ると、
{OnFwd(OUT_A+OUT_C);Wait(30);OnRev(OUT_A+OUT_C);Wait(30); };}; //前進したあとに後退をする
}
task main()
{
start play_music ;
start H_A;
start S_K;
}
**もう一方のRCXのプログラム (メッセージを受信する側)[#eeb16dc1]
-プログラム作成において全てのパーツは、メッセージの1と2を受信した場合しか動かないようにした。そのため受信側に備え付けたパーツは、受信後に受け取ったメッセージを送り返す必要があった。(西澤君の作成したプログラムに記述)
task S_T() //戸塚俊介が作成(プロペラ君)
{while(true){
ClearMessage();
until( Message()!=0 );
if( Message()==1 ) //メッセージ1を受け取った場合、時計回りを1秒続ける
{ OnFwd(OUT_A);Wait(100); };
if( Message()==2 ) //メッセージ2を受け取った場合、反時計回りを1秒続ける
{ OnRev(OUT_B);Wait(100);};
};
}
#ref(puropera.3gp)
task T_N() //西澤龍彦が作成(ドラム君)
{while(true){
ClearMessage();
until( Message()!=0 );
if( Message()==1 ) //メッセージ1を受け取ると、
{SendMessage(1); //メッセージ1を送信した後で、
OnFwd(OUT_A);Wait(35);
repeat(3)
{OnRev(OUT_A);Wait(15);OnFwd(OUT_A);Wait(15);}; //右手側が腕を三回振った後
Wait(110);}; //ドラムを三回叩く
if( Message()==2)
{ SendMessage(2); //メッセージ2を受け取ると、
OnFwd(OUT_B);Wait(45);
repeat(2)
{OnRev(OUT_A);Wait(5);OnFwd(OUT_B);Wait(5);}; //左手側が腕を2回振った後
Wait(120);}; //ドラムを2回叩く
};}
#ref(doramu.3gp)
task main()
{start T_N;
start S_T;}
****コメントをお願いします [#d2fb9f1b]
#comment
ページ名: