trykmkmの備忘録

自称組み込みエンジニアのブログ

超音波・レーザ測距センササンプルプログラム(3)

 今回は、前回作成したハード上で、超音波測距センサのみを動作させるサンプルプログラムを作成します。

 

 プログラムは、一定間隔で超音波測距センサからi2cでデータを取得し、usbポートから測定データを出力します。

 

 まずは、コーディングの前に、mbed USBシリアルドライバをインストールする必要があります。

 下記URLより、インストーラをダウンロードし、実行し、インストールします。

 https://os.mbed.com/media/downloads/drivers/mbedWinSerial_16466.exe

 

 次に、コーディングをしていきます。

 ここでは、超音波測距センサ(SRF02)のAPIを公開している方がいらっしゃるので、有り難く利用させていただくことにします。

 手順を下記に記します。

 

 ①APIをmbedの開発環境にインポートするため、まずはブラウザでmbedにログインします。

 

 ②ブラウザで下記のAPIのページ(Robinson Lopez Monzonさん)に移動します。

 SRF02 | Mbed

 

 ③APIをインポートします。画面のImpor into Compilerをクリックします。(下記キャプチャ参照)

f:id:trykmkm:20170918012042p:plain

 

 ④開発環境のインポート方法を指定します。

  今回は、Import Asをprogram、Import NameをSRF02TESTとします。(下記キャプチャ参照)

f:id:trykmkm:20170922201351p:plain

 

 ⑤開発環境のマイプログラム内にSRF02TESTが追加されます。

f:id:trykmkm:20170922202801p:plain

 

 ⑥続いてmbedライブラリをインポートします。

  ブラウザで下記URLにアクセスし、画面のImpor into Compilerをクリックします。

  mbed - a mercurial repository | Mbed

 

 ⑦Import AsをLibraryにし、Target PathにSRF02TESTを指定し、ボタンImportをクリックします。

f:id:trykmkm:20170922211339p:plain

 

 ⑧フォルダSRF02TESTを選択して、右クリックし、新しいファイルをクリック。

f:id:trykmkm:20170922212719p:plain

 

 ⑨ファイル名をmain.cppとしOKボタンクリック。

f:id:trykmkm:20170922212936p:plain

 

⑩main.cppに下記コードを記述(SRF02 i2cモード詳細)

#include "mbed.h"
#include "SRF02.h"

SRF02 sensor(p28,p27,0xE0); //SRF02インスタンス(SDAピン, SCLピン, i2cデバイスアドレス指定)
Serial pc(USBTX, USBRX); //シリアルポートインスタンス(usb指定)

int main() {

    while(1) {


        //距離取得
        int distance = sensor.readcm();

        //USBシリアルポートに距離出力
        pc.printf("ULTRASONIC(SRF02) : %4d [cm]\n",distance);

        //0.5秒待機
        wait(0.5);
    }
}

 

⑪保存ボタンクリック後、コンパイルボタンをクリックして実行ファイル(SRF02TEST_LPC1768.bin)生成。

 

⑫mbedをPCに接続し、mbedにSRF02TEST_LPC1768.binを保存。

 

teratermでmbed Serial portを指定し、ボーレート9600bpsに指定すれば、超音波センサの測定データが0.5秒毎に出力します。下記にキャプチャを示します。

f:id:trykmkm:20170924002510p:plain

 

次回は、レーザ測距センサのみのサンプルプログラムを作成します。