内容へ移動
MakerLabNagoya Wiki
ユーザ用ツール
ログイン
サイト用ツール
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
最近の変更
メディアマネージャー
サイトマップ
現在位置:
Maker Lab Nagoya Wiki
»
知識ベース
»
mbed HRM1017
トレース:
kb:mbed-ble
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== mbed HRM1017 ====== {{projects:20140618e.jpg?400}} ===== 小ネタ ===== ==== ペアリングできるようにするには? ==== AdvertiseのDiscoverableを有効にします。 <code cpp> advData.addFlags((GapAdvertisingData::Flags)(GapAdvertisingData::LE_GENERAL_DISCOVERABLE | GapAdvertisingData::BREDR_NOT_SUPPORTED)); </code> ==== デバイス名を設定するには? ==== AdvertiseにSHORTENED_LOCAL_NAMEを追加します。文字コードはUTF-8です。 <code cpp> const char* deviceName = "\xe3\x81\xa4\xe3\x81\xbcmbedHRM1017"; advData.addData(GapAdvertisingData::SHORTENED_LOCAL_NAME, (uint8_t*)deviceName, strlen(deviceName) + 1); </code> {{wiki:20140618f.png?200}} > 問題有り。ペアリング前はAdvertiseに含まれる名前を表示するが、ペアリング後は別の情報みたい。 > GATTのDevice Information Serviceが必要か? ===== Windows関連 ===== ==== Windows8と接続するには? ==== 1. ハードウェアがBluetooth LEに対応しているか確認します。(デバイス マネージャー で、Microsoft Bluetooth LE Enumeratorが表示されていれば、Bluetooth LEに対応しています。)\\ {{wiki:20140617c.png?200}} 2. mbed HRM1017をペアリングします。\\ チャーム > 設定 > PC設定の変更 > PCとデバイス > Bluetooth\\ > デバイスが表示されない場合は、mbed HRM1017のGapAdvertisingData::LE_GENERAL_DISCOVERABLEフラグがONしているか確認してください。 ==== Windows8でGATTを確認するには? ==== EG Bluetooth Smart Device GATT Profile Checker で確認できます。 1. ストアから、[[http://apps.microsoft.com/windows/ja-jp/app/eg-bluetooth-smart-gatt-profile/87207696-068a-410c-bfdd-a96f44d43b3f|EG Bluetooth Smart Device GATT Profile Checker]]をインストールします。\\ 2. EG Bluetooth Smart Device GATT Profile Checkerを起動します。\\ 3.Bluetooth SMART Devicesに表示されているデバイスを選択します。\\ ===== メモ ===== ==== 6/14メモ ==== *下調べ。 *開発チームはココ。[[https://mbed.org/teams/Bluetooth-Low-Energy/wiki/Homepage|mbed BLE API homepage]] *使っているハードウェアは、nRF51822 Evaluation Kit。 *GAPとGATTに対応。 *GATTのサンプルコードは、[[http://mbed.org/teams/Bluetooth-Low-Energy/code/BLE_HeartRate/|BLE_HeartRate]]。 *BLEDevice,GattService,GattCharacteristicクラス。 *静的変数を用意しておき、Characteristicクラスに紐づけておくことで、BLEのCharacteristicと同期される模様。 ==== 6/15メモ ==== *ハードウェアが手元に届いた。[[https://www.facebook.com/photo.php?fbid=512309988896759|mbed HRM1017]] *mbedオンラインコンパイラのPlatformは、Nordic nRF51822を選択する。 *内蔵オシレーター32KHzなので注意。(nRF51822-mKITは、外部32KHz。) *コンパイル結果のHEXファイルをmbedドライブへコピーすれば書き込める。ブラウザから直書きはダメ。一旦、ローカル保存を経由する。 *SurfacePro2のペアリングには何も表示されない。 *[[http://apps.microsoft.com/windows/app/eg-bluetooth-smart-gatt-profile/87207696-068a-410c-bfdd-a96f44d43b3f|EG Bluetooth Smart Device GATT Profile Checker]]でも認識されない。 ==== 6/16メモ ==== *mbed HRM1017(BLE_Health_Thermometer_IRC) + iPhone(Nordic Toolbox)は、認識できた。 *mbed HRM1017(BLE_Health_Thermometer_IRC) + Nexus7(Nordic Toolbox)は、認識できず。というか、手元のNexus7はBLE未対応みたい。 *BLE喋れるデバイスが、SurfacePro2とTOSHIBA DynabookTabしかない。両方、Win8.1。 *なんとかしてWin8.1でBLE喋らせるしか道が無さそう。 *Win8.1から、WinストアアプリでBLEできる模様。 *BluetoothSIG提供の、ApplicationAcceleratorが使えそう。 *GATT違いでダメでした。BLE_Health_Thermometer_IRCは「UUID_HEALTH_THERMOMETER_SERVICE = 0x1809,」で、ApplicationAcceleratorは「HeartRateMeasurement 0x2A37」。 *明日、ApplicationAcceleratorのコードを書き換えてみることにしよう。 ==== 6/17メモ(Win8.1StoreApp) ==== *GattServiceUuids.HeartRate = "{0000180d-0000-1000-8000-00805f9b34fb}" *Uuidを"180d-0000-0000-..."に変更。→Guidで例外。 *GattDeviceService.GetDeviceSelectorFromUuid()をGattDeviceService.GetDeviceSelectorFromShortId(0x180d)に変更。→Not found *恐ろしい[[http://sviluppomobile.blogspot.jp/2014/02/ble-for-windows-81-part-i.html|記述]]を発見。「Windows 8.1 supports only GATT client mode.」 ==== 6/17メモ ==== *mbed HRM1017(BLE_Health_Thermometer_IRC改) + SurfacePro2(BluetoothSmartDeviceGATTProfileChecker)で、接続に成功。 ==== 6/18メモ ==== *SHORTENED_LOCAL_NAMEのpayloadが正しいか不安だったので、Bluetooth specificationを確認したところ、長さ情報が無かった。したがって、終端の'\0'が必要と思われる。strlen()に+1が必要。 *文字コードがUTF-8だということが分かったので、日本語が表示できるか試してみた。(必要なのか?疑問ではあるが。) ==== 6/20メモ ==== *ペアリング後のデバイス名を指定する方法を模索。 *Bluetooth LE的には、Generic Access Service)(0x1800)のDevice Name Characteristic(0x2A00)を表示している。 *mbed HRM1017のconstに、Generic Access Serviceが定義されていない。orz *無理にSerivceを登録したものの、思うように動かず。(名前変わらず。Advertisingまでおかしくなった。Winアプリによって、Generic Access Serviceが表示されたりされなかったり。) *Generic Access Serviceを登録しなくても、Winアプリに表示されていた。値はnRF5x。 *nRFのライブラリ内で設定しているのか??? *行き止まり。Generic Access ServiceはSoftDeviceで提供されているため、変更不可らしい。({{https://devzone.nordicsemi.com/question/4630/custom-gap-service-with-user-descriptions-uuid-0x2901/|元ネタ}}) *Device Information ServiceのManufacturer Nameでもダメ。ダメになると、何故かAdvertisingの名前もダメになる。 ==== 6/24メモ ==== *mbedコンパイラでの検索操作が間違ってた。orz *CFG_GAP_LOCAL_NAMEに"nRF5x"が定義されていた。 *深堀りすると、nRF51822n::init()->btle_init()->btle_gap_init()->sd_ble_gap_device_name_set()で設定していることが分かった。 *こちらに類似情報あり。[[http://electronics.stackexchange.com/questions/96048/how-to-discover-a-custom-bluetooth-le-device|How to discover a custom Bluetooth LE device]] *偶然、[[http://bril-tech.blogspot.jp/2014/05/bluetoothsmartmbed-1.html|mbed+HRM1017]]の情報を発見。「なお mbed版 nRF51822ではライブラリ側に"Generic Access"と"Generic Attribute"が組み込まれているため」という記述がある。<-0x1800,0x1801
kb/mbed-ble.1403617283.txt.gz
· 最終更新: 2014/06/24 22:41 by
t-matsuoka
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ