mbedJSをインターネットで共有するサービスを作った
mbedを使ったネットワーク電子工作サービスの第一弾として、mbedJS(エェェェェンベッドJS)をインターネットで安全に共有するためのWebServiceを作りました。
追記 2014/10/09
サーバの確保ができましたので、サービスを復旧しました。
ご迷惑をおかけしました。
Webブラウザから簡単にmbedJSをインターネット越しに共有できます。
Getting Started
機材の準備
まずはmbedJSをセットアップしたmbedを用意してください。
mbedにはイーサネットケーブルを接続して、ブラウザからアクセスできるようにしておいてください。
mbedJS - a mercurial repository | mbed
既にmbedJSをセットアップしてあるなら、特に更新の必要はありません。
共有の開始
共有システムに接続すると、シェアURLが発行されます。
シェアURLはインターネットからあなたのmbedに接続するための一時的なアドレスです。
シェアURLは、共有サービスのWebページを閉じるまで(共有システムから切断されるまで)です。使用中はページを閉じないように気を付けてください。
クライアントからの接続
mbedJSのプログラムのMcuインスタンスのaddress引数にシェアURLを設定して実行すると、共有システムを経由してmbedを操作することができます。
画像はprocessingの例ですが、Javascript、Javaについても同様に指定ができます。
リモートAPI対応のためクライアントを更新しましたので、最新のクライアントをGithubからダウンロードしてください。
JavascriptAPIについては、http://nyatla.jp/mimic/js/current/mbedJS.all.jsを使用してください。(mbedJS同梱のAPIは対応していません。)
対応しているバージョンは以下の通りです。
- Javascript API - 4667f7209545d3b89ea971c569246150edeedc70以降
- Java API - 9e9f0f1ad69b381d862ea8a7dec2c1ab9c000213以降
- Processing API - 41b705a7c52b5d61a078cbd0a71fbd42cc329763(Release4)以降
遊び方
mbedJsIGSは以下の様な遊びを想定したシステムです。
- インターネット越しに安全にmbedJSを操作する。
- 他人の所有するmbedをネットワーク経由で借りる。
- Ustreamなどと併用してデバッグをリモートから手伝ってもらう。
- 人命に関わったり、損害が出ても泣かない程度のシステムを操作する。
以下の様な遊び方は想定していません。
- 長時間(1日以上)同じセッションを使い続ける。
- 多人数で1つのmbedを操作する。
- 人命に関わるシステム、停止するとまずいシステムでの使用。
この辺はWebService次第なので、別途必要な場合はご相談ください。
仕組み
どうやって動いてるのかとか、技術のお話です。
mbedJSはWebベースのシステムなので、全て既存のWeb技術のみで構成されています。共有システムの本体はレンタルサーバで動いてます。これは単純なWebsocketサーバです。mbedJSもWebsocketサーバなので、ブラウザを使ってWebsocketパケットを中継させます。
共有システムでは、コントロールポイント、インターネット、エンドポイントの3つのネットワークを跨ぎますが、全てインターネットの方向に接続されるので、mbedJSをそのままインターネットに接続するよりも安全です。また、レンタルサーバを使用することで安価にインターネットの攻撃からシステムを守ることができます。
mbedJSの制御プログラムはブラウザで実行されるので、エンドポイントでmbedJSを公開するときにサーバから動的にダウンロードします。mbedJSのファームウェアを書き換える必要はありません。
サーバはコントロールポイントから見るとローカルのmbedJSと全く同一に見えます。そのため、接続先のアドレスを変えるだけで全く同じプログラムを利用することができます。
セキュリティについては、「ブラウザを落とせばきれいさっぱり全部なくなる」仕様なので、一時的にmbedをネットに公開するだけならとても安全です。
インターネットを跨ぐので通信速度はさすがに遅くなりますが、100Hz程度のRPCを実行することができます。
- 出版社/メーカー: スイッチサイエンス
- メディア: エレクトロニクス
- クリック: 1回
- この商品を含むブログを見る
- 出版社/メーカー: Seeedstudio
- メディア:
- この商品を含むブログを見る
- 出版社/メーカー: スイッチサイエンス
- メディア: エレクトロニクス
- この商品を含むブログを見る