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
です。
完成度が高くてほとんど弄る必要はなかったのですが、下記のカスタマイズを行いました。
受け付けるコマンドを増やした。
オプションでAuthを回避できるようにした。
改行コードを自動選択するようにした。
Terminalの制御文字を送信するか選べるようにした。
ポートの初期値を与えられるようにした。
自分が購入した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)を分解して組み込むと
こんな感じ
です。