目次
#contents

#hr
*図1 (簡単ボット) [#a666b1bd]

#ref(ciec-pcc-2006/ciec-2006-1.pdf);

*図2 (プログラム例) 黒い線に沿って動くロボット [#u710031b]

#ref(ciec-pcc-2006/ciec-2006-2.pdf);

**光センサを一つ使用した場合 [#w3990fa1]

 #define THRESHOLD 40                  // 黒と白の閾値を設定
 
 task main ()
 {
     SetSensor(SENSOR_1,SENSOR_LIGHT); // センサ1は光センサ
 
     while(true){                      // 無限ループ
         if (SENSOR_1<THRESHOLD){      // 光センサが黒線上にあるときは
             OnFwd(OUT_A);             // 右にターン
             Off(OUT_C);
         } else {                      // 光センサが黒線上にないときは
             OnFwd(OUT_C);             // 左にターン
             Off(OUT_A);
         }
     }
 }

** 光センサを2個使用した場合 [#ofe4104d]

 #define THRESHOLD 40                  // 黒と白の閾値を設定
 
 task main ()
 {
     SetSensor(SENSOR_1,SENSOR_LIGHT);  // センサ1(左)は光センサ
     SetSensor(SENSOR_3,SENSOR_LIGHT);  // センサ3(右)も光センサ
 
     while(true){                       // 無限ループ
         if (SENSOR_1<THRESHOLD){
             if (SENSOR_3<THRESHOLD){   // 光センサが2個とも黒線上
                 OnFwd(OUT_A);          // にある場合は直進
                 OnFwd(OUT_C);
             } else {                   // 左だけ黒線上の場合は
                 Off(OUT_A);            // 左にターン
                 OnFwd(OUT_C);
             }
         } else {
             if (SENSOR_3<THRESHOLD){   // 右だけ黒線上の場合は
                 OnFwd(OUT_A);          // 右にターン
                 Off(OUT_C);
             } else {                   // 2個とも黒線上にない
                 Off(OUT_A);            // 場合には停止
                 Off(OUT_C);
             }
         }
     }
 }


*授業工程表の例 (90分×15週)[#k7e29e57]

:第1週〜第3週:図形や文字を書くロボット (センサは使用しない)|
--キットに慣れる (個々の部品の確認、サンプルロボットの作成など)
--プログラム作成→コンパイル→プログラム転送までの基本操作
--モータを回転させるための基本的なAPI
(Application Programming Interface)の利用方法
--定数や変数の使用
--手続きの抽象化を理解する(サブルーチンや関数の使用)
--チーム内の交流を深める
:第4週〜第5週:障害物を避けるロボット (タッチセンサを使用)|
--論理式や制御構文の基礎学習
--『押されている(1)』『押されていない(0)』という2値を取る
タッチセンサをロボットに取り付け,if文やwhile文などを
使ったプログラムを作成する (論理積や論理和といった演算も登場)
:第6週〜第7週:黒いラインに沿って走るロボット (光センサを使用)|
--多段階の値を与える光センサを使用
--光センサを1個使った場合、2個使った場合、
モータを1個使った場合、2個使った場合など
種々のロボットを製作してスピードや確実性をアップさせる
:第8週〜第9週:光を追いかけるロボット|
--最大値を求めたり,近傍での明るさの差分を取って比較して進むなど
これまでよりも多少複雑なアルゴリズムを考える
--タイマ(時間センサと考えてもよい)の活用
//--ウェブ上での実習報告
:第10週〜第11週:曲を演奏しながら動くロボット|
--曲を演奏しながら光センサとタッチセンサの両方を監視するなど
複数のタスクを並列で実行させる
--割り込み処理やリソース(モータ)へのアクセス権についての学習
:第12〜第15週:簡単なロボット・コンテストの開催|
--空き缶を集めてきて積み上げるロボットや、
紙パックを運搬して所定のカゴに投げ込むロボットなど、キットを2セット使用して多少複雑なロボットを作成する
--通信機能を用いる(原始的なプロトコルを設計)
--チームの人数も増えるため,作業分担を上手に行うことも重要

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS