○Motionオブジェクトを作成する
IR(PIR)モーションセンサーを使用するには、Motionオブジェクトを使います。Motionオブジェクトは、物理的なボード上に接続されているIRモーションセンサーを表すオブジェクトです
Johnny-FiveがサポートするIRモーションセンサーは、次のとおりです。
・OSEPP IR Proximity Sensor
・Sharp IR Motion Detection
GP2Y0D815Z0F
Motionオブジェクトを作成するには、Motionクラスのコンストラクタを使います。
Parallax PIRセンサーやHC-SR501など一般的なIRモーションセンサーのMotionオブジェクトを作成するには、引数にIRモーションセンサーを接続するデジタル入力のピン番号を指定します。
new five.Motion(ピン番号);
|
オプションの「pins」プロパティでピン番号を指定する場合は、次のように書きます。
new five.Motion ({
pin: ピン番号
});
|
・配線図
「GP2Y0D810Z0F」「GP2Y0D815Z0F」のMotionオブジェクトを作成するには、「pin」プロパティにセンサーの出力を接続するアナログ入力ピンの名前(A0~A5)を、「controller」プロパティにデバイス名を指定します。
var motion = new five.Motion({
controller: "GP2Y0D810Z0F",
pin: "A0"
});
var motion = new five.Motion({
controller: "GP2Y0D815Z0F",
pin: "A0"
});
|
I2Cインターフェイスの「GP2Y0D810Z0F」モジュールを使用する場合は、デバイス名だけを指定します。
var motion = new five.Motion({
controller: "GP2Y0D810Z0F",
});
|
「GP2Y0D810Z0F」「GP2Y0D815Z0F」の使用用は、次のページを参照してください。
○IRモーションセンサーが感知したモーションを検出する
IRモーションセンサーが感知したモーションを検出するには、イベントハンドラを使います。イベントハンドラは、「on」メソッドを使って書きます。イベントにはイベント名を、ハンドラにはイベント発生時に実行する処理(コールバック関数)を指定します。取得した値は、引数に渡されます。
on("イベント", ハンドラ(引数))
|
Motionオブジェクトで発生するイベントは、次のとおりです。
イベント
|
説明
|
change
|
動きが検出されるたびに発生する
|
data
|
25ミリ秒(「freq」プロパティで変更可)間隔で発生する
|
motionstart
|
動きが検出されたときに発生する
|
motionend
|
動きが停止したときに発生する
|
calibrated
|
動きを検出する準備ができたとき
|
たとえば、モーションの開始と停止を検出するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function()
{
// Motionオブジェクトを作成
// (7ピンをモーションセンサーの検出用に設定)
var
motion = new five.Motion(7);
// 「calibrated」イベント: モーションセンサーの校正完了時に発生
motion.on("calibrated", function()
{
console.log("calibrated", Date.now());
});
// 「motionstart」イベント:動きを検出したときに発生
motion.on("motionstart", function()
{
console.log("motionstart", Date.now());
});
// 「motionend」イベント:動きが停止したときに発生
motion.on("motionend", function()
{
console.log("motionend", Date.now());
});
});
|
○Proximityオブジェクトを作成する
距離センサー(超音波、赤外線、レーザー)のデータを取得するには、Proximityオブジェクトを使います。Proximityオブジェクトは、物理的なボード上に接続されている距離センサーを表すオブジェクトです。Proximityオブジェクトを作成するには、Proximityクラスのコンストラクタを使います。
Pulse/PWMおよびアナログインターフェイスの距離センサーを使用するためのProximityオブジェクトを作成するには、「controller」プロパティに使用する距離センサーのデバイス名を、「pin」プロパティに距離センサーを接続するPulse/PWMピンの番号、またはアナログピンの名前を指定します。
new five.Proximity ({
controller: デバイス名,
pin: ピン番号
}
|
I2Cインターフェイスの距離センサーの場合は、「controller」プロパティに使用する距離センサーのデバイス名を指定します。
new five.Proximity ({
controller: デバイス名,
}
|
Johnny-Fiveがサポートする距離センサーは、次のとおりです。
◇Pulse/PWMインターフェイス
★超音波
・RadioShack 2760342
◇アナログインターフェイス
★超音波
・MB1003,
HRLV-MaxSonar-EZ0
★赤外線
・GP2D120XJ00F
・GP2Y0A710K0F
◇I2Cインターフェイス
★レーザー
★超音波
・HCSR04を使用したI2Cインターフェイスの モジュール
○Pulse/PWM接続の距離センサーを使用するための準備をする
ArduinoでPulse/PWMインターフェイスの超音波距離センサーを使用するには、「PingFirmata」をボードに書き込む必要があります。「PingFirmata」のソースをコピーして、Arduino IDEからボードに書き込んでください。
・PingFirmataのソース
○距離センサーの測定データを取得する
距離センサーの測定データ(距離)を取得するには、イベントハンドラを使います。イベントハンドラは、「on」メソッドを使って書きます。イベントにはイベント名を、ハンドラにはイベント発生時に実行する処理(コールバック関数)を指定します。
on("イベント", ハンドラ)
|
Proximityオブジェクトで発生するイベントは、次のとおりです。
イベント
|
説明
|
change
|
障害物が変更されたときに発生する
|
data
|
25ミリ秒(「freq」プロパティで変更可)間隔で発生する
|
取得した値は、次のプロパティで参照することができます。
プロパティ
|
説明
|
cm、centimeters
|
センチメートルでの障害物までの距離
|
in、inches
|
インチでの障害物までの距離
|
たとえば、HCSR04で計測した障害物までの距離を、センチメートルとインチの両方で取得するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function()
{
// Proximityオブジェクトを作成
var
proximity = new five.Proximity({
controller: "HCSR04",
pin: 7
});
// データを取得して距離を表示
proximity.on("data", function()
{
console.log("Proximity: ");
console.log(" cm : ", this.cm);
console.log(" in : ", this.in);
console.log("-----------------");
});
// 「change」イベント:障害物が変更されたときに発生する
proximity.on("change", function()
{
console.log("The obstruction has moved.");
});
});
|
・配線図
○距離センサーのデータの読み取り間隔を設定する
距離センサーのデータの読み取り間隔(「data」イベントの間隔)を設定するには、オプションの「freq」プロパティを使います。値にはミリ秒単位の時間を指定します。たとえば、500ミリ秒間隔でデータを取得するには、次のように書きます。
var
proximity = new five.Proximity({
controller: "HCSR04",
pin: 7,
freq: 500
});
|
0 件のコメント:
コメントを投稿