1Click飲みRomoCartTempescope色色[:iroiro]Other Projects

2014年10月3日金曜日

PCからRomoを操作するためのリモコンアプリ「Romote」

iPhoneから操作できる教育用ロボット「Romo」、iPhoneアプリだけで完結してる場合はいいのですが、少し凝った事をしたい時はPCから制御したくなります。
そこで、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 件のコメント:

コメントを投稿