[[2009a]]へ戻る 目次 #contents *課題 [#f8f9a8d8] 黒い線上を進むロボットの製作。~ 詳細は[[2009a/練習問題]]、課題2の項を参照。 課題2−1のプログラムをdaikiが担当、課題2−2のプログラムを俺が担当 *メンバー [#o372f62e] -daiki -俺 *ロボット [#zbea3a80] **外観 [#jd6c3733] 全体 #ref(2009a/A5/課題2右/robo01.jpg,100%,全体) ~ #ref(2009a/A5/課題2右/robo02.jpg,100%,手) -この鎌のような手で牛乳パックを捕らえ、引きずっていく *コース [#e97bcc63] 概要図 #ref(2009a/A5/課題2右/rosen.JPG,100%,コース) -交差点は3つ *プログラム [#y1cf4393] **daikiのプログラム [#sb789298] int SYOU; task main() { SetSensor(SENSOR_2,SENSOR_TOUCH);//タッチセンサー2 SetSensor(SENSOR_1,SENSOR_LIGHT);//光センサー1 SetSensor(SENSOR_3,SENSOR_LIGHT);//光センサー3 SYOU = 0; while (true){ if(SENSOR_2==0){ if(SENSOR_1>40){ if(SENSOR_3>40){ OnFwd(OUT_A+OUT_C); } else{ OnFwd(OUT_A); Off(OUT_C); } }else{ OnFwd(OUT_C); Off(OUT_A); } if(SENSOR_1<40){ if(SENSOR_3<40){ OnFwd(OUT_A+OUT_C); } } }//センサー1と3で線を挟んで進むプログラム if(SENSOR_2==1){ if(SYOU==0){ OnRev(OUT_A+OUT_C); Wait(70);//パックから遠ざかる OnFwd(OUT_A); Wait(70); OnFwd(OUT_C); Wait(110);//パックを避けるため脱線 OnRev(OUT_A); Wait(70); OnFwd(OUT_A); Wait(250); OnRev(OUT_A); Wait(70); OnFwd(OUT_A); Wait(100); OnRev(OUT_C); Wait(85);//線路に戻る Off(OUT_A+OUT_C); }//1回目の衝突 if(SYOU==1){ OnRev(OUT_A+OUT_C); Wait(65);//パックから遠ざかる OnFwd(OUT_A); Wait(80); OnFwd(OUT_C); Wait(110);//パックを避けるため脱線 OnRev(OUT_A); Wait(75); OnFwd(OUT_A); Wait(250); OnRev(OUT_A); Wait(80); OnFwd(OUT_A); Wait(50); OnRev(OUT_C); Wait(85);//線路に戻る Off(OUT_A+OUT_C); }//2回目の衝突 if(SYOU==0){ SYOU = 1; }else{ SYOU = 0; } } } } ~ ~ **俺のプログラム [#c0008c96] [http://yakushi.shinshu-u.ac.jp/robotics/?2009a%2FA5%2F%B2%DD%C2%EA%A3%B2%B1%A6%2F%A5%D7%A5%ED%A5%B0%A5%E9%A5%E002 俺のプログラム](別ページに飛びます) //[[2009a/A5/課題1左/プログラム02]]へのリンク *コメントをどうぞ [#m8eee5ef] - コースが面白いですね。プログラムは改善の余地ありです。RUN_TIMEはプログラム内で数値が変わるので「変数」である必要がありますが、RUN_TIME_JやRUN_TIME_Fは変わらない数ですから、「定数」(define)の方が適当かと思います。また、ifでセンサーの反応を判別しているところを、センサーが白か黒か(もしくは触っていないか触っているか)について、「無反応なら0を、反応なら1を返す関数」にしてみると、もっとスリム化できるかもしれません。 -- [[こさか]] &new{2009-07-02 (木) 22:20:37}; - 追記:動画すごくわかりやすいです! -- [[こさか]] &new{2009-07-02 (木) 22:21:08}; - プログラムにいろいろ工夫しているのがよいと思いますが、まだ改善点があります。何よりも、3周したら止まるようにしましょう。できれば、ロボットの説明も増やしましょう。-- [[FI]] &new{2009-07-03 (金) 03:05:12}; #comment #ls2(,link,ページ一覧)