***[[学習ノート Hypodytes rubripinnis>2005/A5/学習ノート Hypodytes rubripinnis]] [#s666db71] ***課題2:机の周りを1週するロボット[[課題2右>2005/A5/課題2右]] [#x7bac820] ''アクセス数:今日&counter(today); 総数&counter(all); 最終更新日:&lastmod;'' *机の周りを1週するプログラム [#g7bc8d47] 作成者:Hypodytes rubripinnis task main( ) { SetSensor (SENSOR_1,SENSOR_TOUCH); //センサ1:タッチセンサ SetSensor(SENSOR_3,SENSOR_TOUCH); //センサ3:タッチセンサ SetPower(OUT_A,6); //モーターパワーA6 OnFwd(OUT_A+OUT_C); //前進 while (true) { if (SENSOR_3==1) { //センサー3が触れると OnFwd(OUT_A); OnRev(OUT_C);Wait(100);Off(OUT_A+OUT_C); //90°左旋回 OnFwd(OUT_A+OUT_C);Wait(400); //50cm前進 } if (SENSOR_1==0) { //センサー1が離れると OnFwd(OUT_C);OnRev(OUT_A);Wait(10);Off(OUT_A+OUT_C); //少し右旋回 OnFwd(OUT_A+OUT_C);Wait(12); //少し前進 } } } -横に付いているセンサーが壁に触れていると直進します。 -前に付いているセンサーが壁に当たると90度左旋回します。 -右のモーターのパワーを下げているので、常に右寄りに進み、壁から離れないようになってます。 ''反省'' -このプログラムは、マクロや関数を使わないでかなりシンプルにできた。というより使わない方が短くできた。 -その代わりに本体の製作にかなりの時間を費やした。特にローラー(矢印)やセンサーの位置(赤枠)を決めるのに試行錯誤輪繰り返した。ローラーは、机の脚に沿って180度旋回する時に非常に重要で、脚が2つつながっている所と1つの所を両方曲がれるように調整するのに苦労した。。 -またセンサー1の右旋回の時間は、電池の残量によってかなり左右されたので、調整が難しかった。 -そしてスイッチが押せなくなってしまったので、白と青の棒を取り付けてみました。見た目もカッコ良くできた。 -右のモーターのパワーを下げているので、常に右寄りに進み、壁から離れないようになってます。 #ref(robo2-2.JPG); -このあたりのちょっとした調整や工夫でロボットの動きがずいぶん改善できる、というのが面白いところでもあり、難しいところですね… -- [[松本(教員)]] &new{2005-12-02 (金) 12:33:03}; #comment