2015年2月16日月曜日

Galileo で Windows for IoT その2

 今回のガラクタは、前回に引き続き Windows for IoT with Galileo です。Windows for IoT の良いところは、やはり、Visual Studio で Windows (のコンソール)アプリとして、開発・デバッグが出来るところではないかと思います。ただ、Realtime OS や Arduino のようなOSなしマイコン直接操作 みたいのに比べるとリアルタイム性は無いので、そういった必要性があるところには使えません。逆に言うと、じゃあ、どんなところに使えるんだ?って話で、Raspberry Pi を使うようなネットワークやら、計算・画像処理なんかの重めのところをやらせるのがいいんじゃないでしょうか?まあ、自分の中では、その手の用途は Raspberry Pi + Arduino (Micro) のコンビがデフォルトになっているわけですが、今回は、Windows for IoT で遊ぶということで、Galileo で WinSock (Socket) 通信を試してみようと思います。
 基本的には、こちらにあるサンプルの流用となりますが、Galileo側で WinSock Server プログラムを動かして、Windows PC からWinSock Client プログラムで接続して、文字を送信、Galileo 側が受信文字によってAnalogRead()の値をClient側に返すというシンプルなものです。また、ついでに、前回のLCDシールドも使って、応答文字列をLCDにも表示しています。
 今回は GroveシールドとLCDシールドをスタックしています。Grove も DigitalWrite() や DigitalRead() などで使える簡単なものは動きますが、超音波距離センサを使おうと思ったところ pulseIn()関数が使えないようでした。


 PCのクライアントソフトで接続して、x とか y とか送信すると、AnalogRead() でジョイスティックの値を読み込んで、LCDに表示しつつ、クライアント側に応答送信します。



  Galileo側の WinSock Server のソースはこちらPC側のテスト用クライアントのソースはこちら にあります。
 一応、Galileo側のコードだけ以下に掲載。