Arduino 資料一覧
Node.jsで超音波距離センサー(HC-SR04)の値を読み取る
2017/01/23更新
対応バージョン: Node.js 4.2.6, Johnny-Five 0.10.6

Node.jsでArduino Unoにつないだ超音波距離センサー(HC-SR04)の値を読み取る。
超音波距離センサモジュール HC-SR04 (スイッチサイエンス)
Node.jsを動かす母艦はUbuntu 16.04とする。
PingFirmata書き込み
HC-SR04の値を読み取るのにJohnny-Fiveを使用する場合、標準のFirmataでは動作しないので以下の手順でPingFirmataをArduinoに書き込む。
% wget https://gist.githubusercontent.com/rwaldron/0519fcd5c48bfe43b827/raw/f17fb09b92ed04722953823d9416649ff380c35b/PingFirmata.ino % arduino --upload PingFirmata.ino
結線
Arduino IDEのスケッチでなくJohnny-Fiveを使用する場合、4つのピンのうちTrig(出力)とEcho(入力)はまとめてよい。VccとGndはそれぞれ5VとGNDに接続する。


ソース
以下のようなコードを書きNode.jsで実行する。
echo.js
var five = require("johnny-five"); var board = new five.Board(); board.on("ready", function() { var proximity = new five.Proximity({ controller: "HCSR04", pin: 7 }); proximity.on("change", function() { console.log(this.cm + " cm"); }); });
実行
% node echo.js 1485094276071 Device(s) /dev/ttyACM0 1485094276078 Connected /dev/ttyACM0 1485094279831 Repl Initialized >> 277.388 cm 277.835 cm 277.904 cm 277.027 cm : (障害物を近づけた時) 13.093 cm 11.684 cm 12.519 cm :
関連資料・記事
参考サイト
Arduino (Wikipedia)
Arduino技術情報 (Qiita)
Arduino関連情報 (Device Plus)
Arduino記事一覧 (Think IT)
Node.js技術情報 (Qiita)
Johnny-Five技術情報 (Qiita)
エレクトロニクス豆知識 (ROHM)