54
「組み込みーモバイルークラウド をオープンな形でつなぐ」 オープンハードセミナー2013 4Q 2013/10/12(土) 吉田 研一

組み込みーモバイルークラウドをオープンな形でつなぐ

Embed Size (px)

DESCRIPTION

オープンハードセミナー 2013 4Q

Citation preview

Page 1: 組み込みーモバイルークラウドをオープンな形でつなぐ

「組み込みーモバイルークラウドをオープンな形でつなぐ」

オープンハードセミナー2013 4Q

2013/10/12(土)

吉田 研一

Page 2: 組み込みーモバイルークラウドをオープンな形でつなぐ

Excuse;-<

• 最初というのもあるので…一般的な概要の説明とかを中心にします。

• 実は、組み込みーモバイルークラウド接続についてはベータ段階が多く、現状、じゅうぶんにオープンであるとはいえないかな – SONY , appiot

– MindFree , Real Socket Framework

–デ変研, Derimo

• なので最後にさらっと説明m(_ _)m

Page 3: 組み込みーモバイルークラウドをオープンな形でつなぐ

CONTENTS

• 自己紹介とオープンハードセミナーまわりの紹介

• 「オープン」な何か

• 本題「組み込みーモバイルークラウドをオープンな形でつなぐ」

– 2つの論理的な接続形態

–それに付随する物理的な接続形態

–取り組みを見る

Page 4: 組み込みーモバイルークラウドをオープンな形でつなぐ

自己紹介

• 吉田研一 姫路在住・大阪勤務

• 名刺できました

• 大阪イノベーションハブでは配ってます。

• オンラインでは配れ

ないので表示⇒

Page 5: 組み込みーモバイルークラウドをオープンな形でつなぐ

オープンハードセミナーとは

• 今回は2回目(2013年7月から開始)

• 大阪イノベーションハブでは初めて

• 日本橋でんもく会の「イチからはじめる」のオンラインセミナーシリーズから発展

• もくもく会は「黙々」したいので、「しゃべる」オンラインセミナーを分離しオープンハードセミナーとした。

• 3ケ月に1回開催 (1,4,7,10月)

• 次回は2014年1月初旬の予定

Page 6: 組み込みーモバイルークラウドをオープンな形でつなぐ

オープンハードセミナー第1回の様子

• プロジェクタを対面式に配置

http://atnd.org/events/40461 7月13日 ECCコン専

発表者の石井さんと発表スライド

東京・福岡会場の様子とオーディエンス

Page 7: 組み込みーモバイルークラウドをオープンな形でつなぐ

Android日本橋でんでんタウンもくもく会

• 9/20(日)に第12回を実施

• 3ケ月に1回開催 (3 ,6,9,12月)

• 次回は12月中旬です

日本橋ROBOBAでもくもくしています。

Page 8: 組み込みーモバイルークラウドをオープンな形でつなぐ

日本橋でんもく会の 「イチからはじめる」シリーズ

• Androidとマイコン等の接続性について初心者レベルから解説していくシリーズ

• 接続技法ADK, MicroBridge, USB Host APIなど

• 対象:マイコン(Arduino, PICなど)、FPGA(Xilinx, ALTERA)

• Androidアプリは開発できるがマイコンはちょっととか、マイコンはできるけどFPGAはわかんないとか、その逆とか

• 知らなかったことを知り、技術力の向上へ

Page 9: 組み込みーモバイルークラウドをオープンな形でつなぐ

東京・大阪・福岡って なんでこのメンバー?

• 日本Androidの会の全国イベントABC(Android Bazaar and Conference)で各支部から集まった「ロボットサミット」から(2011年夏~)

福岡支部

神戸支部

秋葉原支部

Page 10: 組み込みーモバイルークラウドをオープンな形でつなぐ

ちなみに来週はABC 2013 Autumn

• 「ロボットサミット」で出展します。

• 10月20日(日)東京電機大学

http://www.android-group.jp/conference/abc2013a/

Page 11: 組み込みーモバイルークラウドをオープンな形でつなぐ

オープンソースセミナーのねらい

• Androidはじまり、Androidつながりだが

• Androidにこだわらない

• Androidはもともと様々なデベロッパー文化の

集まりだった(ソフト、ハード、組み込み、基幹システム、Web)

• さまざまなオープンソースハードウェアにかかわる事柄を議論していきたい

• 興味のある方・団体は参加お願いします!

Page 12: 組み込みーモバイルークラウドをオープンな形でつなぐ

CONTENTS

• 自己紹介とオープンハードセミナーまわりの紹介

• 「オープン」な何か

• 本題「組み込みーモバイルークラウドをオープンな形でつなぐ」

– 2つの論理的な接続形態

–それに付随する物理的な接続形態

–取り組みを見る

Page 13: 組み込みーモバイルークラウドをオープンな形でつなぐ

さまざまな”Open”ムーブメント

• オープンソースソフトウェア(OSS)

• オープンソースハードウェア(OSHW)

• オープンデータ

• オープンデザイン

• オープンガヴァメント

Page 14: 組み込みーモバイルークラウドをオープンな形でつなぐ

オープンソースソフトウェア(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

Page 15: 組み込みーモバイルークラウドをオープンな形でつなぐ

オープンソースハードウェア(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

Page 16: 組み込みーモバイルークラウドをオープンな形でつなぐ

オープンデータ

• 特定のデータを自由に利用してもOK、再掲載してもOKという考え

• インターネット上で大量のデータを扱うことができるときに効果がある

• オープンガヴァメントとの関連性が高い

–公共機関や企業が公開するビッグデータ

• 具体例を知りたくて、OpenStreetMapのマッピングパーティを地元で開いてみた。

Page 17: 組み込みーモバイルークラウドをオープンな形でつなぐ

OSMマッピングパーティin姫路城

姫路経済新聞 http://himeji.keizai.biz/headline/1045/

Page 18: 組み込みーモバイルークラウドをオープンな形でつなぐ

これは面白い

• マッピングした地理データをOSM上に入力し共有できる

• Googleマップと違い無料で自由に使える

• ハード系モノづくり系なことをやってるひとも割といるようだ

– mbedでGPSセンサをつないで自作GPSロガーを使っている人

– クワッドコプターで空中写真を撮っている人

Page 19: 組み込みーモバイルークラウドをオープンな形でつなぐ

ODbL(オープンデータベースライセンス)

• 2012年9月にオープンストリートマップ(OSM)

はクリエイティブ・コモンズライセンスからODbLにライセンスを移行している http://wiki.openstreetmap.org/wiki/JA:Open_Database_License

Page 20: 組み込みーモバイルークラウドをオープンな形でつなぐ

オープンデザイン

• WebでもFabでもオープンデザインの考え方が言われているようだ

• 個人的にはAndy(教材ロボット)のアクリル板その他の設計デザインや教育コンテンツをオープン化してFabLabなどの場で使うとか希望^^

Make: Japan 『オープンデザイン――参加と共創から生まれる「つくりかたの未来」』

Page 21: 組み込みーモバイルークラウドをオープンな形でつなぐ

オープンガヴァメント

• 情報公開型からオープンデータ型へ

– 《70~80年代》機密文書の情報公開を求める動き

– 《現在》オープンデータを活用するエコシステム

• 政府や自治体がもつオープンデータ

• シビックテック

– 「公共サービスをコーディング」する開発者

• 普及しているWeb・スマホ・タブレットを用いて公共サービスを市民が利用

Page 22: 組み込みーモバイルークラウドをオープンな形でつなぐ

Code for X

• Code for Japanの

各地域版 – Code for Sabae

– Code for Kanazawa

• Code for Americaの取り組みを参考に

• 昨日10/12(金)のミーティングにちょっとだけ参加してきました。

Page 23: 組み込みーモバイルークラウドをオープンな形でつなぐ

オープンっていろいろ

• いろんなオープンなできごとをよくみつめていきたいと思います

• OSHWとの関わりも

• WIRED 9月号が参考 になります

http://wired.jp/magazine/?id=9

Page 24: 組み込みーモバイルークラウドをオープンな形でつなぐ

CONTENTS

• 自己紹介とオープンハードセミナーまわりの紹介

• 「オープン」な何か

• 本題「組み込みーモバイルークラウドをオープンな形でつなぐ」

– 2つの論理的な接続形態

–それに付随する物理的な接続形態

–取り組みを見る

Page 25: 組み込みーモバイルークラウドをオープンな形でつなぐ

2つの論理的な接続形態

• クラウド⇔もの(ガジェット・デバイス)

• クラウド⇔スマホ⇔もの(ガジェット・デバイス)

Page 26: 組み込みーモバイルークラウドをオープンな形でつなぐ

IoT(Internet of Things)

• Things=モノ(やコト)のインターネット

• モノのインターネットの「本質的な」部分は

さまざまなガジェットなどがインターネットに直に接続されること

Page 27: 組み込みーモバイルークラウドをオープンな形でつなぐ

現時点で

• 中間にスマホが介在する形態が無くならない

–スマホ=とりあえずiPhoneやAndroidのこと

Page 28: 組み込みーモバイルークラウドをオープンな形でつなぐ

ADKなど触ってきた感覚では

• ADK:ArduinoとAndroidのUSBによる接続 – Androidにクラウド接続を肩代わりさせる

– Androidが中間に介在する余分な感覚

–本質的にAndroidは不要かなと感じていた

• だが逆に、スマホは非常に普及している –肌身離さず持つスマホのUX/UI性の高さ・利便性、通信能力の高さ

• スマホがあれば、ガジェットの軽量化・低コスト化が可能となる

Page 29: 組み込みーモバイルークラウドをオープンな形でつなぐ

物理的な接続形態

• クラウド⇔もの

– Ethernetによる有線接続

– Wi-Fiによる接続

• クラウド⇔スマホ⇔もの

– USBケーブルによる有線接続

– Audio(モデム・DTMF)による有線接続

– Bluetoothによる接続

– BLEによる接続

Page 32: 組み込みーモバイルークラウドをオープンな形でつなぐ

モノとサービス連携のチャンス

• 小型化・省電力化

– SDカードサイズのWi-Fiモジュール

– コイン大のBLEモジュール

• 接続形態の違いをサービスに結び付けて新しいモノをつくるといいかな!

• 11/2(土)13:00~17:00にBLEの勉強会をECCコン専で行います。告知準備中。

Page 33: 組み込みーモバイルークラウドをオープンな形でつなぐ

組み込みーモバイルークラウドの 仕組み・取り組み

• Xively(ザイブリィ)

• 京都 デ変研 「Derimo」

• 大阪 MindFree 「RSF(Real Socket Framework)」

• Sony appiot

Page 34: 組み込みーモバイルークラウドをオープンな形でつなぐ

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

Page 35: 組み込みーモバイルークラウドをオープンな形でつなぐ

様々なデバイス・言語に対応

• ここではArduino+Ethernetシールドの説明を。

https://xively.com/dev/hardware/

Page 36: 組み込みーモバイルークラウドをオープンな形でつなぐ

Pachubeサンプルが参考になります

• ファイルースケッチの例ーEthernetにある

– PachubeClient

– PachubeClientString

Page 37: 組み込みーモバイルークラウドをオープンな形でつなぐ

APIキーを取得してREST APIを利用

送信(ヘッダ部分) 送信結果(200 OK)

Page 38: 組み込みーモバイルークラウドをオープンな形でつなぐ

送信部分(つづき)

¥n¥nまたは¥r¥rで空の行が来たらその次の行はボディ部(受信したいデータ)

¥n

¥n

送信…ボディ部分は例えば 「Temprature,31.5」と送られると…

この部分が「Channel」になる。 Cosm以前は「DataStream」と呼

ばれていた

Page 39: 組み込みーモバイルークラウドをオープンな形でつなぐ

Xivelyサーバ側にエントリされる https://xively.com/feeds/66335/ を確認してみて

(動いてない時もあるw)

以上スケッチ CosmClientTemp.ino https://gist.github.com/yoshidaken1/5941636

この部分が「Channel」になる。

Page 40: 組み込みーモバイルークラウドをオープンな形でつなぐ

ベタでPOSTメソッドを書くのも…

• イマイチいけてない。

• CSVデータを送信する程度ならいいが、受信するほうはベタ書きで面倒

• CSV, JSON, XMLなどはパーサが(多分)ないので力技は通用しない(Arduinoのメモリ容量もあるし…)

• で、Xivelyライブラリを使う!

Page 41: 組み込みーモバイルークラウドをオープンな形でつなぐ

https://xively.com/dev/libraries/

Page 42: 組み込みーモバイルークラウドをオープンな形でつなぐ

Arduinoライブラリに追加(2つ)

• https://github.com/xively/xively_arduino – ZIPファイルをダウンロードして解凍すると「xively_arduino-master」フォルダとなるのでエラーが出る。

– 「xively_arduino」フォルダとしてライブラリに追加する。

• https://github.com/amcewen/HttpClient – <Xively.h>ライブラリの前にこの<HttpClient.h>ライブラリも追加しておかないとコンパイルエラーになる!!

Page 43: 組み込みーモバイルークラウドをオープンな形でつなぐ

スケッチの例を参考にすればOK

ファイル-スケッチの例-xively_arduino にある3つ

Page 44: 組み込みーモバイルークラウドをオープンな形でつなぐ

DeviceとFeedとChannel(Xivelyの概念)

https://xively.com/feeds/1449775682

Feed 観測ポイント?

Device 装置名?

Channel 測定データ群

Feed

Page 45: 組み込みーモバイルークラウドをオープンな形でつなぐ

Xivelyスケッチの例 MultipleDataStreamsUpload.ino

Feed ID

Channel 名称

API Key

Channelをひとまとめに (Cosm時代のDataStreamが使われている)

Page 46: 組み込みーモバイルークラウドをオープンな形でつなぐ

メインループ処理 Channel データ群

Page 47: 組み込みーモバイルークラウドをオープンな形でつなぐ

デベロッパーコンソール画面

Channel データ群

Device

HttpReq.メッセージも ロギングされる

Feed関連情報

Page 48: 組み込みーモバイルークラウドをオープンな形でつなぐ

デベロッパーコンソールで 更に良いのは…

• Channelをクリックして直接データを書き込めること!!

「Sensor1」のChannelをクリックして現在値を入力!

Arduinoにテストデータ

値を直接読み込ませる際に活用できる

Page 49: 組み込みーモバイルークラウドをオープンな形でつなぐ

Xivelyスケッチの例 Arduinoからデータ取得

• JSONなどのキー・バリューも簡単なメソッドで値を取得できる

DataStreamsUpload.ino channel配列から取るやり方

DataStreamsDownload.ino Feed配列から取るやり方

Page 50: 組み込みーモバイルークラウドをオープンな形でつなぐ

組み込みーモバイルークラウドの 仕組み・取り組み(1 of 3)

• 京都 デ変研 「Derimo」

– クローズドサーバ⇔Android⇔Arduino

– USB Host API(Physicaloidライブラリ?)

– LongPollingによるプッシュ

– 10/20(日)のABC 2013 Autumでは講演有り

– ソースはCD-ROMにて購入者に提供

–サーバーは1ケ月無料のユーザIDでアクセス

• その後は有料

Page 51: 組み込みーモバイルークラウドをオープンな形でつなぐ

組み込みーモバイルークラウドの 仕組み・取り組み(2 of 3)

• 大阪 MindFree 「RSF(Real Socket Framework)」

– AWS⇔Android⇔Arduino ADK

– ADK (UHS2.0ベース),Bluetooth接続

– Websocketによるプッシュ APIキーによる制御

– クローズドβテスト中です

– 10/20(日)のABC 2013 Autumnで展示します

Page 52: 組み込みーモバイルークラウドをオープンな形でつなぐ

組み込みーモバイルークラウドの 仕組み・取り組み(3 of 3)

• Sony appiot

–当初は クラウド⇔Android

–将来的に「クラウド⇔Android⇔Arduino」を示唆

–ベータテスター募集中だそうです

– 「メーカー」の本気が出て欲しい

http://appiot.jp/

Page 53: 組み込みーモバイルークラウドをオープンな形でつなぐ

まだまだこれから

• クラウドーガジェット連携はまだまだ黎明期

• オープンなムーブメントと結び付けて、面白く便利なサービスを考えていきたい

• 同時に、様々なジャンルのテクノロジーを横断的に理解・活用できる必要がある

• ハードウェア関連のジャンルは、IT業界でも人によって得意・不得意が分かれる

• 自分はこれを教育する仕組みを考えたい

Page 54: 組み込みーモバイルークラウドをオープンな形でつなぐ

ご清聴ありがとうございました

オープンハードセミナー2013 4Q

2013/10/12(土)