2016a/Member 目次

課題

今回の課題はセンサーを利用し、ライントレースして目的の場所へ着くロボットを作ることです。

ロボット本体の説明

本体の構造

本体の前方にセンサーをつけました。

センサー

このセンサーを使ってラインを判断します。

コース

黒い線に沿って進み、交差点で一度止まり、ゴールまで行って止まること。 http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&refer=2016a%2FMission2&openfile=2016a-mission2.png

コース(ルート)

A地点からB地点へ (A地点 → P直進 → Q直進 → Q直進 → R左折 → B地点)

プログラムの説明

定義

基本的で簡単な定義

#define BLACK 42  これより小さいと黒
#define WHITE 50  これより大きいと白
#define RIGHT_H OnFwd(OUT_A); OnRev(OUT_C);//右旋回
#define LEFT_H OnFwd(OUT_C); OnRev(OUT_A);//左旋回
#define RIGHT_L OnFwd(OUT_A); Off(OUT_C);//右回転
#define LEFT_L OnFwd(OUT_C); Off(OUT_A);//左回転
#define GO_FORWARD(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC);//t秒間前進
#define STEP 1

サブルーチン

ライントレースする定義で交差点で1秒間止まり、音が鳴るサブルーチン。 whileを繰り返し、黒が0.5秒を超えると交差点と判断するようになっている。↓

sub LINE()
{
 ClearTimer(0);
 while(FastTimer(0) <= 50) {
   if (SENSOR_2 <= BLACK) {  //黒
       RIGHT_H;
   } else if (SENSOR_2 < BLACK){  //黒よりのグレー
       RIGHT_L;                // 
     } else if (SENSOR_2 > WHITE) {  //白よりのグレー
       LEFT_H;
       ClearTimer(0);
     } else if (SENSOR_2 >= WHITE) {  //白
       LEFT_L;               // 
       ClearTimer(0);
      } else {
    OnFwd(OUT_AC);
    ClearTimer(0);
   }
    Wait(STEP);
   }
    Off(OUT_AC);
    ClearTimer(0);
    PlaySound(SOUND_UP);
    Wait(100);
}

左に1.7秒間曲がるサブルーチン↓

sub LEFT()
{
   while(FastTimer(0) < 170) {
      LEFT_L;
  }
   ClearTimer(0);
  }

左に2.5秒間旋回するサブルーチン↓

sub CROSS_LEFT()
{
   while(FastTimer(0) < 250) {
       LEFT_H;
   }
   ClearTimer(0);
  }

メイン

task main()
{
  SetSensor(SENSOR_2, SENSOR_LIGHT);
  GO_FORWARD(140);
  LINE();
  LEFT();
  LINE();
  LEFT();
  LINE();
  LEFT();
  LINE();
  CROSS_LEFT();
  GO_FORWARD(140);
  LINE();
}

まとめ

感想&反省点

2回目の課題だったのにスムーズに課題を進めることができず、プログラムの作成に時間がかかってしまい、プログラムを調節する時間がなく、ゴールへたどり着くことができなかった。 また、1回目の課題とは違い、今回はセンサーを使うため簡単にいけると思ったが、サブルーチンという大きなくくりの定義の理解が遅く、なかなかうまくサブルーチンを使うことができず、1回目とは違う難しさがあった。しかし、とても便利なので、サブルーチンをうまく使うことができたら難なく2回目の課題ができたんじゃないかと思う。


添付ファイル: fileIMG_1483.JPG 189件 [詳細] fileIMG_1482.JPG 154件 [詳細]

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