戻る

ラインに沿って動くロボットのプログラム

コースは『長野県』の形を採用

その結果、北部はおよそ100度の急カーブとなり、南部は緩やかな300度のカーブとなった

センサー2つ モーター2つ用プログラム

nolink

 命名:ライトセンサー壱号(兄貴)

モーターに最小のギア、そして大きなタイヤのところには最大のギアを取り付け、強さと速さを兼ね備えたかたちになった。

黒線を挟むように取り付けたセンサーのおかげで、正確に長野県を1周できた。

// 12月2日
// コンド・AI・ジョニー 
// 前輪駆動で、後輪はキャスターにしました

#define line 47                // 明暗のおよその境界値

task main()                    // ライトセンサーを使ったプログラム
{
  SetSensor(SENSOR_1, SENSOR_LIGHT);            // 左側のライトセンサー
  SetSensor(SENSOR_3, SENSOR_LIGHT);            // 右側のライトセンサー

  OnFwd(OUT_A + OUT_C);                         // 前進する

  while(true)
   {
     if((SENSOR_1 < line) && (SENSOR_3 > line)) // 左センサーがライン上のとき
      {
        OnFwd(OUT_C);                           // 右タイヤが正転
        Off(OUT_A);                             // 左タイヤが停止
        until(SENSOR_1 > line);                 // 両センサーがライン外に出るまで
      }
    
     if((SENSOR_1 > line) && (SENSOR_3 < line)) // 右センサーがライン上のとき
      {
        OnFwd(OUT_A);                           // 左タイヤが正転
        Off(OUT_C);                             // 右タイヤが停止
        until(SENSOR_3 > line);                 // 両センサーがライン外に出るまで
      }
    
     else                                       // 特に問題が無い場合
      {
        OnFwd(OUT_A + OUT_C);                   // 前進する
      }
  
   }

}

反省

・最初、軽量化によってある程度スピードが出るようになってしまって大変だった。
・強度面の問題を克服するのに少々苦労した。
・最終的に、速く正確に動けるようになった。
  • 数々の困難をどのようにして克服していったのか、という説明があるといいですね。 -- 松本(教員)? 2006-01-18 (水) 14:31:24

センサー1つ モーター1つのプログラム

sensor-1.jpeg sensor--1.jpeg

命名:ライトセンサー弐号(弟)

トップシークレットのギアの組み方を少しアレンジして製作。

センサーの台座部分(緑色のとこ)は兄貴の兜を付け替えただけであったりする。

黒白の判別のみで前進するせいか、長野県北部の100度ターンの前に散った。せめて、90度くらいだったらいけたのに・・・。

// 12月2日
// コンド・AI・ジョニー
// トップシークレットのギアの組み方をもとにし、タイヤは二輪(前部に支え付)にしました。

#define line 47                // 明暗のおよその境界値

task main()                    // ライトセンサーを使ったプログラム
{
  SetSensor(SENSOR_2, SENSOR_LIGHT);            // 真ん中のライトセンサー

  while(true)
   {
     if(SENSOR_2 < line)                        // 真ん中センサーがライン上のとき
      {
        OnFwd(OUT_B);                           // 左に曲がる
        until(SENSOR_2 > line);                 // センサーがライン外に出るまで
      }
    
      else                                       // その他の場合
      {
        OnRev(OUT_B);                            // 右に曲がる
        until(SENSOR_2 < line);                  // ライン内に入るまで
      }
  
   }

}  

反省

・ギアの組み合わせは『トップシークレット』を参考にしなければ作れなかった。
・意外と速く、正確に動いた。
  • プログラムだけでなく、ロボットの説明なども入れてみて下さい。このプログラムでロボットがどのように動いたかなどを紹介してみたりしてみては? -- ストップ(TA)? 2006-01-06 (金) 15:51:59


添付ファイル: filenagano.bmp 178件 [詳細] filesensor--1.jpeg 143件 [詳細] filesensor-2.jpeg 156件 [詳細] filesensor-1.jpeg 169件 [詳細]

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