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

83
「組み込みーモバイルークラウド をオープンな形でつなぐ」 Kansai Open Forum 2013 2013/11/09(土) 吉田 研一 http://bit.ly/kof2013jagkobe

Upload: kenichi-yoshida

Post on 31-May-2015

1.309 views

Category:

Documents


2 download

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の会神戸支部とKOF

• 実は去年のKOFには展示していました(2012/11/10(土)のみ)。今年はナシ(残念)

日本Androidの会神戸支部とKOF

• 昨年は、MUGNET(Macユーザ会)の魚井先生が入手されたSurfaceをいじってましたw

MacとAndroidはそっちのけ!?

日本Androidの会神戸支部 ハードウェア倶楽部

Androidと組み込みハードの接続性などを検討する集まり

2013年3月 NT京都にて

日本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(ウィンクル)チーム

• 東京会場のMONOにて合宿中のvincle(ウィンクル)チームの自己紹介もあったり

オープンハードセミナー第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

MFT終了後話を聞いてきた

• 鏡面仕上げの木材の箱にLEDテープやサーボ

Arduino ADKが内蔵されている。 MFT前日に完成したそう…

もうひとつガジェット

• 協調して光るアイス?

Arduino Pro Miniが内蔵。 RGB LEDが状況に応じて変化

自分も出展してもらいました。

• おもちゃの車とAndyロボカーの連動

説明スライドです

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個の同時通信が可能としている。

– タイムラグ

–展示会場の無線混信状況の回避

• ノートパソコンにサーバを立てて運用

RSFにご興味のある方は

• コンタクトを取ってみてください。

CONTENTS

1. 自己紹介と日本Androidの会神戸支部ハードウェア倶楽部の紹介

2. 組み込み-モバイル-クラウドをつないでみたら

3. 「オープン」な何か

4. 「組み込みーモバイルークラウドをオープンな形でつなぐ」 – 2つの論理的な接続形態

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

– 取り組みを見る

http://bit.ly/kof2013jagkobe

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

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

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

• オープンデータ

• オープンデザイン

• オープンガヴァメント

オープンソースソフトウェア(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 『オープンデザイン――参加と共創から生まれる「つくりかたの未来」』

Andyのプロジェクト

• 神戸支部設立直後(2011年3月ごろから)言っているAndroid操作のロボット製作の活動

部品の購入リストを整備し、車体をアクリル板で作成

レーザーカッターでカットしてみた

• 大阪イノベーションハブでやってみる

• 3Dプリンタより早くてカンタンだが、ノウハウは必要。

オープンガヴァメント

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

– 《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

2つの論理的な接続形態

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

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

IoT(Internet of Things)

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

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

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

現時点で

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

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

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

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

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

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

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

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

物理的な接続形態

• クラウド⇔もの

– Ethernetによる有線接続

– Wi-Fiによる接続

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

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

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

– Bluetoothによる接続

– BLEによる接続

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

• 小型化・省電力化

– 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/

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

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

– PachubeClient

– PachubeClientString

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

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

送信部分(つづき)

¥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ライブラリを使う!

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

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

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

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

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

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

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

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 データ群

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

Channel データ群

Device

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

Feed関連情報

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

• 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