[[2016a/Member]] *課題 [#d20fff3c] C、D地点に置いてある紙コップを、自作のプログラミングロボットでQ地点の円の中に入れるという内容である。 *機体概要 [#o380a3c8] *プログラム概要 [#ga49cdcf] #define Middle 45 ~task main() { setting(); STARTING_OPERATION(); repeat(2) { TRACE(); zensin(); } //交差点からDへ向かう TRACE(); OnRev(OUT_C); Wait(25); TRACE(); //誤差修正 OnRev(OUT_A); Wait(95); Off(OUT_AC); //dに到着 OnFwd(OUT_B);//コップつかむ Wait(250); start keep; TURN_180();//180°回転 OnFwd(OUT_A);//Qの方向を向く OnRev(OUT_C); Wait(200); Off(OUT_AC); OnRev(OUT_AC);//進む Wait(100); Off(OUT_AC); //センサー使って進む while(SENSOR_1 > Middle-4) OnRev(OUT_AC); stop keep; //放す Off(OUT_AC); down(); } sub setting() { //初期設定(パワー、センサー) SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_2,SENSOR_TOUCH);//モータB止める用 SetSensor(SENSOR_3,SENSOR_LIGHT); SetPower(OUT_AC,4);//タイヤ SetPower(OUT_B,7);//上下、開き } sub zensin() { OnRev(OUT_A); Wait(106); Off(OUT_A); } sub copjugde() //コップが前にくるまで前進 { while(SENSOR_3 < 46) OnRev(OUT_AC); Off(OUT_AC); Wait(100); } task keep() //上でキープしておくただし、ラインとレースと並列動作させるためtaskで定義 { while(1) { OnRev(OUT_B); Wait(1); OnFwd(OUT_B); Wait(1); } } sub TRACE() //トレース用メソッド { ClearTimer(0); while(FastTimer(0)<=42){ if(SENSOR_1>Middle+4)//白 左旋回 { OnFwd(OUT_C); OnRev(OUT_A); ClearTimer(0); } else if(SENSOR_1>Middle+2)//やや白 左折 { Off(OUT_C); OnRev(OUT_A); ClearTimer(0); } else if(SENSOR_1>Middle)//直進 { OnRev(OUT_AC); ClearTimer(0); } else if(SENSOR_1>Middle-2)//やや黒 右折 { Off(OUT_A); OnRev(OUT_C); } else //黒 右旋回 { OnFwd(OUT_A); OnRev(OUT_C); } } Off(OUT_AC); PlaySound(SOUND_FAST_UP);//トレース終了、交差点認識 } sub down() //下に下げる動作 { OnRev(OUT_B); Wait(200); } sub STARTING_OPERATION() //スタート地点の四角から脱出する { while(SENSOR_1<Middle) { OnRev(OUT_AC); } while(SENSOR_1>Middle) { OnRev(OUT_AC); } OnRev(OUT_AC); Wait(50); Off(OUT_C); OnRev(OUT_A); Wait(40); while(SENSOR_1<Middle) { OnRev(OUT_AC); } Off(OUT_AC); } sub TURN_180() //180ど回転 { OnFwd(OUT_AC); Wait(80); Off(OUT_AC); OnRev(OUT_A); Wait(130); while(SENSOR_1>40) { OnFwd(OUT_C); OnRev(OUT_A); } Off(OUT_AC); } *今回の課題の反省点と感想 [#d57c808d] ~2つの班を組み合わせて計6人で作業をし、結構はかどりやすいと思っていましたが、途中で紙コップをつかむアームを大きく変更したり、センサーが余計に反応して改善したりと時間がかかりすぎてしまい、発表の時もほぼ失敗という結果に終わってしまいました。自分の班は結構精密なロボットでしたが、他の班は結構あっさりしていて、なおかつ、ちゃんと紙コップを持ち運ぶことができていたので、もっとシンプルな思考が求められていたのかと考えました。(その方が時間がかからず、成功率も上がると思ったからです。) *ゼミ全体をふまえての感想 [#ae3da6ac]