Grove:赤外線反射センサ v1.2
Groveの赤外線反射センサ v1.2を接続し、Tibbo-Piのデジタル入力機能を使って、センサにごく近い(1cm程度)白い物体の有無を検知します。
(Groveデバイスの詳細は上記リンクから参照願います。)
Tibbitの配置
Tibbit #00-3 と Groveデバイスを接続したTPbit #02を挿入します。
ノードの配置
物体検知時動作
物体が検知されたときと検知が解除されたときのみデータを取得します(イベント動作)。
以下のようにフローを配置します。
Tibbit#00ノードの設定を開き、以下のようにスロットとIN_Edgeを選択します。
Node-REDデプロイ後、センサの前に物体を近づけると変数「v」として「0」が、その状態から物体を離すと「1」が取得できます。
物体ありのときはGroveボード上のLEDが点灯し、なしのときは消灯します。
サンプルフロー
1 |
[{"id":"97cf263a.a70bd8","type":"Tibbit-#00 in","z":"c2fa6897.58c3f8","name":"","tpSlot":"S01","communication":"GPIO","outputOnly":true,"pinA":"IN_Edge","pinB":"other","pinC":"other","pinD":"other","serialConf":"","connectedStatus":"start","host":"","x":300,"y":140,"wires":[["3bad4c7.6e81ab4"]]},{"id":"3bad4c7.6e81ab4","type":"debug","z":"c2fa6897.58c3f8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":510,"y":140,"wires":[]}] |
定期確認動作
指定した定期時間ごとに物体の有無を確認します(定期動作)。
chを指定するために、changeノードを使用します。
以下のようにフローを配置します。
changeノードのプロパティを開き、アナログ値を取得したいchを指定するために、以下のように設定します。
Tibbit#00ノードの設定を開き、以下のようにスロットとINを選択します。
injectノードは、以下のように「繰り返し」に「指定した時間間隔」を「1秒」と指定します。
Node-REDデプロイ後、定期的に物体検知の状況を取得することができます。物体なしが「1」、物体ありが「0」です。
サンプルフロー
1 |
[{"id":"b3e114fc.ec3448","type":"debug","z":"c2fa6897.58c3f8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":650,"y":380,"wires":[]},{"id":"495f2d1b.3f77d4","type":"inject","z":"c2fa6897.58c3f8","name":"","topic":"","payload":"","payloadType":"date","repeat":"1","crontab":"","once":false,"onceDelay":0.1,"x":190,"y":260,"wires":[["59772683.c96668"]]},{"id":"59772683.c96668","type":"change","z":"c2fa6897.58c3f8","name":"ch指定","rules":[{"t":"delete","p":"payload","pt":"msg"},{"t":"set","p":"payload[0].line","pt":"msg","to":"A","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":330,"y":300,"wires":[["c9e63e6e.ef99a"]]},{"id":"c9e63e6e.ef99a","type":"Tibbit-#00","z":"c2fa6897.58c3f8","name":"","tpSlot":"S01","communication":"GPIO","pinA":"IN","pinB":"other","pinC":"other","pinD":"other","i2cBaudRateK":"100","spiSpeed":"500","spiMode":"1","spiEndian":"1","serialConf":"","connectedStatus":"start","host":"","x":480,"y":340,"wires":[["b3e114fc.ec3448"]]}] |
上記の「イベント動作」のフローと「定期動作」のフローは同時に動かすことができます(定期的に確認しつつ、イベントで検知することができる)。