2.プログラムを動かす TOPへ 4.Bluetooth通信を使う

3.センサの値を読み取る


ここでは、NXTに接続したセンサをコンソールでクイックテストを行い、その値を読み取ります。
RobotCではセンサの戻り値はコンソールの値と基本的に同じですから、 この操作を学んでおくとプログラミングが効率的に行えます。


センサの値を読み取るには?

 ここでは各センサの共通操作について解説します。
 NXTボタンの左右のボタンで下の図のように『View』を選択し、オレンジのボタンで決定します。

 次にこれからテストを行うセンサを指定します。指定はアイコンを選択して行いますが、各アイコンは次の表に示すとおりです。

Sound dB
サウンドセンサ
(dB単位で計測)
Sound dBA
サウンドセンサ
(dBA単位で計測)
Reflected light
ライトセンサ
(アクティブモードで計測)
Ambient light
ライトセンサ
(パッシブモードで計測)
Light Sensor
ライトセンサ
(RCX専用のセンサで計測)
Temperature ℃
温度センサ(オプション)
(セ氏温度で計測)
Temperature ゜F
温度センサ(オプション)
(華氏温度で計測)
Rotation
ロータリーエンコーダ
(RCX専用のセンサで計測)
Motor rotations
ロータリーエンコーダ
(回転数を計測)
Motor degrees
ロータリーエンコーダ
(回転角度をdegree単位で計測)
Touch
タッチセンサ
(RCX・NXTどちらも計測可能)
Ultrasonic inch
超音波センサ
(inch単位で計測)
Ultrasonic cm
超音波センサ
(cm単位で計測)

 次にセンサを接続しているポートを指定します。
  (ロータリーエンコーダ)は出力ポートを、それ以外は入力ポートを指定します。

これでクイックテストが実行されます。各センサの結果については、以下の項目を参照してください。


サウンドセンサ

 サウンドセンサは周りの音量の強弱を計測します。計測にはdB(標準デシベル)単位とdBA(調整デシベル)単位があります。

  • dB :人間が聞き取れない音を含めた全ての音
  • dBA :人間が聞き取ることが出来る音

  •  クイックテストは、測定値を最大値で割った値のパーセントで表示されます。 0%に近い程周囲の音は小さく、また100%に近いほど周囲の音は大きいのです。 NXT付属のサウンドセンサは90dBまで測定できます。

     下の表に測定結果と周りの音との大体のイメージを示しました。プログラムの際にはこれを参照すると良いでしょう。

    測定結果と音量の関係
    表 示音量のイメージ
    4〜5%静かなリビングルームぐらいの音
    5〜10%センサから少し離れた位置で誰かが話しているくらいの音
    10〜30%センサの近くで普通に会話するぐらいの音
    30〜100%センサの近くで叫ぶくらいの音や大音量での楽器演奏程度
    100%(90dB)芝刈り機の駆動音程度



    ライトセンサ

     ライトセンサは光センサとも言い、明暗の区別・室内の光量測定・着色表面の光度測定を行うことが出来ます。
    このライトセンサはアクティブモードとパッシブモードの二つのモードを実行することが出来ます。

  • アクティブモード … 光を発し、反射光を測定する。明暗の区別、着色表面の光度測定で使用
  • パッシブモード … 光を発せず、周囲の光を測定する。室内の光量測定で使用

  •  クイックテストは、投光照明の強さに対する測定量のパーセントで表示されます。 0%に近いと暗いか反射光が少なく、100%に近いと明るいか反射光が多いのです。


    アクティブモード
     明暗を区別したり、着色表面の光度を測定したい場合は、投光照明をONにしてその反射光を計測します。
    アクティブモードの場合は、のアイコンを選択します。


    パッシブモード
     周囲の光量を測定する場合には、投光照明をOFFにして周囲の光を計測します。 投光照明の光が反射しない場合には照明をOFFにする必要はありませんが、照明光も測定してしまい誤差が生じるため、あまり好ましくありません。
    パッシブモードの場合は、のアイコンを選択します。


    RCX用のライトセンサ
     RCX用のセンサを用いる場合には、のアイコンを選択します。 この時、ライトセンサはアクティブモードとなり、表示結果はNXTの場合と同じです。



    温度センサ

     温度センサはNXT付属ではありません。また用いるものはRCX用のものです。尚、今回のチュートリアルでは使用しません。
     この温度センサは摂氏と華氏の両方で結果を表示できます。測定可能範囲は-20℃〜50℃です。


    ロータリーエンコーダ

     ロータリーエンコーダは回転角の測定を行うことができます。 NXTの場合では、モータにエンコーダが内蔵されているため、出力ポートにモータを接続すればエンコーダを使用することが出来ます。
     NXTのロータリーエンコーダの分解能は 1degree です。
     右図のオレンジの部分が回転します。このとき、右図において半時計回りが正の回転方向となります。


    RCX用のロータリーエンコーダ
    RCX用のロータリーエンコーダを用いる場合には、のアイコンを選択します。
    このロータリーエンコーダは、分解能が22.5degreeで1回転につき16パルス観測されます。
    クイックテストではエンコーダからのパルスの数をカウントし、表示します。



    タッチセンサ

     タッチセンサは右図オレンジの部分が押されているか否かを計測します。スイッチのような役割をすることが可能です。
     クイックテストでは、タッチセンサが押されていなければ"0"を、押されていれば"1"を表示します。


    超音波センサ

     超音波センサは物体の認識やそこまでの距離の測定を行うことが出来ます。cm単位とinch単位で結果を表示することが可能です。
     このセンサは最大で2.5mまで測定が可能で、誤差は約±3cmです。指向性は30°程度で市販の超音波センサと同様の性能であるといえます。

     このセンサを用いる場合、物体は表面の固い大きいものが望ましいです。 薄い,柔らかい,小さいものは測定が困難で、また、ボールのような球体は正確に測定できません。



    2.プログラムを動かす TOPへ 4.Bluetooth通信を使う