目次
課題2のコースのある地点に空き缶を置きロボットで缶を集め交差点Tの円の中に積み上げる。高くつみあげると点数が上がる。
詳しくは課題3参照
移動部は説明書に載っている基本のベースを二輪にして、後方に丸いなめらかなパーツを取り付けることによって、小回りがきき、なおかつ紙との摩擦による位置のズレを最小限に抑えられる形にした。
缶を持ち上げる機構は、走る勢いで缶をタイヤに挟み込んで、上へ上昇するようにした。
持ち上げるタイヤは、輪ゴムによって大小二つが同時に動くようになっていて、持ち上げた缶が落ちないようになっている。また、一番上に棒を取り付けた回転センサを取り付け、上がってきた缶が棒を押し上げることによって、センサが反応して缶が止まるようにした。
最終的に缶を置くときに、タイヤに挟んだままでは缶だけ残せないので、囲いごと前方に押し出して本体が後退することで、缶だけがゴールの中に残るようにした。
本体前方に巨大な触角のようなパーツを取り付けて、進路上の缶をより多く集めることができるようにした。
プログラムは、移動用、アーム用共に、動きをサブルーチンとして纏めておくことで、メインタスクが短く、分かりやすくなるようにした。
移動は、ライントレースはせずに、少なくとも2つの缶を確実に取れるようにルートを設定した。
#define SIGNAL_ARM 1 //アームを動かすために送信する信号 #define SIGNAL_GO 2 //アームから受信する動くタイミングを表す信号
#define senkai_l Wait(50);OnFwd(OUT_C);OnRev(OUT_B);Wait(80);Off(OUT_BC); //右旋回 #define go_forward OnFwd(OUT_BC); //直進 #define go_back OnRev(OUT_BC);Wait(100);Off(OUT_BC); //後退
sub can_catch() //缶の目の前まで進む {go_forward; SendMessage(SIGNAL_ARM); until(Message() == SIGNAL_GO); Off(OUT_BC);}
sub tyokushin() //缶を持ち上げてから、右に90°旋回して直進する {go_forward; Wait(370); Off(OUT_BC); SendMessage(SIGNAL_ARM);}
sub can_release() //缶をおろして押し出したあと、後退する {until(Message() == SIGNAL_GO); go_back; }
task main() { SetSensor(SENSOR_3, SENSOR_ROTATION); ClearMessage(); can_catch(); ClearMessage(); can_release(); }
#define SIGNAL_ARM 1 #define SIGNAL_GO 2
#define can_up OnFwd(OUT_A); //缶を上げる #define can_down OnRev(OUT_A);Wait(50);Off(OUT_A); //缶を下げる #define can_push OnFwd(OUT_C);Wait(50);Off(OUT_C); //缶を押し出す
sub can_catch() //回転センサーが反応するまで缶を持ち上げる {until(Message() == SIGNAL_ARM); can_up; until(SENSOR_3 < -3); Off(OUT_A); SendMessage(SIGNAL_GO);}
sub can_release() //缶を下げて押し出す {until(Message() == SIGNAL_ARM); can_down; Wait(50); can_push; SendMessage(SIGNAL_GO);}
task main() { ClearMessage(); can_catch(); senkai_l; ClearMessage(); tyokushin(); can_release(); }
私たち、R7,R8のチームは、缶を一段積み、さらにもう一つ缶を円の中に入れることに成功した。
全体では、技術点を合計して4位となった。
今回の課題では、二組のキットを使って一つのロボットを作ったが、二つの器械を通信によって連動させることで、今まで以上に複雑な動きやプログラムを作ることが出来るようになり面白かった。
今回作ったプログラムは、決められたレール上にある缶を狙って確実に点を稼ぐことを目的に作った。 しかし、光センサーをもっと駆使して、ライントレースをしたり、缶をサーチしたり出来るようなプログラミングを組めば、紙のどこに缶があっても、ゴールまで運べるようになって、技術点も上がったと思うので、もう少し時間があれば努力したかった。
この授業の3つの課題を通して学んだ、目的に応じたロボットを作製する力や、分かりやすいプログラミングを作るようにすることは、工学部としてこの先も多く活用する能力として身についたと思う。