組み込みーモバイルークラウドをオープンな形でつなぐkof2013
TRANSCRIPT
「組み込みーモバイルークラウドをオープンな形でつなぐ」
Kansai Open Forum 2013
2013/11/09(土)
吉田 研一
http://bit.ly/kof2013jagkobe
Excuse;-<
• 実は、組み込みーモバイルークラウド接続についてはベータ段階が多く、現状、じゅうぶんにオープンであるとはいえないかな… –株式会社データ変換研究所, Derimo
–マインドフリー株式会社 , Real Socket Framework
– ソニーコンピュータサイエンス研究所(Sony CSL), appiot
• Xively(ザイブリー)は本格的なモバイル・組み込みークラウド接続サービス
CONTENTS
1. 自己紹介と日本Androidの会神戸支部ハードウェア倶楽部の紹介
2. 組み込み-モバイル-クラウドをつないでみたら
3. 「オープン」な何か
4. 本題「組み込みーモバイルークラウドをオープンな形でつなぐ」 – 2つの論理的な接続形態
– それに付随する物理的な接続形態
– 取り組みを見る
http://bit.ly/kof2013jagkobe
自己紹介
• 吉田研一 (よしだけんいち) 46歳
• 奈良出身・姫路在住・大阪勤務
• ECCコンピュータ専門学校専任教員
• 日本Androidの会神戸支部メンバー
• GDG神戸メンバー
• 姫路IT系勉強会メンバー
• Android日本橋でんもく会主宰
• オープンハードセミナー主宰
神戸支部メンバーで共著
• AndroidとArduinoを接続する技術「ADK」を書いています。学校で授業に使ってます。
http://www.amazon.co.jp/exec/obidos/ASIN/4883378098/soccoltd-22/ref=nosim
日本Androidの会神戸支部 ハードウェア倶楽部メンバー
• @yishiiさん
• 2013年8月OSC京都にてRaspberry-Pi UGで発表
• なんでもロボカーにするのが得意^^
http://www.slideshare.net/YasuhiroIshii/20130804-osc-raspberrypi
日本Androidの会神戸支部 ハードウェア倶楽部メンバー
• @ksksueさん
• UART(シリアル通
信)で様々な組み込み機器とAndroid
が接続する“Physicaloid”の開発を行っている。
http://www.physicaloid.com/
等々
Android日本橋でんでんタウンもくもく会
• 神戸支部ハードウェア倶楽部メンバーで開催
• 3ケ月に1回開催 (3,6,9,12月)
• 次回は12月中旬です(まだ日程未定orz)
日本橋ROBOBAでもくもくしています。
2011年8月の第1回の様子
秋葉原支部の江口さん
日本橋でんもく会の 「イチからはじめる」シリーズ
• Androidとマイコン等の接続性について初心者レベルから解説していくシリーズ
• 接続技法ADK, MicroBridge, USB Host APIなど
• 対象:マイコン(Arduino, PICなど)、FPGA(Xilinx, ALTERA)
• Androidアプリは開発できるがマイコンはちょっととか、マイコンはできるけどFPGAはわかんないとか、その逆とか
• 知らなかったことを知り、技術力の向上へ
オープンハードセミナーとは
• 日本橋でんもく会の「イチからはじめる」のオンラインセミナーシリーズから発展
• もくもく会は「黙々」したいので、「しゃべる」オンラインセミナーを分離しオープンハードセミナーとした。
• 3ケ月に1回開催 (1,4,7,10月)
• 次回は2014年1月11日(土)大阪イノベーションハブで開催
東京・大阪・福岡でハングアウト中継
• 日本Androidの会のイベントABC(Android Bazaar and Conference)で各支部から集まった「ロボットサミット」のつながり(2011年夏~)
福岡支部
神戸支部
秋葉原支部 ロボ部
オープンハードセミナー第1回の様子
• プロジェクタを対面式に配置
http://atnd.org/events/40461 7/13(土) ECCコン専
発表者の@yishiiさんと発表スライド
東京・福岡会場の様子とオーディエンス
オープンハードセミナー第2回の様子
• プロジェクタを2面に配置
http://atnd.org/events/43428 10/12(土) 大阪イノベーションハブ
発表者の@ksksue さんが発表
左が博多図工室(福岡) 右がMONO(東京)
オープンハードセミナー第2回にて(1)vinclu(ウィンクル)とは
• クラウドファウンディングで資金を集めたアプセサリ(appcessory:アプリ+アクセサリ)
• 11/7(木)0時にSUCCESSでフィニッシュした!
http://camp-fire.jp/backers/index/804/
オープンハードセミナー第2回にて(2) 大阪イノベーションハブより
• 大阪イノベーションハブの中の人が、大阪市+シャープ(株)共催のハッカソンをYoutubeライブで宣伝したり
http://www.innovation-osaka.jp/ja/
オープンハードセミナー第2回にて(2) ハッカソン”CoCreation Jam”
• 11/16(土)アイデアソン 11/17(日)ハッカソン
• 応募は11/14(木)まで
http://www.innovation-osaka.jp/ja/events/2491
オープンハードセミナー第2回は
• 録画アーカイブがあります
http://www.youtube.com/user/openHardSeminar/videos
ちょっと観る http://youtu.be/L4xQzCFN7yk
オープンハードセミナーのねらい
• Androidはじまり、Androidつながりだが
• Androidにこだわらない
• Androidはもともと様々なデベロッパー文化の
集まりだった(ソフト、ハード、組み込み、基幹システム、Web)
• さまざまなオープンソースハードウェアにかかわる事柄を議論していきたい
• 興味のある方・団体は参加お願いします!
CONTENTS
1. 自己紹介と日本Androidの会神戸支部ハードウェア倶楽部の紹介
2. 組み込み-モバイル-クラウドをつないでみたら
3. 「オープン」な何か
4. 本題「組み込みーモバイルークラウドをオープンな形でつなぐ」 – 2つの論理的な接続形態
– それに付随する物理的な接続形態
– 取り組みを見る
http://bit.ly/kof2013jagkobe
つないでみたら ~ イメージPV
• Real Socket Frameworkのプロモーションビデオ
ちょっと観る http://vimeo.com/78353018
MindFree株式会社のMFT展示
• Make Faire Tokyo 2013の展示物
http://www.lifehacker.jp/2013/11/131103figurestage_mft2013.html http://ascii.jp/elem/000/000/839/839835/index-2.html
Real Socket Frameworkは まだまだクローズドβバージョン
• Android-Arduino接続のバリエーション – Bluetooth
– ADK UHS2.0ライブラリ…Android端末を選ぶ
– Yaoadkベースへのポート
• BLE接続ができないか – iOSとの連携も視野に入る
• UART接続ができないか – Physicaloidとの連携
– UARTだとほとんどすべての組み込みデバイスと接続可能
Real Socket Frameworkは まだまだ検討が必要
• Android-Arduinoデータ通信
– JSON … Arduinoとクラウドの直接接続が可能
• ただしライブラリが重厚(デカい)
–バイナリ … データプロトコルの検討が必要
• JAG神戸のメモリマップ・プロトコルなど使えないか
Real Socket Frameworkは いろいろ検討が必要
• クラウドーAndroidの接続
– AWS上にnode.jsサーバを立てて、WebSocketによるPUSH通信を行っている
– APIキーを用いてセッションを管理。16個の同時通信が可能としている。
– タイムラグ
–展示会場の無線混信状況の回避
• ノートパソコンにサーバを立てて運用
CONTENTS
1. 自己紹介と日本Androidの会神戸支部ハードウェア倶楽部の紹介
2. 組み込み-モバイル-クラウドをつないでみたら
3. 「オープン」な何か
4. 「組み込みーモバイルークラウドをオープンな形でつなぐ」 – 2つの論理的な接続形態
– それに付随する物理的な接続形態
– 取り組みを見る
http://bit.ly/kof2013jagkobe
オープンソースソフトウェア(OSS)
• 1998年 Webブラウザ・ Netscapeの公開プロセス上で生まれた言葉
• Netscapeは現在、Mozilla Firefoxとなり、オー
プンソース運動の代表的な成果物の一つに数えられる→Firefox OSにまで進化した
• ソフトウェア=コードはCD代程度で負担で流通する。インターネット社会ではそれも不要
http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9
オープンソースハードウェア(OSHW)
• OSSと同じ形態で設計されるコンピュータや電子機器を指す
• ハードウェアは製造コストがかかるため、オープンソースのソフトウェアの定義がそのまま適用できるわけではない。
• FPGAのHDL(ハードウェア記述言語)コードを配布・共有したりする場合など新しい扱いも
http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2
オープンデータ
• 特定のデータを自由に利用してもOK、再掲載してもOKという考え
• インターネット上で大量のデータを扱うことができるときに効果がある
• オープンガヴァメントとの関連性が高い
–公共機関や企業が公開するビッグデータ
• 具体例を知りたくて、OpenStreetMapのマッピングパーティを地元で開いてみた。
OSMマッピングパーティin姫路城
姫路経済新聞 http://himeji.keizai.biz/headline/1045/
これは面白い
• マッピングした地理データをOSM上に入力し共有できる
• Googleマップと違い無料で自由に使える
• ハード系モノづくり系なことをやってるひとも割といるようだ
– mbedでGPSセンサをつないで自作GPSロガーを使っている人
– クワッドコプターで空中写真を撮っている人
ODbL(オープンデータベースライセンス)
• 2012年9月にオープンストリートマップ(OSM)
はクリエイティブ・コモンズライセンスからODbLにライセンスを移行している http://wiki.openstreetmap.org/wiki/JA:Open_Database_License
ODbL(オープンデータベースライセンス)
• CC(クリエイティブ・コモンズライセンス)は創作性のある著作物の権利
• データ自体は創作ではなく事実情報で著作権でカバーされない
• 相応のコストをかけて収集されたデータの集合をデータベース権として取り扱い一定の権利を認める
20120729 ODbL勉強会より http://www.slideshare.net/higa4/20120729-odbl
オープンデザイン
• WebでもFabでもオープンデザインの考え方が言われているようだ
• 個人的にはAndy(教材ロボット)のアクリル板その他の設計デザインや教育コンテンツをオープン化してFabLabなどの場で使うとか希望^^
Make: Japan 『オープンデザイン――参加と共創から生まれる「つくりかたの未来」』
オープンガヴァメント
• 情報公開型からオープンデータ型へ
– 《70~80年代》機密文書の情報公開を求める動き
– 《現在》オープンデータを活用するエコシステム
• 政府や自治体がもつオープンデータ
• シビックテック
– 「公共サービスをコーディング」する開発者
• 普及しているWeb・スマホ・タブレットを用いて公共サービスを市民が利用
Code for X
• Code for Japanの
各地域版 – Code for Sabae
– Code for Kanazawa
• Code for Americaの取り組みを参考に
• 10/11(金)のミーティングにちょっとだけ参加してきました。
オープンっていろいろ
• いろんなオープンなできごとをよくみつめていきたいと思います
• OSHWとの関わりも
• WIRED 9月号が参考 になります
http://wired.jp/magazine/?id=9
CONTENTS
• 自己紹介とオープンハードセミナーまわりの紹介
• 「オープン」な何か
• 本題「組み込みーモバイルークラウドをオープンな形でつなぐ」
– 2つの論理的な接続形態
–それに付随する物理的な接続形態
–取り組みを見る
http://bit.ly/kof2013jagkobe
IoT(Internet of Things)
• Things=モノ(やコト)のインターネット
• モノのインターネットの「本質的な」部分は
さまざまなガジェットなどがインターネットに直に接続されること
ADKなど触ってきた感覚では
• ADK:ArduinoとAndroidのUSBによる接続 – Androidにクラウド接続を肩代わりさせる
– Androidが中間に介在する余分な感覚
–本質的にAndroidは不要かなと感じていた
• だが逆に、スマホは非常に普及している –肌身離さず持つスマホのUX/UI性の高さ・利便性、通信能力の高さ
• スマホがあれば、ガジェットの軽量化・低コスト化が可能となる
物理的な接続形態
• クラウド⇔もの
– Ethernetによる有線接続
– Wi-Fiによる接続
• クラウド⇔スマホ⇔もの
– USBケーブルによる有線接続
– Audio(モデム・DTMF)による有線接続
– Bluetoothによる接続
– BLEによる接続
Wi-Fiによる接続
• メインのマイコンのほかにWi-Fi 用Linuxをもつ
– OSなしマイコンのI/OにOSを入れる逆転現象www
• Arduino Yún
• PQI Air Card
• Electric Imp
BLEによる接続
• 省電力でI/Oをもつ
• Konashi
• SBBLE(サブレ―)
• BLE112モジュール
• BLE600モジュール
モノとサービス連携のチャンス
• 小型化・省電力化
– SDカードサイズのWi-Fiモジュール
– コイン大のBLEモジュール
• 接続形態の違いをサービスに結び付けて新しいモノをつくるといいかな!
• 11/2(土)にBLEの勉強会をECCコン専で行いました
Bluetooth Low Energy+すまべん
• スマートフォン勉強会@関西開催
http://sumaben.jp/?KansaiSpecial05BLE
①
②
Blurtooth Low Energyの基礎知識
• BLEに関してよくある誤解
• Bluetooth Low Energyでは大容量データは送れない。
• 音声データを送りたい、高速通信を行いたい場合は、クラシックBTを使う。
– 以下の違いを理解しておくことは基本:
– BT 3.0 + Low Energy -> デュアルモード・デバイス (Bluetooth Smart Ready)
– BT Low Energy -> シングルモード・デバイス (Bluetooth Smart)
ブリリアントサービスのたくまさんのブログ http://brilliantlab.blogspot.jp/2013/11/blog-post.html
組み込みーモバイルークラウドの 仕組み・取り組み
• Xively(ザイブリィ)
• 株式会社データ変換研究所
– Derimo
• マインドフリー株式会社
– Real Socket Framework
• ソニーコンピュータサイエンス研究所(Sony CSL)
– appiot
Xively(ザイブリー) https://xively.com/
• 2013年5月ごろまでCosm(コスム)という名称のサービス
• それ以前はPachube(パッチベイ)という名称だった。
–小林茂さんのガイガーカウンターのマップ
• http://www.yapan.org/main/2011/03/measure_radiation_dose.html
–菅工房の菅さんのウェザーステーション
• http://www.sugakoubou.com/doku/weatherstation
様々なデバイス・言語に対応
• ここではArduino+Ethernetシールドの説明を。
https://xively.com/dev/hardware/
送信部分(つづき)
¥n¥nまたは¥r¥rで空の行が来たらその次の行はボディ部(受信したいデータ)
¥n
¥n
送信…ボディ部分は例えば 「Temprature,31.5」と送られると…
この部分が「Channel」になる。 Cosm以前は「DataStream」と呼
ばれていた
Xivelyサーバ側にエントリされる https://xively.com/feeds/66335/ を確認してみて
(動いてない時もあるw)
以上スケッチ CosmClientTemp.ino https://gist.github.com/yoshidaken1/5941636
この部分が「Channel」になる。
ベタでPOSTメソッドを書くのも…
• イマイチいけてない。
• CSVデータを送信する程度ならいいが、受信するほうはベタ書きで面倒
• CSV, JSON, XMLなどはパーサが(多分)ないので力技は通用しない(Arduinoのメモリ容量もあるし…)
• で、Xivelyライブラリを使う!
Arduinoライブラリに追加(2つ)
• https://github.com/xively/xively_arduino – ZIPファイルをダウンロードして解凍すると「xively_arduino-master」フォルダとなるのでエラーが出る。
– 「xively_arduino」フォルダとしてライブラリに追加する。
• https://github.com/amcewen/HttpClient – <Xively.h>ライブラリの前にこの<HttpClient.h>ライブラリも追加しておかないとコンパイルエラーになる!!
DeviceとFeedとChannel(Xivelyの概念)
https://xively.com/feeds/1449775682
Feed 観測ポイント?
Device 装置名?
Channel 測定データ群
Feed
Xivelyスケッチの例 MultipleDataStreamsUpload.ino
Feed ID
Channel 名称
API Key
Channelをひとまとめに (Cosm時代のDataStreamが使われている)
デベロッパーコンソールで 更に良いのは…
• Channelをクリックして直接データを書き込めること!!
「Sensor1」のChannelをクリックして現在値を入力!
Arduinoにテストデータ
値を直接読み込ませる際に活用できる
Xivelyスケッチの例 Arduinoからデータ取得
• JSONなどのキー・バリューも簡単なメソッドで値を取得できる
DataStreamsUpload.ino channel配列から取るやり方
DataStreamsDownload.ino Feed配列から取るやり方
組み込みーモバイルークラウドの 仕組み・取り組み(1 of 3)
• 京都 デ変研 「Derimo」 – クローズドサーバ⇔Android⇔Arduino
– USB Host API
– LongPollingによるプッシュ
– ソースはCD-ROMにて購入者に提供
–サーバーは1ケ月無料のユーザIDでアクセス • その後は有料
– 10/20(日)のABC 2013 Autumでは講演
– 2013年11月19日(火) 大阪ROBOBA「ロボット連絡会11月例会」でDerimoのセミナを行います http://www.derimo.net/archives/2121
組み込みーモバイルークラウドの 仕組み・取り組み(1 of 3 つづき)
• M2M(Machine to Machine)の学習向けの「Derimoの教科書」とセットにした「DerimoのOSS」を11月に予定されています
http://www.derimo.net/wp-content/uploads/2013/11/Derimo_LocationKit.pdf
ただし注意書き
組み込みーモバイルークラウドの 仕組み・取り組み(2 of 3)
• 大阪 MindFree 「RSF(Real Socket Framework)」
– AWS⇔Android⇔Arduino ADK
– ADK (UHS2.0ベース),Bluetooth接続
– Websocketによるプッシュ APIキーによる制御
– クローズドβテスト中です
– 10/20(日)のABC 2013 Autumnで展示
– 11/3(日),11/4(月・祝)のMFT 2013で展示
– 現時点でAndroidアプリはapkファイル(=バイナリ)提供のみ…AndroidのUIは使えない。今後に期待。
組み込みーモバイルークラウドの 仕組み・取り組み(3 of 3)
• Sony appiot
–当初は クラウド⇔Android
–将来的に「クラウド⇔Android⇔Arduino」を示唆
–ベータテスターとして触ってみました!
– 「メーカー」の本気が出て欲しい
http://appiot.jp/
まだまだこれから
• クラウドーガジェット連携はまだまだ黎明期
• オープンなムーブメントと結び付けて、面白く便利なサービスを考えていきたい
• 同時に、様々なジャンルのテクノロジーを横断的に理解・活用できる必要がある
• ハードウェア関連のジャンルは、IT業界でも人によって得意・不得意が分かれる
• 自分はこれを教育する仕組みを考えたい
ご清聴ありがとうございました
Kansai Open Forum 2013
2013/11/09(土)
http://bit.ly/kof2013jagkobe