2005/11/28 動画アップしました!!
画質悪くてすいません…
製作者 :SAS そーむ 巻き舌宇宙 ロボット名 :ブロッケン翁 ver.D 製作日 :2005年 11/11〜17
製作者 :巻き舌宇宙 製作日 :2005年 11/14〜17 task main() { SetSensor(SENSOR_1, SENSOR_TOUCH); //『センサー1(左)・3(右)を SetSensor(SENSOR_3, SENSOR_TOUCH); // タッチセンサーと定義』 while(true) { OnFwd(OUT_A+OUT_C); //『右側のセンサーが while((SENSOR_3 >= 1) && (SENSOR_1 == 0)); // 触れている間 Off(OUT_A+OUT_C); // 前に進む』 OnFwd(OUT_A);while((SENSOR_3 == 0) && (SENSOR_1 == 0)); //『右側のセンサーも Off(OUT_A+OUT_C); // 触れていなければ if((SENSOR_3 >= 0) && (SENSOR_1 >= 1)) // 右に旋回する』 { OnRev(OUT_A+OUT_C);Wait(15);Off(OUT_A+OUT_C); //『左右のセンサーが OnFwd(OUT_C);OnRev(OUT_A);Wait(90); // 触れたときは OnFwd(OUT_A+OUT_C);Wait(50); // 後退し、左旋回する』 Off(OUT_A+OUT_C); // } } }
製作者 :SAS 製作日 :2005年 11/14〜17 task main() { SetSensor(SENSOR_1,SENSOR_TOUCH);SetSensor(SENSOR_3,SENSOR_TOUCH); //センサー1(左),3(右)をタッチセンサーと宣言 while(true) //条件式が真の間繰り返す { if((SENSOR_1 < 1)&&(SENSOR_3 == 1)) //右のセンサーのみが壁に触れているとき { OnFwd(OUT_A+OUT_C); //前進 until(((SENSOR_1 == 1)&&(SENSOR_3 == 1))||((SENSOR_1 < 1)&&(SENSOR_3 < 1))); //左右のセンサーともに壁に触れているか離れるまで実行 } if((SENSOR_1 < 1)&&(SENSOR_3 < 1)) //左右のセンサーがともに壁から離れているとき { OnFwd(OUT_A);Off(OUT_C); //右に曲がる until((SENSOR_1 < 1)&&(SENSOR_3 == 1)); //右のセンサーのみが壁に触れるまで実行 } if((SENSOR_1 == 1)&&(SENSOR_3 == 1)) //左右のセンサーがともに壁に触れたとき(壁に垂直にぶつかったとき) { OnRev(OUT_A+OUT_C); //少し後退 Wait(10); OnFwd(OUT_C);OnRev(OUT_A); Wait(90); //90度弱左に旋回 OnFwd(OUT_A+OUT_C); until((SENSOR_1 < 1)&&(SENSOR_3 == 1)); //右のセンサーのみが壁に触れるまで前進 } } }
きゅうぞうからブロッケンへの変身。左右のバンパー同時に触れたら左旋回としたがその際に、 どうしてもうまくいかず何度もプログラムを変更した。
センサーを使い、常に壁に触れさせるように設定したこと。 前面に反応するときはセンサーを2つ使うことで克服した。
配線のことを気にせず作ってしまった。案の定乗り越えられず、ノートのバリアフリーを使うハメに。
コメントをどうぞ