目次

課題

光センサーを使って、ライン上を走るロボットの作成

ロボットの仕組み

本体

モーター3つとセンサー1つをつけられるように、

本体を所定の位置から少しずらした位置につけるようにした

image (1).jpeg

アーム

今回はボールを運ぶため、このようなアームにした

image.jpeg

ボールを掴んだり持ち上げすると難しくなると判断し、

アームを下ろし、アームでボールを囲むだけで運べるようにした

走る

コース

・鬣、・鷽゙.png

今回はB→Aと走る

プログラム

#define hsa OnFwd(OUT_B,30);OnFwd(OUT_C,-10);
#define lsa OnFwd(OUT_B,30);OnFwd(OUT_C,0);
#define hu OnFwd(OUT_B,-10);OnFwd(OUT_C,30);
#define lu OnFwd(OUT_B,0);OnFwd(OUT_C,30);
#define go OnFwd(OUT_BC,30);
#define kaku OnFwd(OUT_B,30);OnFwd(OUT_C,20);
task main()
{
     SetSensorLight(S3);
     int n=0;
     long t1=CurrentTick();
     long t0=CurrentTick();

     while(CurrentTick()-t1<3500){

          if(SENSOR_3<28){
              hsa;
          } else if(SENSOR_3<35){
              lsa;
          } else if(SENSOR_3<50){
              t0=CurrentTick();
              go;
          } else if(SENSOR_3<57){
              t0=CurrentTick();
              hu;
          } else {
              t0=CurrentTick();
              lu;
          }

          if(CurrentTick()-t0>120){

                     Off(OUT_BC);
                     Wait(2000);
                     kaku;
                     Wait(1800);
                     Off(OUT_BC);
                     Wait(1000);
          }
     }

     while(CurrentTick()-t1<15000){

           if(SENSOR_3<28){
              hu;
          } else if(SENSOR_3<35){
              lu;
          } else if(SENSOR_3<50){
              go;
          } else if(SENSOR_3<57){
              hsa;
          } else {
              lsa;
          }


     }

                      Off(OUT_BC);
                      OnFwd(OUT_A,10);
                      Wait(1500);
                      Off(OUT_A);

      
     while(CurrentTick()-t1<32000){

           if(SENSOR_3<28){
              hsa;
          } else if(SENSOR_3<35){
              lsa;
          } else if(SENSOR_3<50){
              go;
          } else if(SENSOR_3<57){
              hu;
          } else {
              lu;
          }


      }

                      Off(OUT_BC);
                      OnFwd(OUT_BC,-40);
                      Wait(100);
                      OnFwd(OUT_A,-10);
                      Wait(1500);
                      Off(OUT_BC);
                      OnFwd(OUT_BC,70);
                      Wait(60);


}

反省・感想

今回はアームなど、ロボット製作の方は工夫ができ、それが上手くいったためよかった。

しかし、プログラミングの方は交差点など難しいところもあり、まだまだだと思った。

次回は関数などを使って、よりスムーズなプログラムになるようにしたい。


添付ファイル: file・鬣、・鷽゙.png 101件 [詳細] fileimage.jpeg 88件 [詳細] fileimage (1).jpeg 113件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-08-02 (日) 19:44:18