京バ2017年の超音波距離測定モジュール&そのコントロール回路用のプログラム
Dependencies: mbed
main.cpp@0:51936010ee07, 2016-12-28 (annotated)
- Committer:
- miyakkey
- Date:
- Wed Dec 28 19:51:37 2016 +0000
- Revision:
- 0:51936010ee07
First Version (Test Program)
Who changed what in which revision?
User | Revision | Line number | New 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 | } |