UNPKG

obniz

Version:

obniz sdk for javascript

89 lines (78 loc) 2.62 kB
# HC-SR04 超音波を利用した距離センサーです。 ## wired(obniz, {vcc, trigger, echo, gnd}) ![photo of wired](./wired.png) ```javascript // Javascript Example var hcsr04 = obniz.wired("HC-SR04", {gnd:0, echo:1, trigger:2, vcc:3}); hcsr04.measure(function( distance ){ console.log("distance " + distance + " mm") }) ``` ## measure(callback(distance)) 距離を計測します、計測が完了したらcallback関数が呼ばれます。 距離の単位はmmで、unit()関数でinchに変えることも出来ます。 もし、反射してくる超音波を受け取れなかった場合はundefinedが返ります。 ```javascript // Javascript Example var hcsr04 = obniz.wired("HC-SR04", {gnd:0, echo:1, trigger:2, vcc:3}); hcsr04.measure(function( distance ){ console.log("distance " + distance + " mm") }) ``` ## [await] measureWait() measure()と同様ですが、こちらはpromiseを返す関数です。 ```javascript // Javascript Example const hcsr04 = obniz.wired("HC-SR04", {gnd:0, echo:1, trigger:2, vcc:3}); while(true) { let avg = 0; let count = 0; for (let i=0; i<3; i++) { // measure three time. and calculate average const val = await hcsr04.measureWait(); if (val) { count++; avg += val; } } if (count > 1) { avg /= count; } console.log(avg); await obniz.wait(100); } ``` ## temp 超音波は温度により進む速度が違います。 デフォルトで15度で計算していますが、変更して正しい値にすることでより精度の高い結果が欲しい場合はtempから調整します。 ```javascript // Javascript Example var hcsr04 = obniz.wired("HC-SR04", {gnd:0, echo:1, trigger:2, vcc:3}); hcsr04.temp = 36; var distance = await hcsr04.measureWait(); console.log("distance " + distance + " mm") ``` ## reset_alltime 一部のHC-SR04では、計測するときに毎回電源のON-OFFが必要なものがあります。 もし、計測がうまくいかない場合はこのプロパティをtrueにすることで 自動的にリセットを行います。 ```javascript // Javascript Example var hcsr04 = obniz.wired("HC-SR04", {gnd:0, echo:1, trigger:2, vcc:3}); hcsr04.reset_alltime = true; var distance = await hcsr04.measureWait(); console.log("distance " + distance + " mm") ``` ## unit(unit) 単位を変更します。 1. "mm"(default) 2. "inch" が利用可能です。 ```javascript // Javascript Example var hcsr04 = obniz.wired("HC-SR04", {gnd:0, echo:1, trigger:2, vcc:3}); hcsr04.unit("inch") hcsr04.measure(function( distance ){ console.log("distance " + distance + " inch") }) ```