Android端末で無線LANカメラの画像を表示してみた。
使用したのは、
Android端末 : Acer ICONIA TAB A500
無線LANカメラ : PLANEX CS-W07G-CY
・とりあえずwebview.loadUrl()を使って無線LANカメラ画像を表示するところまではすぐできた。
-----途中省略、要点のみ---------------------------------------------------------
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
setContentView(webview);
webview.loadUrl("http://192.168.1.100/?action=snapshot");
}
----------------------------------------------------------------------------
さてこれを任意の位置に任意のサイズで表示するにはどうすれば良い?

・やっと表示位置とサイズを変えられるようになった。
ちょっと変更して url.getContent()を使ってみた。
-----途中省略、要点のみ------------------------------------------------------
protected void onDraw(Canvas canvas)
{
try {
URL url = new URL("http://192.168.1.100/?action=snapshot");
InputStream is = (InputStream) url.getContent();
Bitmap bitmap = BitmapFactory.decodeStream(is);
is.close();
canvas.drawColor(Color.WHITE);
Paint paint = new Paint();
Bitmap resizedBitmap = Bitmap.createScaledBitmap(bitmap, 160, 120, true);
canvas.drawBitmap(resizedBitmap, 50, 100, paint);
} catch (IOException e) {
if (D) Log.d(TAG, e.toString());
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
----------------------------------------------------------------------------

・bluetooth sppでmbed + サーボを動かすUIに、無線LANカメラ画像を表示するようにした。
一応カメラ画像は表示できるようになったが、カメラ画像の取得処理が重いのでUIの反応が悪くなってしまった。
SurfaceViewを使えば描画を別スレッドにできるらしい。試してみよう。

・SurfaceViewを使って、無線LANカメラの画像取得処理と表示を別スレッドにしてUIの応答性を改善した。
カメラ画像表示は6fps前後だが、何とかロボットのリモコンとして使えそうにはなった。

・Android端末で移動ロボット操縦、できた。
Android端末でロボットに搭載の無線LANカメラ画像をモニタしつつ、タッチパネルで操縦できる。
ロボットはmbedで制御。Android端末とはBluetooth SPP接続。

動画はこちら。
タッチパネルが滑らないのでちょっと操縦しずらい。(^^;)
― 以上 -
ここを参考にさせて頂いた。
・電池で動くWi-FiカメラCS-W07G-CY(やっと)到着
・プラネックスのネットカメラも試してみる