2010b

口ポユソ!

かだいがいいよう

基本るうる †

・スタート時は「スタート地点」の内部以外に接していないこと。 [#pc653931]
・スタート時のロボットは2個を越えないこと (スタート後はいくつに分裂してもかまわない)。
・開始の合図から5秒以内にRCXのスタートボタンを押す作業を完了すること。 
・競技が終了するまで、ロボットに触ったり人間が遠隔で操作してはならない。 
・途中でうまく動かなくなった場合、1回限り再スタートすることができる。 
・競技時間は無制限。ただし審判が、競技続行不能と判断した場合は途中で終了する。↑ 

Computational Method of Basic Score (単独競技) †

・ピンポン玉をスタート地点から遠い方のカゴに入れれば一つ2点、近い方のカゴに入れれば一つ1点
・1個のRCXを含むロボットが実際のスタート地点に帰還できれば+2点。
・すべてのロボットがスタート地点に帰還できればさらに+2点。ロボットの一部(半分以下)がゴールからはみ出している場合には1点減点(つまり+1点)。↑

リーーーグ戦の得点 †

・スタート地点から遠い方のカゴに入れたピンポン玉の個数を競う。近い方のカゴに入れれば相手のポイントになる。
・相手よりたくさんピンポン玉を入れれば勝点3点、引き分けの場合は1点、ただし共に一つも入れることができなければ、0点。↑

技術点の計算方法 †

以下の動作の精度・スピード・確実性などを含めた技術的な工夫や芸術性について他の 全てのチーム(4チーム)+TAが10点満点で採点し平均点を求める。
・ピンポン玉の収集 (2点)
・ピンポン玉の運搬 (2点)
・ピンポン玉をカゴに入れる動作 (3点)
・その他 (3点)

コースを教えてあげるね★

・フィールドは約160cm×110cm
・カゴは2つで、上面の高さは30cm,上面の外形は20cm四方の正方形
・ピンポン玉は14個で、2のカゴの支柱の間に2列に並べて置かれている。
・スタート地点は30cmx40cm
・黒い線の太さは約25mm

メンバーはこんな感じで活動したんだぁ/~

ポイント

ロボット紹介

---ピンポン玉を黄色のアームで一気に鷲掴み
---回転するピンポン玉吸い込みマシーンのアームがインポン玉を吸い込む
---その先には回転するベルトコンベアー!ピンポン玉を次のステージは送るっっ
---ピンポン玉がたどり着いた先にはピンポン玉プッシュマスィーン
---押されたピンオン玉はエレベーター的に上に行くヤツのボール置き場に搭乗
---上に乗ったピンポン玉をエレベーター的なヤツが上に運ぶ
---うまい具合に投石機的な機構に棒が当たる
---投石機的な機構がピンポン玉を箱にシュート…
---GOAL

マシン全体

CA3C0364.JPG CA3C0365.JPG CA3C0366.JPG

CA3C0368.JPGCA3C0369.JPGCA3C0370.JPGCA3C0371.JPGCA3C0372.JPG

CA3C0373.JPGCA3C0374.JPGCA3C0375.JPGCA3C0376.JPG

CA3C0378.JPGCA3C0379.JPGCA3C0380.JPGCA3C0381.JPG                                 ピタゴラスイッチみたい♪笑

プログラミング紹介

今回、一つのマシンに二つのRCXを搭載したので、通信を使うことにした

#define SIGNALON_a 4      //モーターAを動かす信号
#define SIGNALOFF_a 5     //モーターAを止める信号
#define SIGNALON_b 6       //モーターBを動かす信号
#define SIGNALOFF_b 7      //モーターBをとめる信号
#define SIGNALONREV_b 8      //モーターBを逆回転させる信号
#define SIGNALON_c 9        //モーターCを動かす信号
#define SIGNALOFF_c 10       //モーターCを止める信号
#define SIGNALONREV_c 11       //モーターCを逆回転させる信号
#define straight OnFwd(OUT_A+OUT_C);   //まっすぐ進むプログラム
#define right OnFwd(OUT_C);OnRev(OUT_A);  //右に旋回するプログラム
#define left OnFwd(OUT_A);OnRev(OUT_C);  //左に旋回するプログラム
#define teishi Off(OUT_A+OUT_C);      //停止するプログラム


task main()
{
	SetPower(OUT_B,2);      //モーターBの馬力を2に設定
	right;            //右に90°旋回
	Wait(134);
	teishi;           //停止
	straight;          //位置補正のために前進
	Wait(200);
	teishi;           //停止
	left;            //左に90°旋回
	Wait(134);
	teishi;           //停止
	straight;          //ピンポン玉のあるところまで前進
	Wait(320);
	left;            //左に90°旋回
	Wait(134);
	teishi;            //停止
	OnFwd(OUT_B);         //アームを動かして弾を集める
	Wait(12);
	Off(OUT_B);          //アーム停止
	repeat(6)           //もう一台のRCXに送るメッセージ(6回繰り返す)
	{
		SendmMessage(SIGNALON_a);     //Aを動かす命令   
		Wait(100);             //1秒待機
		SendmMessage(SIGNALOFF_a);     //Aを停止
		SendmMessage(SIGNALON_b);     //Bを動かす命令
		Wait(150);             //1.5秒待機
		SendmMessage(SIGNALOFF_b);     //Bを停止
		SendmMessage(SIGNALONREV_b);    //Bを逆回転
		Wait(200);             //2秒待機
		SendmMessage(SIGNALOFF_b);      //Bを停止
		SendmMessage(SIGNALON_c);      //Cを動かす命令
		Wait(200);             //2秒待機
		SendmMessage(SIGNALONREV_c);     //Cを逆回転させる命令
		Wait(190);              //1.9秒待機
		SendmMessage(SIGNALOFF_c);      //Cを停止
	}
}
#define SIGNALON_a 4      //モーターAを動かす信号
#define SIGNALOFF_a 5     //モーターAを止める信号
#define SIGNALON_b 6       //モーターBを動かす信号
#define SIGNALOFF_b 7      //モーターBをとめる信号
#define SIGNALONREV_b 8      //モーターBを逆回転させる信号
#define SIGNALON_c 9        //モーターCを動かす信号
#define SIGNALOFF_c 10       //モーターCを止める信号
#define SIGNALONREV_c 11       //モーターCを逆回転させる信号


task main()
{
	ClearMessage();         //メッセージのクリア   
	SetPower(OUT_C,6);     //Cのモーターの馬力を6に設定
	while(true)        //ひたすら繰り返す
	{
		until(Message()==SIGNALON_a)   //このメッセージが来たら…↓
		OnFwd(OUT_A);          //Aを動かして、玉をベルトコンベアーに乗せる
		until(Message()==SIGNALOFF_a)    //このメッセージが来たら…↓
		Off(OUT_A);             //Aを停止
		until(Message()==SIGNALON_b)    //このメッセージが来たら…↓
		OnFwd(OUT_B)             //ベルトコンベアーを動かす
		until(Message()==SIGNALOFF_b)    //このメッセージが来たら…↓
		Off(OUT_B);              //Bを停止
		until(Message()==SIGNALONREV_b)    //このメッセージが来たら…↓
		OnRev(OUT_B);            //Bを逆回転させて玉を輪っかに乗せる
		until(Message()==SIGNALOFF_b)     //このメッセージが来たら…↓
		Off(OUT_B);          //Bを停止
		until(Message()==SIGNALON_c)     //このメッセージが来たら…↓
		OnFwd(OUT_C);            //Cを動かして、エレベーターを昇る
		until(Message()==SIGNALONREV_c)     //このメッセージが来たら…↓
		OnRev(OUT_C);              //Cを逆回転させて、エレベーターを下ろす
		until(Message()==SIGNALOFF_c)       //このメッセージが来たら…↓
		Off(OUT_C);                //Cを止める
	}
}

感想

コメントをお願いします



添付ファイル: fileCA3C0381.JPG 506件 [詳細] fileCA3C0380.JPG 461件 [詳細] fileCA3C0379.JPG 354件 [詳細] fileCA3C0378.JPG 357件 [詳細] fileCA3C0376.JPG 391件 [詳細] fileCA3C0375.JPG 370件 [詳細] fileCA3C0374.JPG 388件 [詳細] fileCA3C0373.JPG 348件 [詳細] fileCA3C0372.JPG 397件 [詳細] fileCA3C0371.JPG 373件 [詳細] fileCA3C0370.JPG 336件 [詳細] fileCA3C0369.JPG 377件 [詳細] fileCA3C0368.JPG 381件 [詳細] fileCA3C0366.JPG 436件 [詳細] fileCA3C0365.JPG 416件 [詳細] fileCA3C0364.JPG 468件 [詳細] filerobo.wlmp 136件 [詳細] fileマイ ムービー.wlmp 161件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-02-15 (火) 17:12:58