Node.jsとNetduino Plusを使ってサーボモーターをスマートフォンのブラウザから動かす!

2015/08/14 7M4MON

デモ動画はこちら


1. はじめに

2010年9月にニューヨークの Maker Faire に行った際、Netduino PlusというVisual Studioでプログラミング出来る Arduino 的なものを購入しました。
で、Lチカをした後に仕舞われていました。
しばらく忘れていたのですが、部品の整理をしていたら発掘され、5000円以上したっけ……と思い出し、
この5年間で出来るようになったスキルを組み合わせて遊んでみることにしました。

2. NetduinoをSocket Serverとして動作させてサーボモーターを動かす

Netduino PlusにはEthernetが付いていて、折角だからこれを生かしたいなぁと。
AndroidをSocket Serverとして動かすアプリを以前に作ったので、これをNetduinoに移植?すれば、DAQボードになりそうです。
NetduinoをSocket Serverとして動かしている例は複数あったのですが、使用したのは netmftoolbox Terminal Serverです。

完成度が高くてほとんど弄る必要はなかったのですが、下記のカスタマイズを行いました。
自分が購入したNetduino Plusはどうやら最初の〜200台だったらしく、ファームが古すぎたので不安定でした。
で、最新ファームをえっちらおっちらと当てて良い感じになりました。

ちなみに、NetduinoのI/Fは3.3Vなので、バスバッファ(74HC541)を挟んでいます。

3. Node.jsからSocket Clientでnetduinoに接続してブラウザから動かす

Node.jsで、Socket Clientを作成するのは簡単で、
var net = require('net');
var client = new net.Socket();
client.connect(23, 'server address', function() {
});

これだけです。

あとは、expressでListenして、タッチイベントと座標をjQueryで捕獲して、socket.ioでserverと通信したら完成です。
githubに公開しましたのでご自由にどうぞ。

4. その他

デモ動画で使用しているパン/チルトキットは「SG90 PTZ」で検索すると出てくるやつで、日本で買うとモーターが一つ400円、
キットが458円の計1258円ですが、AliExpressで買ったら全部揃って送料込み4.53USDでした。注文から到着まで12日かかりました。
結構な改造が必要みたいですが、秋月でも扱っているようです。
ホルダ部の内寸は30x30.5x10mmだったので5mm厚、30mm幅の木材を切って2枚重ねて嵌め込みました。



そんなこんなで、良い感じのオモチャが出来上がりました。
ちなみに、秋月の300円WEBカメラ(DX-670)を分解して組み込むとこんな感じです。