2005/C4

光を追いかけて進むロボット

ロボットの概要

このロボットを作ったときは、懐中電灯がなかったので

太陽の光に向かうロボットとなりました。。。

光センサーの値の変動が激しいのと、あと周囲の明るさを平均的に得るために、光センサーの前に青い半透明のパーツをつけました。

 ロボットの写真

&ref(): File not found: "" at page "2005/C4/課題4右";

プログラムの解説

  • 右と左についている光センサーの値の差が少ない場合は、取りあえず直進するようになっています。
  • それよりも差があり、かつそれよりもちょっとだけ差が大きい場合は、明るい方のセンサーがついている側のモーターをfloatしています。
  • それよりも差がある場合は、floatでなくoffしています。
  • プログラム中に解説のためのコメントは入れません。コメントが入っていると、かえってゴチャゴチャしそうなので。

製作

機械:ひろし&だいすけ

プログラム:ひろし

プログラム

#define LIGHT_L SENSOR_1
#define LIGHT_R SENSOR_3

#define L OUT_A
#define R OUT_C

task main(){
       SetSensor(LIGHT_L,SENSOR_LIGHT);
       SetSensor(LIGHT_R,SENSOR_LIGHT);

       Off(L+R);

       while(1){
               if(LIGHT_L-LIGHT_R>2 || LIGHT_R-LIGHT_L>2){
                       if(LIGHT_L>LIGHT_R){
                               if(LIGHT_L-LIGHT_R>4){
                                       Off(L);
                                       OnFwd(R);

                               }else{
                                       Float(L);
                                       OnFwd(R);

                               }

                       }else{
                               if(LIGHT_R-LIGHT_L>4){
                                       Off(R);
                                       OnFwd(L);
                               }else{
                                       Float(R);
                                       OnFwd(L);

                               }

                       }

               }else{
                       OnFwd(L+R);

               }
               Wait(10);
       }
}

コメント欄

コメントを書き込んでください。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-09 (木) 16:35:41 (4943d)