超音波・レーザ測距センササンプルプログラム(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さん)に移動します。
③APIをインポートします。画面のImpor into Compilerをクリックします。(下記キャプチャ参照)
④開発環境のインポート方法を指定します。
今回は、Import Asをprogram、Import NameをSRF02TESTとします。(下記キャプチャ参照)
⑤開発環境のマイプログラム内にSRF02TESTが追加されます。
⑥続いてmbedライブラリをインポートします。
ブラウザで下記URLにアクセスし、画面のImpor into Compilerをクリックします。
mbed - a mercurial repository | Mbed
⑦Import AsをLibraryにし、Target PathにSRF02TESTを指定し、ボタンImportをクリックします。
⑧フォルダSRF02TESTを選択して、右クリックし、新しいファイルをクリック。
⑨ファイル名をmain.cppとしOKボタンクリック。
⑩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秒毎に出力します。下記にキャプチャを示します。
次回は、レーザ測距センサのみのサンプルプログラムを作成します。