[[2013a/Member]]

*ロボット紹介 [#q0459556]

#ref(2013a/Member/kinako/Mission1/CIMG1069.JPG,100%,ロボット)
-光センサーが、本体が回転すると大きく動くように工夫した。
-ぐらぐらしないようにしっかり固定した。
-缶を運ぶために、開閉式のアームをつけた。
-なるべくシンプルに作った。

*コース攻略法 [#t05743d6]

-線の左側に沿うように動くようにして、コースを一周できるようにした。
-タッチセンサーが缶に触れている間はアームが閉じるようにしたかった。


*プログラムの説明 [#qa18ce2c]
#define BLACK_01 34
#define BLACK_02 40
#define WHITE_01 50
#define WHITE_02 56
#define SPEED_H 60
#define SPEED_L 30
#define OnRL(speedR,speedL) OnFwd(OUT_A,speedR);OnFwd(OUT_C,speedL);
#define go_forward OnRL(SPEED_L,SPEED_L);
#define turn_right OnRev(OUT_A,SPEED_L);OnFwd(OUT_C,SPEED_L);
#define turn_left OnFwd(OUT_A,SPEED_L);OnRev(OUT_C,SPEED_L);
#define right Off(OUT_A);OnFwd(OUT_C,SPEED_L);
#define left OnFwd(OUT_A,SPEED_L);Off(OUT_C);
#define STEP 1
#define nMAX 150
#define short_break Off(OUT_AC);Wait(1000);
#define CROSS_TIME 200
#define cross_line OnRL(SPEED_L,SPEED_L);Wait(300);short_break;


task main()
{
    OnFwd(OUT_AC,50);
    Wait(500);
    right;
    Wait(1700);
↑ここで、最初のT字路を左に曲がる。

    SetSensorLight(S1);
    int nOnline=0;
    int count=0;

    while (true) {
      while (count < 3) {
          while (nOnline < nMAX) {
            if (SENSOR_1<BLACK_01) {turn_right;nOnline++;}
            else {
              if (SENSOR_1<BLACK_02) {right;nOnline++;}
              else if (SENSOR_1<WHITE_01) {go_forward;}
              else if (SENSOR_1<WHITE_02) {left;}
              else {turn_left;}
↑ここの敷居値の設定は、黒線を光センサーを使って測定した結果、中央では26、端では60くらいであったため、
[〜34]右旋回
[34〜40]右折
[40〜50]直進
[50〜56]左折
[56〜]左旋回
という設定にした。この値は、なるべく滑らかに動くようにするため、直進する値の幅を大きくするようにした。

              nOnline=0;
            }
            Wait(STEP); 
          }
          short_break;
          turn_left;
          Wait(150);
          cross_line;
          nOnline=0;
          count++;
        }}
↑ここで、交差点と判断された回数が3回になったら、次のプログラムに移るように設定した。3回という回数は、最後にT字路に差し掛かった時にちょうど交差点判断が3回目になったためにこの値に設定した。

    turn_right;
    Wait(300);
    go_forward;
    Wait(500);
    Off(OUT_AC);
↑ここで、最後のT字路を左に曲がる。
}

*まとめ [#fea32eb1]

今回は、完成させることができなかったがいろんなことを経験し、そして、試行錯誤できた。なるべく線上を滑らかに動くようには工夫したが、缶をつかんで運び、そして離すという動作はうまくできなかったのが残念だ。次回からはもっと深く考えて、最後には解決できるようにしたい。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS