関東Firefox OS勉強会 9th - スマホ以外のデバイスでもFirefox OSが動く
2015年3月17日、Firefox OSコミュニティが主催するFirefox OS勉強会が開催された。今回の勉強会では、スマホ以外のデバイスでのFirefox OS活用例などが紹介された。その模様を紹介したい。
○組み込み向けのFirefox OSとWebAPI
1つめのセッションは、本間雅史氏による、GPIOやI2Cなどの組み込み向けインターフェイスを操作するWebAPIとそのFirefox OSへの実装や標準化である。
まずは、WoT(Web of Things)について再確認を行った。すでにIoT(Internet of Things)という言葉は普及しつつある。インターネットにIT関連機器(PCやプリンタなど)以外のモノを接続し、モノにあるセンサーからその状態をインターネットを経由して情報を収集する、さらにモノをコントロールすることで、より快適な生活を実現することだ。
では、WoTと何が違うのか? 本間氏は、IoTはアプリからモノへ直接繋がる。
そのためにC言語などが使われる。それに対しWoTでは、アプリからブラウザを介して繋がる、つまりすべてJavaScriptで記述されるようになると説明する。IoTで繋がるモノに関する議論で、複雑な動作が可能なSmartエンドポイントと単純な動作しかできないDumbエンドポイントのどちらがよいかがある。本間氏は、両極端で考えることがいけない、その中間に位置するフォグコンピューティングという考えを紹介した。
情報をフォグがいったん収拾し、ある程度の処理を行う。クラウドでは、フォグから送られた統計情報からより高度な判断を行うようになる。すでにCiscoなどから対応製品があるが、非常に高価である。そこで、フォグコンピューティングにFirefox OSを使うことを考えてみたとのことである。
その理由であるが、他のエンジンと比較して、ハードウェアにアクセスするWeb APIがもっとも充実している点にあるという。
そして、必要となる点であるが、JavaScriptでハードウェアを制御しなければいけないことだ。ネットワーク経由については、すでに実装されている。しかし、ローカルでの制御はまだ可能ではない。そこで、新たなWeb API(JavaScript API)を実装しようという取り組みである。具体的には、Geckoにコードを追加することで行う。
IoTで使われるインターフェイスには、GPIOやI2Cが使われるので、それに対応するAPIを作ることになる。具体的には、Web GPIO APIでは、アクセスオブジェクトを取得するnavigate.requestGPIOAccess()などが作られた。
Web I2C APIは検討中であるが、同様な実装が検討されている。将来であるが、V8やTridentでもWoTが利用可能になる必要がある、つまり標準化は求められる。そこで、Web GPIOに関しては、W3Cのコミュニティグループとして、仕様の検討を進めているところである。
また、議論が進められている1つに、Promiseにするか戻り値にするかなどがある。非同期処理、ネストの深さなどが、相反する結果となっている。
Promiseの方が、同じ処理でも長くなっているのがわかる。現時点では、Promiseを採用する方向でまとまりつつあるとのことだ。
●Firefox OS搭載組み込みボード「MozOpenHard」
○Firefox OS搭載組み込みボード「MozOpenHard」
2つめのセッションは、KDDI研究所の関口直紀氏がFirefox OS搭載組み込みボードの「MozOpenHard」について紹介した。
まず、現状のWoTについて、PCやスマホには標準化されたブラウザが搭載されるようになってきた。一方、モノの側では特定のOSが搭載されていて、インターフェイスもバラバラな状況である。そこにWebのインターフェイスを搭載していくのが、WoTの姿と語る。
モノの操作をすべて、JavaScriptやHTML5で行う。そのためには、モノにもブラウザが搭載されることになるだろう。このようになれば、インターフェイスやプログラムも共通化され、よりうれしい世界になるのではないかと期待しているとのことである。現在でも、さまざまなモノにディスプレイが搭載されている。そこにブラウザが搭載されるのも、それほど外れてはいないだろうとも語っていた。
まずは、MWC 2015で、Firefox OS組み込みボードを使ったデモが紹介された。
回り灯篭とにょろにょろ動く灯篭の2つである。前者は、360度全方向にWebコンテンツを投影する。後者は、ブラウザからのコンテンツによって変形する。実際にこれらのデモで使われたボードはCHIRIMENである。そのスペックは、以下の通りである。
・Firefox 2.0搭載
・Rockchip RK3066 (1.6Ghz)
・1GB DDR3 DRAM
・1GB Nand Flash
大きさは、図9を見ていただきたい。
左上の写真は、Raspberry Piとの比較である。
1回り小さいといったところだ。インターフェイスは、図10になる。
I/Oには28pinも用意されており、I2CやGPIOなどのローレベルなインターフェイスも用意されている。CHIRIMEN(縮緬)の名前の由来であるが、Webとハードの異なる世界を織り込み、新しいモノを作っていくというイメージを込めたとのことだ。
その後、Firefox OSのインストール手順などが紹介された。しかし、ここで1つ問題がある。CHIRIMENは、2015年3月現在、5枚しか存在しないのである。関口氏によれば、Marsboard RK3066を使えば可能とのことだ。
少し込み入った手順となる。以下のサイトを参考にしてほしい。
・MozOpenHard(main page)
http://mozopenhard.mozillafactory.org/
・Facebookコミュニティ
https://www.facebook.com/groups/305208196333685/?pnref=lhc
・CHIRIMEN Technical Information
https://github.com/MozOpenHard/CHIRIMEN
・CHIRIMEN Mailing List(Announce only)
https://groups.google.com/forum/?hl=ja#!forum/chirimen
特に、Githubのツールやドキュメントが参考になるだろう。WebアプリからのGPIO制御であるが、最初のセッションのWeb APIを使う方法もあるが、現時点では標準化されていない。そこで、関口氏はnode.jsをインストールし、そこを経由して制御を行った。
node.jsは、コミュニティにバイナリがアップされている。実際に灯篭デモの構成は、図12のようになる。
gaia、gecko、gongは、Firefox OSの主な層であり、本来はgeckoから制御を行うことが望ましい。今回は、nodeからArduinoへシリアル通信を行い、そこからGPIOを制御している。別の端末からnodeにアクセスし、Web経由で制御可能になる。このあたりもWoTの柔軟な点だろうと指摘する。最後にNWC 2015での、デモなどの紹介が行われた。
そして、量産化に向けてであるが、Kickstarterに出品する予定とのことである。さらに、CHIRIMENおさわりイベントなども計画中とのことである。これらはFacebookコミュニティでアナウンスされるとのことだ。
●Firefox OS搭載ケーブルSTB
○Firefox OS搭載ケーブルSTB
最後のセッションは、Firefox OSを搭載したCATV用Digital Settop Box(STB)の概要と今後の展開について紹介した。まず登壇したのは、パナソニック株式会社AVC社STBネットワークビジネスユニット山口剛氏で、STBで何をやりたいのかが説明された。
いきなりであるが、STBのアプリケーションコンテスト「アプリジャム」の開催が報告された。その背景を順に説明していこう。ケーブルテレビであるが、本来は山岳地域やビル街などの難視聴対策のために使われた。そこで使われるのが、専用チューナのSTBである。それが、現在では多チャンネル化し、インターネットサービス、携帯電話のサービスも行われてきた。
そして、4Kの大画面を活かした利用、難視聴対策が目的であったので地域密着性を利用した見守り・安心サービス、買い物難民解消のショッピングといったサービスが提供されるようになった。しかし、それでも差別化が難しく、さらなるサービス展開が求められるようになった。そこで、STBにFirefox OSを搭載し、アプリを動かし新たなサービス提供することをが目標とのことだ。
まだまだインターネット接続が可能なモノは少ない。そこで、STBがゲートウェイとなってその役割を担っていきたいとのことだ。すでに、デジタルハリウッド大学でアイディアコンテストなども開催した。アプリジャムでは、実際にアプリ作成までを取り組みたいとのことである。後半は、石川哲也氏が登壇し、技術的な面を紹介した。Web APIとしては、図17などがある。
そのサンプルも紹介された。
TV APIについても、紹介された。
現時点では案であり、変更の可能性もあるとのことだ。WebIDEで接続可能なシミュレータも開発中で、近日のうちに公開の予定である。開発の流れであるが、以下のようになる。
1. シミュレータ+WebIDEで開発・デバッグ
2. STB+WebIDEでデバッグ
3. STBにインストール、動作確認(SDカード経由を予定)
シミュレータのデモも行われた。
アプリジャムの開催までのスケジュール(案)は、図21の通りである。
実機での調整も必要になるが、その機会をどう設定するか調整中とのことだ。
○終了後は懇親会が開催
セッション終了後は、ピザとビールなどで懇親会が開催された。登壇者と直接、話すこともできる。30分のセッションだけでは、得られない情報も少なくない。まさに開発進行中のプロジェクトで、最新の技術や情報にふれることができる。次回は4月14日に開催予定で、Fx0の開発秘話(仮)などが予定されている。
参加者をみると、プログラマもいれば技術者もいるという感じで、自由に参加できる。これからJavaScriptやHTML5を学ぶのでもいいと思う。そして、Firefox OSはスマホだけではない。興味をひくテーマがあるならばぜひ、(興味がなくても自己研鑽のために)参加してみてほしい。得られるものはあるはずだ。