そこで、PCからRomoに指令を送れるサーバ+クライントアプリを作りました。
構成
ざっくり説明するとこんな感じです:
Romoではリモコンアプリ「Romote」が走っており、PCではRomoServerManagerが走っていると想定します。
(1) Romoteはネットワーク経由でRomoServerManagerに接続リクエストを出します
(2) するとRomoServerManagerは新しくこのデバイスを制御するためのプロキシRomoModelを作り、ユーザプログラムに返します。
(3) あなたはRomoModelに対してsetRawPower/ setExpression等のコマンドを投げると、
(4) ネットワークを介してRomoteでハンドリングされます。
(5) なお、コマンドによっては結果が帰ってくるものもあります。(getImageやgetDeviceAttitude等)
アプリ側の設定
1. App Storeで「Romote」をダウンロード、インストール
注:2014/10/1現在まだ公開されていません。
なお、App Storeでは有料ですが、OneMeでRomoを購入した人は無料でダウンロードできるらしいです。受け取ってない人は聞いてみてください。
2. 起動するとこんな画面が出てきます。
3. Romoに乗せる
乗せないと始まらない。 |
4. サーバのアドレス/ポート設定
Romoteアプリの画面をタッチすると、設定画面が現れます。
ここでサーバーとなるPCのIPアドレスを設定してください。
ポートはデフォルトのままでいいはず。
PC側の設定(Javaプログラムから制御する場合)
1. GithubのRomoteServerのページをcloneするなりzipでダウンロードするなりしてください。
2. RomoServerSamples/lib/romoServer.jarがRomoと接続するためのサーバプログラムです。
3. 使い方は、サンプルプログラムを参照してください:
StartAndStop.java - 前に進んで止まる
GetImages.java - 0.5秒おきにカメラ画像を取得して表示する
GUI_ExpressionsEmotions.java - 表情を設定する
GamepadDemo.java - ゲームパッドを使ってRomoを操作するデモ
ShowColor.jar - iPhone画面にフルスクリーンで色を表示するデモ
PC側の設定(その他)
romoServerはただのTCP通信で指令を送るプログラムなので、どんな言語でもサーバーを作れます。
そのうち作ります。
0 件のコメント:
コメントを投稿