[[2010b]] *口ポユソ![#u30e76b5] #contents **かだいがいいよう [#g5b5abab] 基本るうる † ・スタート時は「スタート地点」の内部以外に接していないこと。 [#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点) **コースを教えてあげるね★ [#c329d443] ・フィールドは約160cm×110cm ・カゴは2つで、上面の高さは30cm,上面の外形は20cm四方の正方形 ・ピンポン玉は14個で、2のカゴの支柱の間に2列に並べて置かれている。 ・スタート地点は30cmx40cm ・黒い線の太さは約25mm **メンバーはこんな感じで活動したんだぁ/~ [#e3e6b5a6] -貴トラマンヒロ -ふじゃる丸優 -こっちの松本 **ポイント [#v69213e8] -ピンポン球を確実にとる!!!!!! -からの移動 -からの〜30センチもの強大な高さを乗り切りピンポン玉を箱にシュート&GOAL -catch&release&goal&yeah **ロボット紹介 [#o09cabc8] ---ピンポン玉を黄色のアームで一気に鷲掴み ---回転するピンポン玉吸い込みマシーンのアームがインポン玉を吸い込む ---その先には回転するベルトコンベアー!ピンポン玉を次のステージは送るっっ ---ピンポン玉がたどり着いた先にはピンポン玉プッシュマスィーン ---押されたピンオン玉はエレベーター的に上に行くヤツのボール置き場に搭乗 ---上に乗ったピンポン玉をエレベーター的なヤツが上に運ぶ ---うまい具合に投石機的な機構に棒が当たる ---投石機的な機構がピンポン玉を箱にシュート… ---GOAL **マシン全体 [#l33b24b5] &ref(CA3C0364.JPG); &ref(CA3C0365.JPG); &ref(CA3C0366.JPG); &ref(CA3C0368.JPG);&ref(CA3C0369.JPG);&ref(CA3C0370.JPG);&ref(CA3C0371.JPG);&ref(CA3C0372.JPG); &ref(CA3C0373.JPG);&ref(CA3C0374.JPG);&ref(CA3C0375.JPG);&ref(CA3C0376.JPG); &ref(CA3C0378.JPG);&ref(CA3C0379.JPG);&ref(CA3C0380.JPG);&ref(CA3C0381.JPG); ピタゴラスイッチみたい♪笑 **プログラミング紹介 [#oa6e8a27] 今回、一つのマシンに二つの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を止める } } **感想 [#s055577b] --ふじゃる丸優 ロボコンの前の最後の3日間は3人で集まってほぼ徹夜で頑張って取り組んだ。結局マシーンが動くまでには完成しなかった。 理由としては、最初から最後までマシーンが一つの形として定まらなかったことだと思う。何回も何回も試行錯誤してはいたのだが、 いい方向へいかずにマシーンを全部解体。形になりかけていたがまた解体このループがいけなったのだと思う。一向に前進できなかった。 それで途中で投げそうにもなったが、最終的には投げることなく3人でそれぞれが出来ることに精一杯になれた。 自分はあまり力がなくて足手まといになっていた。それでも自分のアイデアが採用されてマシーンの一部になったことには感動した。 片付けも頑張った。やっとマシーンの作り方などをつかみ始めていた矢先、この授業が終わってしまうことに寂しさを感じる。 --貴トラマンヒロ マシンが完成に至らなかった事は非常に残念だった。しかし、メンバーで集まってたまにバカ騒ぎしながら作業に没頭したのはとても面白かった。 この講義で作る事の大変さを痛感した。どの課題のロボットも要求が高く、非常に難しいものだった。 しかし、仲間と協力してやっと思い通りにマシンが動いた時はとてもうれしかった。 周りのチームや、先生方から見たら期日通りに課題を仕上げない等、不真面目に映る部分も多かったかもしれないが僕等なりに真面目に取り組んだつもりである。 ロボコン当日は用事で自分だけ途中で帰ってしまい、本当に申し訳なかった。 そして、自分が製作に携わったマシンの完成した姿を見ることなくこの講義を終えてしまい非常に残念な気持ちで一杯である。 --こっちの松本 とりわけ、メンバーに一人非協力的な人がいたのが残念でならない。 さすがに4人でやるものを3人でとなるときつくなるのはあたりまえだ。最後の最後まで思い通りに事が運ばなかったことが悔やまれる。 ただ、上記の二人には感謝している。今回この講義を通して、機械に対しての視野が多少なりとも広がったのがうれしい。 プログラムはとても苦手だが、今後は機械に携わる者は必ずと言っていいほどプログラミングをしなくてはならない場面があるはずなので、 ちょっとでも苦手意識を払しょくしてくれたこのゼミはそういう面ではプラスになったと思う。 **コメントをお願いします [#ad8dc4f7] - 一応ロボットの説明やプログラムの説明はありますが、もう少し詳しくお願いします。。ロボットもパーツごとに分けて説明するとか、プログラムの工夫した点に焦点を当てたり、どのような戦略をとったのか説明したりが考えられます。レゴを返却した後でも可能なことを頑張ってください-- [[FI]] &new{2011-02-14 (月) 02:26:45}; #comment