obniz
RCWL-0516

obnizでRCWL-0516のレーダーの信号をみてみる


はじめに

Googleのレーダー技術によるジェスチャー入力方式SoliをFCCが認可、電波妨害問題をクリアという記事をみて以前から関心していたSoliが実用化に近づいたことをワクワクした一方、税関チェックで2週間遅れくらいで届いた超安いマイクロ波レーダーセンサRCWL-0516がちょうど手元にあったのでなんかやってみようかと思った。同じレーダーセンサだし。

で、なんかおもしろいネタはないかしらと検索していたらRCWL-0516マイクロ波レーダー少し改造 (5)という記事が興味深かった。ちょっと手を加えてレーダーが感知した信号をアナログ出力できるとか。なんかSoliっぽいことができるかも。ということでやってみた。


やってみた

IMG_20190104_222402.jpg

こんな感じで記事の青い配線のほうと同じにオペアンプとピンをつないでobnizの0ピンに接続する。このピンをアナログで読めばOKのはず。コードは以下


RCWL-0516-wave.html

<html>

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@1.14.1/obniz.js" crossorigin="anonymous"></script>
</head>
<body>

<div id="obniz-debug"></div>
<h1>obniz instant html</h1>
<p id="vol">0</p>
<p id="arr">[]</p>
<div id="chart-area">
<canvas id="chart"></canvas>
</div>

<script>
var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {

var v = 0;
var arr = [];

obniz.io2.drive('5v');
obniz.io2.output(true);

obniz.ad0.start(function(voltage){
document.getElementById('vol').innerHTML = voltage;
v = voltage;
});

obniz.io4.output(false);

setInterval(function() {
arr.push(Math.floor(v));
if(arr.length === 35) {
arr.shift();
}
document.getElementById('arr').innerHTML = arr.join(',');
}, 10);

}

</script>
</body>
</html>


obniz.ad0.start() でレーダー波が感知した信号の電圧を読んでいる。io2がVIN、io4がGNDになっている。

電圧の変化がわかりやすいように0.1秒毎に電圧の整数値をサンプリングして配列にスタックして表示してみた。


実行する

実行結果はこちら。センサーの上で手を移動させたり指をくるくる動かしたりしたのに応じて信号が変わっているのがわかる。基準電圧はだいたい1.5〜1.9くらいで、近づくと上昇し、離れると下降するようだった。

rcwl-0516-wave.mov.gif

実行開始後、20秒くらいは電圧が安定しないので、しばらく待って基準電圧に安定してから試してみるとよい。


まとめ

思ったよりセンシティブに感知していておもしろいと思った。RCWL-0516は人感センサー用途なのでOUTでHIGH/LOWのデジタル値だけみるような仕様だけどアナログ信号取ったほうが面白いんじゃないだろうか。Soliくらいの解像度は出ないにしろ波形の解析で近づいた、遠ざかった、通り過ぎたくらいは検知できるかもしれない。レーダーセンサーってなんか可能性を感じる。

あとobnizはやっぱ配線しなくて便利だな。教育に特化している感があってPoCの運用などには制限がありすぎて不向きだと思っていたけど、こういうちょっとしたセンサーを試用するという用途には使いやすいと思いました。