読者です 読者をやめる 読者になる 読者になる

元派遣プログラマの自称技術系ブログです。雑記とか自作のオープンソースプロジェクトの話とか。
Javaとか組込とかできます。お仕事ください。

加速度センサMMA8451Q用のmbedJS用ドライバを書きました。

@ban4jpさんが実装した加速度センサデモプログラムを元にして、加速度センサMMA8451QをmbedJSから使うためのドライバを書きました。

mbedJSで加速度センサーテスト2 | mbed



こんな感じで加速度センサの値がとれます。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="http://mimic.sourceforge.jp/jsapi/mbedJS.all.js"></script>
<script type="text/javascript" src="http://mimic.sourceforge.jp/jsapi/MMA8451Q.js"></script>
<script type="text/javascript">


function get()
{
  var mcu=new mbedJS.Mcu(document.getElementById("addr").value,
  {
    onNew:function(){
      var dev=new mbedJS.MMA8451Q(mcu,[0x3A,mbedJS.PinName.p28,mbedJS.PinName.p27],function(){
        dev.getAccAllAxis(function(v){
          alert("Axis:"+v.x+","+v.y+","+v.z);
          mcu.close();
        });
      });
    },
    onClose:function(){
      log("[PASS]onClose");
    },
    onError:function(){
      alert("Error");
    }
  });
}
</script>
</head>
<body>
<h1>MMA8451Q test</h1>
<hr/>
<input type="text" id="addr" value="192.168.128.39"></input>
<button onclick="get();">get value</button>
</body>

説明

  1. mbedJSはリビジョン38以降であれば動作します。
  2. サンプルではオンラインのmbedJS.all.jsとMMA8451Q.jsを使用していますが、ダウンロードしてmbedのローカルディレクトリにコピーしておけばインターネットに接続しなくても使えます。
  3. 関数のメンバは、mbedJSの標準関数と同じく、グローバルイベント、個別コールバック、Generatorの3つの使い方ができます。

ドキュメントとソースコード

ソースコード

https://github.com/nyatla/mbedJS-Javascript-API
driverディレクトリの下にjsファイルがあります。

ドライバのリクエストについて

特定のセンサについて、JabvascriptもしくはProcessingのドライバが必要な時は教えてください。

以下の条件を満たす場合はファームウェアの更新が必要ないので、割と簡単に実装ができるかもしれません。

  1. 既にmbedで動作実績がある。
  2. mbedSDKだけでできている。

お申し込みは@nyatlaまでお願いします。


なお、ファームウェア改変を含む大規模なドライバ実装は有償にて承ろうかと思いますので、ご依頼をお待ちしております。