Upload
nobuaki-aoki
View
435
Download
1
Embed Size (px)
DESCRIPTION
第10回まどべんよっかいちでの発表資料です。最後のWindows 8.1との連携、特にBluetooth LEでの連携は説明できなかったので、ブログにて説明する予定です。
Citation preview
mbedとWindows 8.1
@第10回まどべんよっかいち2014/10/18青木 宣明(@kumar0001)
今日の目標
mbedなどの組み込み機器のプロトタイプ開発環境を知ってもらう
mbedの機能とプログラムの開発方法を知ってもらう
組み込み機器とWindows 8.1アプリの連携方法を知ってもらう
スマートデバイスとガジェット~私のやりたいこと
スマートデバイスでやりたいこと
ガジェットによる機能の補完
組み込み機器のプロトタイプ開発
IoT: Internet of thing
http://monoist.atmarkit.co.jp/mn/articles/1410/17/news123.html
http://monoist.atmarkit.co.jp/mn/articles/1410/17/news123.html
de:code 2014“DE-003Internet Of Things を Windows プラットフォームで実践”より
IoTとクラウド
スマートデバイスの位置付け
人・モノ・情報とのインターフェース
Human
Information
Thing
あらゆる情報にすぐにアクセスしたい・入力方法、表示方法
物理空間のあらゆる情報を蓄積したい
SNSが普及してるのでその利便性向上で間に合いそう
モノの記録の蓄積
場所GPS
加速度計
金電子マネー
レシート
オンラインバンキング
環境温度・湿度
気圧
照度
あらゆるモノを自動的に記録したい
Windows (Phone)* 8.1ができないところは
ガジェットで補おう
もっと身近な事情
ところで、電子マネー使ってますか?
利用履歴の記録領域が数件分しかない!
6件
3件
5件
1日の全ての記録を残すには、こまめに利用履歴を残すしかない
どうやってこまめに記録?
Androidアプリを作ればいいんじゃない?
①スマートフォンアプリの立ち上がり時間の問題⇒専用デバイスならではの起動の早さを求めたい
②Windows (Phone) 8.1で間に合わせたい
どうやってこまめに記録?
Windows 8.1ユニバーサルアプリで解決する方法を考えてみよう
WinRTのNFC機能はNDEFと呼ばれる形式だけの対応でFelica対応カードの
読み書きができない!
Felicaカードリーダを搭載したガジェットと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
作りたいガジェット
①読み取り
②タッチ操作
③記録
④Win8.1連携
mbed
で、進捗は?
進捗状況
•データ形式を検討中
• SDカードの扱いはOK•Bluetoothでの連携はOK
•伝送形式を検討中
•部品を選定中
•GUI&タッチ操作は
難易度が高そう
•読み取りの基本はOK
•トラブルの原因調査中
読取 表示
記録連携
MBEDとは
組み込み機器のプロトタイプ開発
mbedの特徴
mbedの機能
mbedのプログラム開発
mbedとは?
ARM社が提供する組み込み機器のプロトタイプ開発環境
• ワンボードマイコン
• プログラミング環境
他のプラットフォームとの違い
• C++ ⇔ C# (.NET Micro Framework)
• マイコン ⇔ PC基板(RasPi)
• OS非依存の汎用の開発環境 ⇔ 独自のIDEによる開発環境 (Arduino, Intel Galileo)
組み込み機器のプロトタイプ開発
通信モジュールのドライバは自前で実装?
センサー・LCDなどパーツとの接続は半田付け?どうやって制御するの?
開発環境は何を使えばいいの?マイコンにPGを書き込む方法は?
mbedの特徴
簡素化された開発作業
オンライン開発環境
公開ライブラリの利用
簡素化された開発作業
オンラインコンパイラ
• 開発環境をインストールする必要がない
USB接続とDnDでの書き込み
• USBで接続してファイルをExplorerでコピーするだけ
USBシリアルでのprintfデバッグ
• TeraTermなどのCOM通信ソフトで確認
オンライン開発環境
Webブラウザ上の開発環境
コード作成
ライブラリインポート
バージョン管理
ビルド
公開ライブラリの利用
プログラム、ライブラリをオンラインコンパイラ画面で取り込み可能
• Microsoft社のNuGetに相当
自分のオリジナルコードの公開も
• Wikiでの説明、履歴
• 既存ライブラリをForkして公開も可能
• GitHubに近い
mbedの種類
http://developer.mbed.org/platforms/
mbedの機能
デモ① Lチカ
Lチカ=マイコンボードでのhello world
ブレッドボードでの配線
コード作成
ビルド
PGの書き込み
デモ② もう少し複雑な例
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/
参考)オフライン開発環境
無償のオフライン開発環境
デバッグ
• アダプタが必要
• ブレークポイントとか
mbedオンラインコンパイラからのエクスポート
WINDOWS 8.1との連携
スマートデバイスとガジェットの連携
Windows 8.1とガジェットの連携
スマートデバイスとガジェットの連携
有線
無線
遠隔近接
Bluetooth
NFC
イーサネットケーブル
WiFi
USB
赤外線
UART
Bluetooth
Bluetooth 2.x/3.x
• 従来のBluetooth
• 高速(~24Mbps)だが消費電力大(2次電池での駆動)
• WindowsではProximity APIでサポート
Bluetooth LE
• Bluetooth Smart=LEのみ、Bluetooth Smart Ready=LE+従来
• 低速(~1Mbps)だが消費電力が小さい(ボタン電池での駆動)
• WindowsではXXX
Classic Bluetoothでの連携
Classic Bluetooth連携①~mbed側
USB端子にUSBドングルを接続する場合
• USBスタックにmyBlueUSBを利用
RFCOMMとSDPに対応
コンパイルが通るようにしたmbed:myBlueUSB_localfix
• イベントドリブンなPGに処理を追加
TestShell関数のmainloopの部分
Classic Bluetooth連携①~mbed側
Classic Bluetooth連携①~ WinRT側
• https://github.com/nobukuma/BTRFCommDevTest
デモ③:Classic Bluetooth連携
USBドングルの場合
USBドングルの利用
USBドングルの場合
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
Classic Bluetooth連携②~ WinRT側
USBドングル利用の場合と同じ
デモ③:Classic Bluetooth連携
RN-42XVPを使う場合
• 最後まで動作しなかったので…省略
• 続きはブログで
Bluetooth LEでの連携
Bluetooth LE連携~mbed側
BLE_HTM_HRM1017
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/
デモ:Bluetooth LE連携
温度センサーのデータ読み取り
Surface RTで読み取って表示
まとめ
mbedで組み込み機器のプロトタイピングを手軽に
• オンライン開発環境+公開ライブラリで素早くPG開発を立ち上
げ
• ブレッドボード、開発用ボードを利用して配線の手間を削減
• プロトコル、ドライバ、サーバ処理の実装はライブラリ利用で
Windows 8.1との連携
• WinRTでBluetooth 2.x/3.xやBluetooth LEのAPIが提供済み
• mbed側もライブラリや専用ボードを利用して実装負荷を低減
雑感
ライブラリの品質はまちまち
• 立ち上げ時にはそのまま利用すればよいが、リリースに向けたデバッグ時には対象のパーツ・プロトコルなどを理解する必要がある
ソースを読む
仕様書を読む
• 組み込み以外の開発と同じ
printfデバッグはつらいのでオフライン開発環境を作ったがよいのでは
• デバッガがボードに対応しているかどうか
今後の計画
Felicaカードの読み取り処理• トラブルの解消
タッチパネル付きLCDの制御• 部品を決めて実装してしまう
ガジェットのPG• スモールスタートで実装してしまう
リリース作業• 外に持ち出せるようにブレッドボードからユ
ニバーサル基板への実装の変更• 電源は…?• ケースもどうしようか…?