京バ2017年の超音波距離測定モジュール&そのコントロール回路用のプログラム

Dependencies:   mbed

Committer:
miyakkey
Date:
Wed Dec 28 19:51:37 2016 +0000
Revision:
0:51936010ee07
First Version (Test Program)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
miyakkey 0:51936010ee07 1 #include "mbed.h"
miyakkey 0:51936010ee07 2
miyakkey 0:51936010ee07 3 /*
miyakkey 0:51936010ee07 4 確認済みの機能
miyakkey 0:51936010ee07 5 1)電池の電圧を読み取る(だいたいあっていることも確認済み)
miyakkey 0:51936010ee07 6 2)超音波距離測定モジュールから値を読み取れることを確認
miyakkey 0:51936010ee07 7 ただし、アナログから読み取る方法のみしか試していない。また、本来は得た値から距離に計算しなおす必要があるが、今はしていない。
miyakkey 0:51936010ee07 8 3)シリアル通信でpcにデータを送れること。(これができればおそらくトワイライト経由でも通信可能のはず)
miyakkey 0:51936010ee07 9 4)プログラムが書き込み可能であること。
miyakkey 0:51936010ee07 10 〇〇〇書き込みの方法はラインで通知します〇〇〇
miyakkey 0:51936010ee07 11 書きこみに必要なプログラムはここ
miyakkey 0:51936010ee07 12 http://www3.big.or.jp/~schaft/hardware/tips/LPC1114/page002.html
miyakkey 0:51936010ee07 13 ちなみにこのブログは(主にArduino向きに書いてあるが)結構勉強になることが書いてあるのでざっくり読んでおくとよい。
miyakkey 0:51936010ee07 14 もっとも、このやり方はあまり正しい方法ではなく、Linuxでlpc21ispをつかうのが正統派。
miyakkey 0:51936010ee07 15 https://developer.mbed.org/users/ytsuboi/notebook/getting-started-with-mbed-lpc1114-ja/
miyakkey 0:51936010ee07 16 センサのデータシートはここ
miyakkey 0:51936010ee07 17 http://akizukidenshi.com/download/ds/maxbotix/MB1013.pdf
miyakkey 0:51936010ee07 18 ※このセンサは、電源投入時に前との距離が19cm以上ないとキャリブレーションに失敗して正しい値を返さない。去年はこれを知らずにひどい目にあった。
miyakkey 0:51936010ee07 19 */
miyakkey 0:51936010ee07 20
miyakkey 0:51936010ee07 21
miyakkey 0:51936010ee07 22 //クラスを継承
miyakkey 0:51936010ee07 23 AnalogIn batt(dp9);
miyakkey 0:51936010ee07 24 AnalogIn maxsonar(dp4);
miyakkey 0:51936010ee07 25 Serial twelite(dp16,dp15,9600);
miyakkey 0:51936010ee07 26 DigitalOut led(dp14);
miyakkey 0:51936010ee07 27
miyakkey 0:51936010ee07 28 //変数
miyakkey 0:51936010ee07 29 float battvoltage;
miyakkey 0:51936010ee07 30 float distance;
miyakkey 0:51936010ee07 31
miyakkey 0:51936010ee07 32 //メイン
miyakkey 0:51936010ee07 33 int main(){
miyakkey 0:51936010ee07 34 twelite.printf("Reset\n");
miyakkey 0:51936010ee07 35 led = 0;
miyakkey 0:51936010ee07 36 while(1){
miyakkey 0:51936010ee07 37 battvoltage = batt*2.0*3.3; //バッテリーからの電圧は10kΩの抵抗二つで分圧され、本来の電圧の半分の値で取得している。
miyakkey 0:51936010ee07 38 distance = maxsonar;
miyakkey 0:51936010ee07 39 twelite.printf("Batt = %8.3f , Distance = %8.5f\n",battvoltage,distance);
miyakkey 0:51936010ee07 40 led = !led;
miyakkey 0:51936010ee07 41 wait(1.0);
miyakkey 0:51936010ee07 42 }
miyakkey 0:51936010ee07 43 }