= PSoC 4 BLEをはじめてみよう = PSoC 4 BLEでの開発を、ビーコン、ここではEddystoneを題材に経験してみましょう。 必要な物: * [https://www.switch-science.com/catalog/2409/ CY8CKIT-142 PSoC 4 BLEモジュール] 1個 * [https://www.switch-science.com/catalog/2408/ PSoC MiniProg3] 1個 * [https://www.switch-science.com/catalog/1938/ 両方長いピンヘッダ] 5ピン分 * PSoC CreatorをインストールするWindowsパソコン * [http://www.cypress.com/products/psoc-creator PSoC Creator] この記事は3.3で検証して書きました。 まず、PSoC Creatorを起動します。起動を終えたら、[File]-[New]-[Project]を選択して、新しいプロジェクトを作ります。[[BR]] [[Image(create_new_project.png, 345px)]][[BR]] プロジェクトをつくるときには、使用するテンプレートを選択します。ここでは、「Target hardware」として「Kit: CY8CKIT-042-BLE (PSoC 4100 BLE / PSoC 4200 BLE)」を選択します。[[BR]] [[Image(select_project_type.png, 671px)]][[BR]] 次に、Prohect templateは、「Pre-populated schematic」にしておきましょう。[[BR]] [[Image(select_template.2.png, 672px)]][[BR]] 最後に、プロジェクトに名前を付けます。ここでは、「PSoC_Eddystone」としておきました。[[BR]] [[Image(create_project.png, 667px)]][[BR]] OKボタンをクリックすると、新規プロジェクトが開きます。このような「Bluetooth Low Energy」コンポーネントが画面に出ているはずですので、これをダブルクリックしてください。Component Configuration Toolのウィンドウが開きます。[[BR]] [[Image(BLE_component.png, 426px)]][[BR]] ProfileをCustomにします。また、恐らく最初からチェックが入っていますが、Use BLE low power modeというチェックボックスにチェックを入れます。[[BR]] [[Image(configure_BLE1.2.png, 429px)]][[BR]] 次に、「Profiles」タブに切り換えてください。[[BR]] 「Custom Service」のパラメータを変更します。UUIDを16-bitにして、UUIDをEddystoneの「feaa」にします。[[BR]] ※bit長のドロップダウンリストボックスが見当たらない場合、ウィンドウを大きくすると表示されます。[[BR]] [[Image(configure_BLE2.2.png, 553px)]] 今度は、「GAP Settings」タブです。[[BR]] 「General」の項に有る、「Silicon generated "Company assigned" part of device address」にチェックを入れます。これにチェックを入れないと、ビルドしたバイナリを書き込んだBLEモジュールのデバイスアドレスが全て同じ値になってしまいます。[[BR]] 「Device name」にはお好みのものを入れてください。AppearanceはUnknownにしておきます。[[BR]] [[Image(configure_BLE3.png, 636px)]] 「Advertisement settings」の項に有る、「Advertising type」を「Scannable undirected advertising」にします。 また、「Fast advertising interval」の「Timeout」のチェックを外します。[[BR]] [[Image(configure_BLE4.png, 658px)]] 最後に、「Advertisement packet」の項です。[[BR]] 「Service UUID」-「Custom Service」にチェックを入れます。また、「Service Data」-「Custom Sercie」にもチェックを入れます。[[BR]] すると、Dataの項に入力出来るようになりますので、Eddystoneのフレームを記入します。ここでは、「10:00:01:73:77:69:74:63:68:2D:73:63:69:65:6E:63:65:00」と入力しました。先頭1バイト目の0x00は、Eddystoneのものであることを意味します。2バイト目の0x00は送信している電波の強度、GAP SettingsのGeneraiでTX power levelを0dBmにしたので、0dBmにしました。3バイト目はURLスキーム、0x03は「https」を意味します。その後はアスキーコードでURLの文字列を記述し、最後の0x00は、「.com/」を意味します。[[BR]] 詳細は、次のURLを参照してください。 https://github.com/google/eddystone/tree/master/eddystone-url [[BR]] [[Image(configure_BLE5.png, 685px)]] 以上でGUI作業は終了です。最後にコードを書きましょう。といっても、書くことはほとんどありません。[[BR]] まず、main.cを開きます。main.cは次の場所をダブルクリックすることで開くことができます。[[BR]] [[Image(main.c.png, 234px)]] 今回は、プロジェクトのテンプレートを使っているので、既にコードのテンプレートが記述されています。[[BR]] このコードの40-41行目、 {{{ case CYBLE_EVT_STACK_ON: CyBle_GappStartAdvertisement( CYBLE_ADVERTISING_FAST ); }}} このCyBle_GappStartAdvertisementがコメントアウトされていますので、アンコメントします。たったそれだけです。[[BR]] これで、ビルドを行ってください。[[BR]] ビルドが完了したら、パソコンにMiniProg3を接続します。まだ、デバッガとPSoC BLEモジュールは接続しないでください。[[BR]] 次に、[Debug]-[Select Debug Target]をクリックして、デバッガを選択するウィンドウを開きます。ここでPort Settingをクリックしてください。[[BR]] [[Image(debug_target.png, 596px)]] MiniProg3はターゲットに電力を供給することができます。ここでは、3.3Vを供給するように設定します。また、MiniProg3には10ピンのコネクタと5ピンのコネクタがありますので、5ピンのコネクタを使うように設定します。[[BR]] [[Image(port_setting.png, 375px)]] ここまで終えたら、デバッガとPSoC 4 BLEを接続します。接続は次の写真を参考に行ってください。[[BR]] CY8CKIT-142の基板表面を見ると、PROGというシルクがあります。VDDDというシルクがあるピンとMiniProg3のVTARGが接続されるようにして接続します。[[BR]] 向きを間違えると、CY8CKIT-142やMiniProg3を破損する恐れがありますので、十分に注意をして接続してください。[[BR]] [[Image(pinheader.png, 504px)]] [[Image(pinheader2.png, 504px)]] 接続を終えたら、最後に書き込みを行います。[Debug]-[Program]をクリックすると書き込みが開始されます。[[BR]] 書き込みを終えると、Eddystoneのビーコンが出ているはずです。[[BR]] iOSデバイスに、Chromeをインストールすると、こんな感じに見えるはずです。[[BR]] [[Image(ios_sample.png, 375px)]][[BR]] なぜか、AndroidにChromeをインストールしてもEddystoneを拾ってくれないので、Locate BeaconやiBeacon & Eddystone Scannerなどのアプリケーションを入れて拾ってみました。[[BR]] [[Image(locate_beacon.png, 375px)]] [[Image(beacon_scanner.png, 375px)]][[BR]]