GR-CITRUSとMIKANを試してみる(6)

前回はPCとGR-CITRUSをMIKANを経由してWi-Fiでコントロールするのを試してみましたが、今回はAndroid携帯とGR-CITRUSをMIKANを経由してWi-Fiでコントロールしてみます。

主な変更点はつぎのとおりです。

①GR-CITRUSのmrubyプログラムの変更点は以前はモータ制御コマンド受け取るとPCのUIボタンを赤色にするよう応答してましたが、Androidのスレッドのタイミングでエラーになるので今回は応答を止めました。ジャイロセンサのデータのみ送出しています。Forwardモータでは赤色文字の箇所が該当します。

if(array[0] >= 0)then
 @Usb.println array[0].to_s
 if(array[0] == 0x66) then #//"f"
 #//WiFi.send 4, "MC11"
 l_motorf()
 r_motorf()
 @Usb.println("motor FF")
 end

AndroidのプログラムはメインのSimpleWifi.javaUdpクラスのUdp.javaから構成されています。今回はxmlを使わずに作成しました。UIボタンのレイアウトはRelativlayoutを使用し、PCのUIボタンのレイアウトと同じようにしています。

ジャイロセンサの計測コマンドはタイマクラスを使用しないでハンドラーを使って約1秒毎にGR-CITRUSに送出しています。またジャイロセンサのX,Y,ZデータはDispThreadとハンドラーを使ってUI画面に表示するようにしました。

昔、作成した古いプログラムを流用したので最新の記述になっていない箇所もあるかと思います。

実際のUI画面はつぎのとおりです。

f:id:jf3rgskun:20161203191232j:plain

 実際のプログラムはつぎのとおりです。

Android_Udp.rb