LoginSignup
3
2

More than 5 years have passed since last update.

obnizでRDM-01を動かす

Last updated at Posted at 2019-02-10

最近スイッチサイエンスでRDM-01という基板の販売が開始されました。

このRDM-01は音リモコンというAlexaスキルと連携して使える基板になっており、この基板を使うことでEchoから出力される音を解析し、Arduino等で認識ができる形に変換、出力することができます。
つまりこのRDM-01を使うことで、サーバーサイドの開発をすることなく、直接ハードウェアに命令を送ることができるようになります。

そんなRDM-01ですが、"obniz"で動かしたらどうなるのか、やってみました!

準備するもの

  • obniz
  • RDM-01
  • micro usb ケーブル (電源を取るため)

RDM-01は同梱されているピンヘッダを半田付けする必要がありますが、半田付けをしたらobnizに挿すだけなので、とてもシンプルになります。
取り付けるとこんな感じです。
IMG_4821.JPG

obnizのソースコード

画像のようにRDM-01を0~6ピンに挿入して使用した時のコードを示します。
コードはscriptの中だけになります。

obniz_RDM-01_sample.js


let Decode = ["D","1", "2", "3", "4","5", "6", "7", "8","9", "0", "*", "#","A", "B", "C"]

var flg = false;
var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {

//電源の設定
  var usb = obniz.wired("USB" , {gnd:5, vcc:6} );
  usb.on();

  //ディスプレイ
  obniz.display.clear();
  obniz.display.print("RDM-01起動!");

  //メインループ
  obniz.repeat(async function(){
    if(await obniz.io0.inputWait() == true && flg == false){//StDの反応を確認し、反応しているかどうか確認する。
      flg = true
      q1 = await obniz.io4.inputWait();
      q2 = await obniz.io3.inputWait();
      q3 = await obniz.io2.inputWait();
      q4 = await obniz.io1.inputWait();

      var result = (q4 << 3) +  (q3 << 2) +  (q2 << 1) + q1

      obniz.display.clear();
      obniz.display.print(Decode[result]);
      console.log(Decode[result])//PCの画面上にもログとして表示する
      await obniz.wait(10);
    }else if(await obniz.io0.inputWait() == false && flg == true){
     flg = false 
    }
  }) 
}

obnizは割り込み機能がないので、メインループを作り、そこでずっとチェックをしています。
またStD(音を拾えたことを知らせるピン)が立ち上がったら、最初の一回だけ反応するようにしました。こうすることで、なんども同じ値が取れることがないようにしています。

最後に

RDM-01をobnizで使ってみましたが、とても簡単にRDM-01が使える環境だなと感じました。
ただ、電源のとりかたを誤ると、ほとんど信号が取得できないのもわかりました。
今回のコードはそれを調べた上で一番ベストなやり方になっています。

これを参考にRDM-01を使っていただければと思います。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2