[[2011a]] [[2011a/A6/課題4右]] *目次 [#bd2a7c43] #contents *課題4の内容 [#cdce30da] サッカーゲーム!! ディフェンス(空缶)をどける→テニスボールをゴールにシュートする。 ちなみにうちの班はロボットは一体だけ。 *メンバー紹介 [#q0b1cee9] Ku☆ra 様&keisuke&イーノック&mika *ロボット [#ydfa2d62] お名前:ハウルのブロウクンハウス(Ks) **本体 [#a4eb62f5] めっちゃ大きくなった。タイヤは2個。タイヤが付いてない方が重そうに見えるけど、そっちが重いことによって、アームの重さによるバランスの悪さを解決。 **アーム部分 [#fd4a55bf] 通信後、アームがのびてボールを2個掴む。 **光センサー部分[#mc1c6d38] タイヤの近くに持ってくることで、ロボット本体が大きすぎることによる、斜めになりやすさとかを解消。 *プログラミング [#ffd0862f] #define THRESHOLD 40 #define RUN_TIME 10 #define BALL_CATCH 1 #define END_CATCH 2 #define Turn_R(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); #define Turn_L(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_A+OUT_C); #define GO_ST(t) OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); task main() { SetSensor(SENSOR_3, SENSOR_TOUCH); SetSensor(SENSOR_2, SENSOR_LIGHT); SetSensor(SENSOR_1, SENSOR_LIGHT); SetPower(OUT_C,7);SetPower(OUT_A,7); OnFwd(OUT_A+OUT_C);Wait(110);Off(OUT_A+OUT_C); Turn_R(60); while(SENSOR_3 == 0) { if (SENSOR_1 > THRESHOLD && SENSOR_2 > THRESHOLD) {OnFwd(OUT_A+OUT_C);Wait(20);Float(OUT_A+OUT_C);} else if(SENSOR_1 < THRESHOLD && SENSOR_2 > THRESHOLD) {OnFwd(OUT_C);Off(OUT_A);} else if(SENSOR_1 > THRESHOLD && SENSOR_2 < THRESHOLD) {OnFwd(OUT_A);Off(OUT_C);} else if (SENSOR_1 < THRESHOLD && SENSOR_2 < THRESHOLD) {OnFwd(OUT_A+OUT_C);Wait(30);Off(OUT_A+OUT_C);} } Off(OUT_A+OUT_C); OnFwd(OUT_C+OUT_A);Wait(40);Float(OUT_A+OUT_C); SendMessage(BALL_CATCH); ClearMessage(); until (Message() == END_CATCH); OnRev(OUT_A+OUT_C);Wait(200); Off(OUT_A+OUT_C); Turn_L(60); Wait(50); OnRev(OUT_A+OUT_C);Wait(180); Off(OUT_A+OUT_C); Wait(50); Turn_R(90); Wait(50); GO_ST(290); Wait(50); Turn_R(50); GO_ST(50); Turn_L(50); repeat(3){ OnFwd(OUT_B);Wait(20); Off(OUT_B); OnRev(OUT_B);Wait(20); Off(OUT_B); Turn_R(30); Turn_L(30); GO_ST(30); OnFwd(OUT_A+OUT_C);Wait(30); Off(OUT_C+OUT_A); Wait(100); } } #define RUN_TIME 40 #define BALL_CATCH 1 #define END_CATCH 2 #define Turn_R(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); #define Turn_L(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_A+OUT_C); #define GO_ST(t) OnRev(OUT_A+OUT_C); task main () { ClearMessage(); until (Message() == BALL_CATCH); PlaySound(SOUND_UP); OnFwd(OUT_C); Wait(100); Off(OUT_C);//台座を下ろす SetPower(OUT_B,7); OnFwd(OUT_B); Wait(300); Off(OUT_B);//アームを出す SetPower(OUT_A,7); OnFwd(OUT_A); Wait(400); Off(OUT_A); //ハンド下ろす OnRev(OUT_B); Wait(300); Off(OUT_B+OUT_A); OnRev(OUT_C); Wait(120); Off(OUT_C);//台座を上げる SendMessage(END_CATCH); } *工夫した点&苦労した点。 [#uc4a038d] 一体にしたこと。光センサーでライントレースした後、一体の中で通信している。一気に3個ボールを取ることをあきらめて2個とることにした。ボールをロボット本体に取り込むとき、方向転回しないで、横から取り込むようにしたこと。取り込んだボールが落ちないようにいろいろストッパーをつけてる。ボールを一個だけ発射するために2個目のボールはとまるようになっている。ただ2個目のボールをちゃんと発射位置に持っていくのがむずかしかった。1個目は割と簡単に横から取り込んだ後、ちゃんと方向転換して発射位置にいくんやけど、2個目を取り込むとき、アームが無理しすぎて本体がよくバキバキしてしまった。微調整の結果いろいろな機能をつけれたけど、その分ぼろぼろパーツがよく取れて、もろくなってしまった。あと、アームのモーターが重くて、だんだんかたむいてくるのが嫌やった。本体がめっちゃ大きいから、ちょっとでもズレたら何かに当たって崩れてしまうんがめっちゃ難点。 *感想&反省 [#gcc055a8] **Ku☆ra 様 [#r4b4685a] 最終課題。微調整めんどかった。睡眠時間なさ過ぎ・・・ **keisuke [#acc439ec] 最終課題。残り二人が無力すぎてワロタwww **イーノック [#bfe9c41e] 最終課題。さてまずはじめに… 今回の課題について僕はほとんど関与できてません。当然ながら、半戦力外通告です。 構想を考えるだけはしましたが、アームを横につける点、試作段階では円外にありえないぐらいはみ出して今の段階に至ります。アームに半数以上のモーターを利用した、サリー級の贅沢設計になっています。 贅沢をしたい性格なので、半ハッピーですね。 **mika [#yd2b4992] 最終課題。難しかった。班の方々のアイディアに感動!!っっっ *コメントどーぞ [#sc22266c] - 誰か写真貼ってー -- &new{2011-08-18 (木) 13:04:53}; #comment