Koshianのレッスンゴレライ5(大気圧センサー)

前回に続いて、I2Cに手持ちの大気圧センサーを繋いでみました。

秋月電子で購入したモジュールです。Freescale社のMPL115A2と、パワーインジケータ用LEDとパスコンが載っています。

秋月電子の提供資料だと不明点が多いので、データーシートを読みましょう。
単4アルカリ乾電池2ケ直列の約2.7Vで動作させています。
I2Cバス上に繋ぐデバイスが増えてきたので、温度センサーモジュール上のプルアップ抵抗10KΩでは信号波形劣化が不安なので、半田ジャンパーをカットして、SCLとSDAを4.7KΩのプルアップに変更しました。









テストコード

JSLintがビット演算を許してくれないので(無視すれば良いのだが)、ビットシフトの代わりに掛け算、割り算で実装しています。 javascriptの数値演算はIEEE754の浮動小数点で行われるそうなので、デバイスが意図する計算値とは誤差が発生しますので、測定精度を期待する場合にはオススメできませんのでご注意を。

また、気圧計算に使用するCoefficient値 a0、b1、b2、c12はデバイス個々の固有値として格納されており変化しませんので、一度読み出して事前計算して定数としてプログラムに組み込んでしまうのも有りですね。

















Tips
純粋にjavascriptのみのコーディングであればBracketのデバッグ機能やPCブラウザの開発モードを利用したデバッグができますが、konashiによるBlueTooth通信が含まれると実行できないので、(javascript初心者なもので)嵌りだすと何が何だか判らなくなって困っていたところ、konashi.jsアプリ画面にオーバレイしてデバッグログを表示してくれるlog functionsがありました。

デバッグログ画面が小さいので、iPhoneの横幅一杯に表示し、表示位置を下詰めにするカスタマイズ版を参考まで。赤文字部分が変更部分です。

//debuglog表示カスタマイズ
function showMyDebugLog() {
    "use strict";
     var debugConsole = document.createElement("div"),
        logheight = 200, // 画面の縦方向サイズを指定
        logvposi = $(window).height() - logheight - 40,   //バー表示領域を避ける
        logwidth = $(window).width();  //画面の横方向サイズを表示領域一杯にする

    debugConsole.setAttribute("style",
                              "position:fixed;left:0px;top:" + logvposi + ";z-index:100000;width:" + logwidth + ";height:" + logheight + ";" +
                              "background-color:rgba(0,0,0,0.6);color:#FFF;font-size:10px;overflow:hidden;"
                             );
    debugConsole.setAttribute("id", "konashi-debug-console");
    document.documentElement.appendChild(debugConsole);
}

次回も同じくI2Cにデバイスを繋ぎます。

コメント

このブログの人気の投稿

ARM用クロスコンパイラのビルド(Windows8+Cygwin)

Raspberry Pi のsleep時間測定

Cygwin+Emacs Problem