Webデザイナが使うWebofThingsなモーター"Webmo"が公開されていました。
このシステム、以前開発したmbedJSとよく似ています。
mbedJSも似たコンセプトで目指していましたが、途中で企画倒れというか、プロダクトのレベルまでは到達できませんでした。
反省の意味も込めて、mbedJSと比較しながら雑感を書いていこうと思います。
※購入レポートではありませんのでご了承ください。
webmoという製品
こちらのページで紹介している通り、Web技術の延長でフィジカルコンピューティングができる製品です。
制御にはWebAPIを使うので、Webプログラミングの知識があれば使えます。
ハードウェア
ハードウェアは、”モーター”と”エンコーダ”と"Linuxマシン"(edison)の組み合わせです。組立済、ファームウェアセットアップ済なので、電源をつなげばすぐに使える点はお手軽です。
モーターとエンコーダの組み合わせは、ウェブデザインには無いインプットとアウトプットで、(物理的に)動く点がとても良いです。モーターにも結構なパワーがありそうな感じです。
ネットワークはWiFiのアドホックモード/インフラストラクチャーモードに対応していて、他にWiFiアクセスポイントを用意しなくても動かせます。
ソフトウェア
主要なソフトウェア構成は、edison用のLinux+ウェブサーバ(nodeJSかな?)、Bonjour(mdns)のデーモン(Avahiかな?)を組み合わせたものだと思います。
ゼロコンフィギュレーション技術を使っているので、(1台だけなら)ネットワーク接続の設定も不要だと思います。複数台を同じネットワークで同時に使うときは、デバイスの名前などを調整する必要がありそうです。
MacOSでならSafariからデバイスの探索ができると思いますが、httpサービスのポート番号が80っぽいので、OSのバージョンによってはセキュリティに引っかかって見つからないかもしれません。
Windowsで使うときはBonjur for Windowsの使用を推奨していますが、Windows版のBonjurはデバイス名解決に失敗することがあるので、ちょっと心配です。
セキュリティについては、安全な場所で使ってくださいということでしたが、Linuxサーバなのでグローバルネットワークにつなぐのは難しいですよね。
mbedJSと比較してみる
以前開発していたmbedJSと比較してみます。
セットアップについて
Webmoは買ってきて電源を繋ぐところまで準備されており、mbedJSのようにファームウェアの書き込みやら電源のお膳立てやらが必要なく、優れています。mbedJSは使うまでのハードルが高すぎました。
実装例については、Webmoの”物理的な動き”は素晴らしいです。mbedJSではLEDの点灯くらいしか無く、大変つまらないものでした。
Webmoはモーター、mbedJSはMCUボードを操作ターゲットにしていたので、その差が分かりやすさに繋がったように思います。
mbedJSも、何か形があれば、もう少しわかりやすく提供できたかもしれません。
ハードウェアについて
Webmoはmbedを使うmbedJSと比べてハイパワーなedisonを使っている分、頑丈さに欠ける気がします。電源投入からの起動時間が短かかったり、急な電源断があるシステムでは不安があります。
ただ、やはり無線LANを使えるWebmoは圧倒的で、ちょっと繋いで作ってみるにはとても便利です。
mbedJSはLANコネクタを使わないといけないのが面倒で、そこで挫折することがよくあります。
ソフトウェアについて
WebmoはLinux+webserverなので、比較的web技術に近い知識で改造ができます(保証はなくなりますが)
対してmbedJSはmbedなので、mbedを勉強して、JavascriptかC++でガリガリ書かないといけません。
ゼロコンフィギュレーションについては、mbedJSのほうが少しだけ便利です。mbedJSは、Bonjurのhttpクラス、UPnPにも対応しているので、WindowsやSafariのFinderからも見つけることができます。
ネットワークに接続しているmbedJSを探す方法 - nyatla@hatena blog
WebAPIについて
WebmoのAPIはモータとエンコーダに特化している分、APIの作りが良さそうに見えます。mbedJSはMCU本体に対してAPIを作ったため、ウェブ技術の他にmbedの知識が必要になる問題がありました。
ただ、応答性能と確実性については、有線を使うmbedJSの方が優れている点もあるかなと。
mbedJSは有線なので、APIコール1回の遅延は1~10msです。対してWebmoは最低でも10ms以上はかかると思います。また、無線なので電波状況によっては操作が遅れることがあります。
…でもこれ、WebmoにLANコネクタつければ解決するきがしますね。
内蔵webサーバへのコンテンツ配置については、Webmoでもたぶんできると思います。これができると、Webmoをブラウザのセキュリティ機能を使って、外部サービスと安全に連携できます。
もし無ければ是非つけて欲しい機能です。
なお、mbedJSではアプリケーションボードのテストプログラムが外部コンテンツ連携で実装されていたりします。
mbedJSで使えるmbedアプリケーションボードのテストページを公開しました。 - nyatla@hatena blog
まとめ
Webmo、購入の予定はありませんが大変面白い製品だと思います。
mbedJSでやりたかった無線化、物理的な動作が凝縮されていているところがとても素敵です。
予算がある方は、是非買ってみてください。WebOfThingsはとても楽しいです!
予算がない方は引き続きmbedJSを宜しくお願いいたします。
nyatla.hatenadiary.jp

- 作者: 渡邊恵太
- 出版社/メーカー: ビー・エヌ・エヌ新社
- 発売日: 2015/01/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る

- 出版社/メーカー: スイッチサイエンス
- メディア: おもちゃ&ホビー
- クリック: 1回
- この商品を含むブログを見る