46
mbedとWindows 8.1 @第10回まどべんよっかいち 2014/10/18 青木 宣明(@kumar0001)

mbedとwindows 8.1

Embed Size (px)

DESCRIPTION

第10回まどべんよっかいちでの発表資料です。最後のWindows 8.1との連携、特にBluetooth LEでの連携は説明できなかったので、ブログにて説明する予定です。

Citation preview

Page 1: mbedとwindows 8.1

mbedとWindows 8.1

@第10回まどべんよっかいち2014/10/18青木 宣明(@kumar0001)

Page 2: mbedとwindows 8.1

今日の目標

mbedなどの組み込み機器のプロトタイプ開発環境を知ってもらう

mbedの機能とプログラムの開発方法を知ってもらう

組み込み機器とWindows 8.1アプリの連携方法を知ってもらう

Page 3: mbedとwindows 8.1

スマートデバイスとガジェット~私のやりたいこと

スマートデバイスでやりたいこと

ガジェットによる機能の補完

組み込み機器のプロトタイプ開発

Page 4: mbedとwindows 8.1

IoT: Internet of thing

http://monoist.atmarkit.co.jp/mn/articles/1410/17/news123.html

Page 5: mbedとwindows 8.1

http://monoist.atmarkit.co.jp/mn/articles/1410/17/news123.html

Page 6: mbedとwindows 8.1

de:code 2014“DE-003Internet Of Things を Windows プラットフォームで実践”より

IoTとクラウド

Page 7: mbedとwindows 8.1

スマートデバイスの位置付け

人・モノ・情報とのインターフェース

Human

Information

Thing

あらゆる情報にすぐにアクセスしたい・入力方法、表示方法

物理空間のあらゆる情報を蓄積したい

SNSが普及してるのでその利便性向上で間に合いそう

Page 8: mbedとwindows 8.1

モノの記録の蓄積

場所GPS

加速度計

金電子マネー

レシート

オンラインバンキング

環境温度・湿度

気圧

照度

あらゆるモノを自動的に記録したい

Windows (Phone)* 8.1ができないところは

ガジェットで補おう

Page 9: mbedとwindows 8.1

もっと身近な事情

ところで、電子マネー使ってますか?

利用履歴の記録領域が数件分しかない!

6件

3件

5件

1日の全ての記録を残すには、こまめに利用履歴を残すしかない

Page 10: mbedとwindows 8.1

どうやってこまめに記録?

Androidアプリを作ればいいんじゃない?

①スマートフォンアプリの立ち上がり時間の問題⇒専用デバイスならではの起動の早さを求めたい

②Windows (Phone) 8.1で間に合わせたい

Page 11: mbedとwindows 8.1

どうやってこまめに記録?

Windows 8.1ユニバーサルアプリで解決する方法を考えてみよう

WinRTのNFC機能はNDEFと呼ばれる形式だけの対応でFelica対応カードの

読み書きができない!

Felicaカードリーダを搭載したガジェットとWindows 8.1を併用すれば解決できそう

Page 12: mbedとwindows 8.1

iOSのとあるガジェット

Pasori RC-S390

• iPhone、iPad、iPod touch(iOSデバイス)と Bluetooth通信でワイヤレス接続が可能な非接触ICカードリーダー/ライターhttp://www.sony.co.jp/Products/felica/business/

products/RC-S390.html

Page 13: mbedとwindows 8.1

作りたいガジェット

①読み取り

②タッチ操作

③記録

④Win8.1連携

mbed

Page 14: mbedとwindows 8.1

で、進捗は?

Page 15: mbedとwindows 8.1

進捗状況

•データ形式を検討中

• SDカードの扱いはOK•Bluetoothでの連携はOK

•伝送形式を検討中

•部品を選定中

•GUI&タッチ操作は

難易度が高そう

•読み取りの基本はOK

•トラブルの原因調査中

読取 表示

記録連携

Page 16: mbedとwindows 8.1

MBEDとは

組み込み機器のプロトタイプ開発

mbedの特徴

mbedの機能

mbedのプログラム開発

Page 17: mbedとwindows 8.1

mbedとは?

ARM社が提供する組み込み機器のプロトタイプ開発環境

• ワンボードマイコン

• プログラミング環境

他のプラットフォームとの違い

• C++ ⇔ C# (.NET Micro Framework)

• マイコン ⇔ PC基板(RasPi)

• OS非依存の汎用の開発環境 ⇔ 独自のIDEによる開発環境 (Arduino, Intel Galileo)

Page 18: mbedとwindows 8.1

組み込み機器のプロトタイプ開発

通信モジュールのドライバは自前で実装?

センサー・LCDなどパーツとの接続は半田付け?どうやって制御するの?

開発環境は何を使えばいいの?マイコンにPGを書き込む方法は?

Page 19: mbedとwindows 8.1

mbedの特徴

簡素化された開発作業

オンライン開発環境

公開ライブラリの利用

Page 20: mbedとwindows 8.1

簡素化された開発作業

オンラインコンパイラ

• 開発環境をインストールする必要がない

USB接続とDnDでの書き込み

• USBで接続してファイルをExplorerでコピーするだけ

USBシリアルでのprintfデバッグ

• TeraTermなどのCOM通信ソフトで確認

Page 21: mbedとwindows 8.1

オンライン開発環境

Webブラウザ上の開発環境

コード作成

ライブラリインポート

バージョン管理

ビルド

Page 22: mbedとwindows 8.1

公開ライブラリの利用

プログラム、ライブラリをオンラインコンパイラ画面で取り込み可能

• Microsoft社のNuGetに相当

自分のオリジナルコードの公開も

• Wikiでの説明、履歴

• 既存ライブラリをForkして公開も可能

• GitHubに近い

Page 23: mbedとwindows 8.1

mbedの種類

http://developer.mbed.org/platforms/

Page 24: mbedとwindows 8.1

mbedの機能

Page 25: mbedとwindows 8.1

デモ① Lチカ

Lチカ=マイコンボードでのhello world

ブレッドボードでの配線

コード作成

ビルド

PGの書き込み

Page 26: mbedとwindows 8.1

デモ② もう少し複雑な例

LCD、ファイル書き込み

ライブラリの利用

デバッグ

• printfデバッグ

board orangeを利用• LPC1768を挿して利用

• LCD, USB端子, MicroSDカードスロット, DC IN, 10/100Base-Tコネクタを実装。LPC1768と結線済み

• http://developer.mbed.org/users/logic_star/notebook/star_board_orange/

Page 27: mbedとwindows 8.1

参考)オフライン開発環境

無償のオフライン開発環境

デバッグ

• アダプタが必要

• ブレークポイントとか

mbedオンラインコンパイラからのエクスポート

Page 28: mbedとwindows 8.1

WINDOWS 8.1との連携

スマートデバイスとガジェットの連携

Windows 8.1とガジェットの連携

Page 29: mbedとwindows 8.1

スマートデバイスとガジェットの連携

有線

無線

遠隔近接

Bluetooth

NFC

イーサネットケーブル

WiFi

USB

赤外線

UART

Page 30: mbedとwindows 8.1

Bluetooth

Bluetooth 2.x/3.x

• 従来のBluetooth

• 高速(~24Mbps)だが消費電力大(2次電池での駆動)

• WindowsではProximity APIでサポート

Bluetooth LE

• Bluetooth Smart=LEのみ、Bluetooth Smart Ready=LE+従来

• 低速(~1Mbps)だが消費電力が小さい(ボタン電池での駆動)

• WindowsではXXX

Page 31: mbedとwindows 8.1

Classic Bluetoothでの連携

Page 32: mbedとwindows 8.1

Classic Bluetooth連携①~mbed側

USB端子にUSBドングルを接続する場合

• USBスタックにmyBlueUSBを利用

RFCOMMとSDPに対応

コンパイルが通るようにしたmbed:myBlueUSB_localfix

• イベントドリブンなPGに処理を追加

TestShell関数のmainloopの部分

Page 33: mbedとwindows 8.1

Classic Bluetooth連携①~mbed側

Page 34: mbedとwindows 8.1

Classic Bluetooth連携①~ WinRT側

• https://github.com/nobukuma/BTRFCommDevTest

Page 35: mbedとwindows 8.1

デモ③:Classic Bluetooth連携

USBドングルの場合

Page 36: mbedとwindows 8.1

USBドングルの利用

USBドングルの場合

Page 37: mbedとwindows 8.1

Classic Bluetooth連携②~mbed側

RN-42XVPを利用する場合

• mbedとはシリアルでデータを送受信

SPPの処理はRN-42XVP側で行ってくれる

PCとシリアル接続する場合と同様に見える• RN-42XVP LPC1768

• Pin1 VOUT

• Pin2 p14(rx)

• Pin3 p13(tx)

• Pin10 GND

• mbed:RN-42XVPSample

Page 38: mbedとwindows 8.1

Classic Bluetooth連携②~ WinRT側

USBドングル利用の場合と同じ

Page 39: mbedとwindows 8.1

デモ③:Classic Bluetooth連携

RN-42XVPを使う場合

• 最後まで動作しなかったので…省略

• 続きはブログで

Page 40: mbedとwindows 8.1

Bluetooth LEでの連携

Page 41: mbedとwindows 8.1

Bluetooth LE連携~mbed側

BLE_HTM_HRM1017

Page 42: mbedとwindows 8.1

Bluetooth LE連携~WinRT側

PGで説明

■参考Bar Windows 8.1 – BluetoothでGO! 2013/10/29

http://www.kekyo.net/2013/10/29/bar-windows-8-1-bluetooth%e3%81%a7go/

Page 43: mbedとwindows 8.1

デモ:Bluetooth LE連携

温度センサーのデータ読み取り

Surface RTで読み取って表示

Page 44: mbedとwindows 8.1

まとめ

mbedで組み込み機器のプロトタイピングを手軽に

• オンライン開発環境+公開ライブラリで素早くPG開発を立ち上

• ブレッドボード、開発用ボードを利用して配線の手間を削減

• プロトコル、ドライバ、サーバ処理の実装はライブラリ利用で

Windows 8.1との連携

• WinRTでBluetooth 2.x/3.xやBluetooth LEのAPIが提供済み

• mbed側もライブラリや専用ボードを利用して実装負荷を低減

Page 45: mbedとwindows 8.1

雑感

ライブラリの品質はまちまち

• 立ち上げ時にはそのまま利用すればよいが、リリースに向けたデバッグ時には対象のパーツ・プロトコルなどを理解する必要がある

ソースを読む

仕様書を読む

• 組み込み以外の開発と同じ

printfデバッグはつらいのでオフライン開発環境を作ったがよいのでは

• デバッガがボードに対応しているかどうか

Page 46: mbedとwindows 8.1

今後の計画

Felicaカードの読み取り処理• トラブルの解消

タッチパネル付きLCDの制御• 部品を決めて実装してしまう

ガジェットのPG• スモールスタートで実装してしまう

リリース作業• 外に持ち出せるようにブレッドボードからユ

ニバーサル基板への実装の変更• 電源は…?• ケースもどうしようか…?