mbed を使ったロボット作成 第2回

【赤外線センサを使ってみる】

 

はじめに

人が外部の何かを感知する時、五感を使うことは、皆さんご承知のとおりです。

ロボット(コンピュータ)が外部の何かを感知する場合、五感なんてものは無いので、お膳立てをしてあげる必要があります。
そこで登場するのが、センサです。
最近では急速は技術進歩により、様々なセンサが登場しています。

今回は、マイコンで動作するロボットの『』となるセンサーについて赤外線センサを採用しました。

採用した理由としては、マイコンで動作するロボットという性質上、省電力、省スペースである必要があり かつ 制御を簡単にしたかったからです。

赤外線センサについて

赤外線センサは、今やどこにでも設置されており、誰もが気付くこと動作しています。

代表的は実装事例としては、コンビニの自動ドア防犯用人感センサなどがあげられます。

仕組みはいたって単純で、発光素子から赤外線(光)を照射し、その反射光を受光素子により受光し、その結果をデータ化します。
もっと詳細が知りたい方は、『赤外線センサ』でググってみてください。

今回、使用するセンサは以下のとおり。

製品名 距離計測モジュール(ハーネス付き)
メーカー シャープ
型番 GP2Y0A21K0F
距離計測範囲 10~80cm
出力 アナログ電圧出力
値段 600円(楽天市場でポチっとしました)

距離計測モジュールGP2Y0A21K0Fは赤外線LEDと光位置センサPDS(Position Sensitive Detector)、信号処理回路で構成されています。

赤外線LEDから照射した赤外線が物に反射され、その反射光を光位置センサPDSで受信して、出力電圧を距離に応じて変化させて出力させます。

距離L-出力電圧V特性は、物との距離Lが小さく(近づく)についれて出力電圧V大きくなり、距離Lが大きく(離れる)につれて出力電圧Vは小さくなります。

この出力電圧Vをmbedのアナログ入力とし、A-Dコンバータでデジタル値に変換します。
mbed01
mbedとの接続は以下のとおり
mbed02
※GP2Y0A21K0F側の色はハーネスの色です。黒がGNDでないのがポイント。

ソフトウェアについて

開発環境は、「mbedを使ったロボット作成 第1回」でご紹介した「ARMのオンラインコンパイル環境」を使って作成していきます。
メイン処理で無限ループし、アナログポートから入力のあった値に応じて、LEDの点滅時間を変更するプログラムをして検証を行います。

#include "mbed.h"
DigitalOut myled(LED2); /* 点滅するLEDポートの定義 */
AnalogIn ain(A0);       /* アナログ入力ポートの定義 */
/*
* アナログ入力に応じてLEDの点滅時間を変更する
 */
int main() {
    double time = 1.0;
while(1) {
    /* ain の値 応じて Wait 時間を決定する */
        /* 距離が近い程、ain の値は大きくなる  */
        if ( ain > 0.8f ){
            time = 0.2; /* 0.2 sec */
        } else if( ain > 0.6f ){
            time = 0.5; /* 0.5 sec */
        } else if( ain > 0.4f ){
            time = 1.0; /* 1.0 sec */
        } else if( ain > 0.2f ){
            time = 1.5; /* 1.5 sec */
        } else {
            time = 2.0; /* 2.0 sec */
        }
        myled = 1;  /* LED is ON */
        wait(time); /* ON Wait */
        myled = 0;  /* LED is OFF */
        wait(time); /* OFF Wait */
    }
}

実行結果

 

障害物が「離れているとLEDの点滅が遅く」、「近づくとLEDの点滅が早くなる」ことが確認できました。

簡単なポート制御をするだけで、赤外線センサを使った距離計測ができます。

この結果をもとに、ロボットに障害物回避をさせたいと思います。

 

次回は、サーボモータ制御かLCD表示あたりをやってみます。
#mbed , #NUCLEO-F401RE , #GP2Y0A21K

【参考】
mbedを使ったロボット作成 第1回
mbedを使ったロボット作成 第3回

 

\ 最新情報をチェック /

3 thoughts on “mbed を使ったロボット作成 第2回

この投稿はコメントできません。