********************************************************************** セッションs4d チュートリアル テーマ:PSoCボードでBLE実験♪ 〜ウェアラブルシステム編〜 講師:坪井 義浩((株)スイッチサイエンス)    長濱 みほ (CYPRESS SEMI-CONDUCTOR CORP.) 日時:2016/8/26 13:00〜14:20 参加人数:27名(終了時) ********************************************************************** ・会社紹介  スイッチサイエンスは,電子工作に使う部品や基盤を輸入,開発している.また,自社製品を製造販売している.2008年に創業し,2010年に法人化した. ・自己紹介  (株)スイッチサイエンス所属.自社製品の設計や開発を行っており、他社の半導体メーカーと一緒に色々なものを作っている.例えば,(株)インテルの 超小型コンピュータ「Edison」を使用するための基板の設計や製造を行った.また,海外のデベロッパーサミットやメーカーフェアでプレゼンテーションを行っている. 個人活動として,ネットワーク関連や組込み関連の本を書いている. ・他己紹介  (株)CYPRESSについて.1982年に創業.SRAM,NOR Flash memories,CapSense(TouchSense)のシェア率は世界1位で,automotive MCUsのシェア率は世界3位である. 2015年にSpansionと合併した影響から,SRAM,NOR Flash memoriesのシェア率が世界1位である. 本社はアメリカのサンノゼにある.インド人エンジニアが多く,お互いにコードネームで呼び合う文化がある. ・CYPRESS社のマイコンの話  主にFMシリーズとPSoCシリーズのマイコンがある.PSoCシリーズは通常のマイコンとは異なる特徴を持ち,コアの周りにプログラマブルかつコンフィギュアラブルなI/Oを持つ. PSoCシリーズのマイコンはアナログ周りの処理を行うことができる. ・PSoCの基礎知識  PSoCは,コアの周りにプログラマブルなI/Oを持ち,色々なことができる.例えば,プログラマブルアナログがあり,入力電圧を変更できる. PSoC 4とPSoC 5LPの違いはマイコンに積んでいるMCUコアの違いである.PSoC 4はトランジスタの数が少ないので,省電力向きである.PSoC 5LPはフラッシュメモリが たくさんあり,PSoC 4と比べて値段は高いが,色々な処理を行うことができる.最近では,PSoCシリーズのマイコンにBLEを搭載しているPSoC4 BLEが登場している. また,BLEはあるが,プログラマブルブロックがないマイコン,PRoC BLEがある.PRoC BLEはウェアラブルに使われることを想定している. PSoC4 BLEやPRoC BLEはアンテナ付きでモジュールの形で販売している.モジュールは各国の技適取得済み. ・CYPRESSのBLEソリューション  7月にBroadcomの買収が完了し,通信モジュールも提供中.   ・Bluetoothの基礎知識  BluetoothとBLE(Bluetooth Low Energy)の違いは通信構造にある.Bluetoothは元々,低消費電力な無線である.従来のBluetoothはBluetooth Classicと呼ばれる. BLEは更に低消費電力な無線である.Bluetooth ClassicとBLEに互換性はない.Bluetooth Smartと言うと,Smartの単語から,Bluetooth ClassicとBLEの両方に 対応していると思われがちだが,本当はBLEのみに対応した製品の事を指す用語であるので,注意する必要がある.Bluetooth Smart Readyと言うと, Bluetooth ClassicとBLEの両方に対応している製品を指す用語である. ・Bluetooth Smart Readyの例  スマートフォンとオーディオを通信するBluetooth Classic,スマートフォンとセンサデータを通信するBluetooth Smartがある. よくあるスマートフォンはBluetooth ClassicとBLEの両方に対応できるので,Bluetooth Smart Readyなデバイスと呼ぶことができる. ・BLEの基礎知識  BLEはProfileの下に複数のService,Characteristicを持ち,ツリー状のデータ構造を持っている.ProfileはServiceの集合体でもある. BLEはペアリングがいらないとよく言われるが,ペアリングをさせることもできる.これにより,セキュアに通信を行える.また,BLEはProfileと同じ階層にGAPを持つ. GAPはBLEデバイスのふるまいを宣言するものである.実際のデータはServiceが持つ.例えば,体温計サービスの場合は測った体温と測った体温の単位があるが, 体温の単位がわからないと正確なことがわからない.なので,測った体温と測った体温の単位の2つのCharacteristicを持ってBLE通信を行う必要がある. BLEデバイスをPSoC Createrと呼ばれるソフトウェアを用いて,簡単に作ることができる.   ・BLEを勉強するのにオススメの書籍 「Getting Started with Bluetooth Low Energy」,「BLUETOOTH LOW ENERGY THE DEVELOPER’S HANDBOOK」の2冊がオススメである. 日本語版の書籍が読みたい方は「Bluetooth Low Energyをはじめよう」がオススメである. ・BLEデバイスを使うために必要なもの  PSoC Creatorと呼ばれるソフトウェアが必要である.PSoC Creatorは現在,Windowsのみしか対応してないので,注意が必要である. ・Beaconについて  BeaconはBLE通信を用いた信号発信機である.AppleやGoogleなどの有名企業も積極的に導入している.Beaconを用いるのメリットは スマホユーザーがBluetoothをオンにしていれば,手軽にプッシュ通知を送ることができ,また,ユーザーの情報を簡単に収集できることである. BeaconにはApple社開発のiBeaconとGoogle社開発のEddystoneがあり,本セッションでは汎用性の点から,Google社開発のEddystoneを紹介する. ・PSoCでBeaconを作る過程の紹介  PSocでBeaconを作る過程を紹介する.本セッションではGoogle社開発のEddystoneを使って実例を示す. Eddystoneはオープンソースであるため,誰でも手軽に使用できる.Eddystoneの詳しい規格が知りたい方はGitHubを参考にしてくださいとのことです. https://github.com/google/eddystone 今回の実例は,PRoC BLEのボードを使っている.まず,PSoc Creatorを起動する.起動を終えたら,[File]-[New]-[Project]を選択して, 新しいプロジェクトを作成する.そして,ターゲットハードウェアを選択する.次に,project templateは「Pre-populated schematic」を選択し, 最後にプロジェクトに名前を付ける.ここで回路図が出てくるが,ソフトウェア的には意味がない.周辺機器などの青い部分がメモ用となっている. BLUETOOTH LOW ENERGYのクロックをダブルクリックする.すると,Generalタブで,どのProfileを使うかと聞かれるので,Customを選択する. 次に,Profilesタブでは,Custom Serviceをクリックし,UUIDを16-bitのfeaaにする.ビット長のドロップダウンリストボックスが見当たらない場合は, ウィンドウを大きくすると表示される.GAP Settingsタブでは,General項にある,「Silicon generated "Company assigned" part of device address」に チェックを入れる.「Device name」にはお好みで決め,「Appearance」はUnknownにする.また,GAP Settingsタブで,Advertisement settings項にある, 「Advertising type」を「Scannable undirected advertising」にする.そして,「Fast advertising interval」の「Timeout」のチェックを外す. Advertisement packet項にある,「Service UUID」-「Custom Service」にチェックを入れる. また,「Service Data」-「Custom Service」にもチェックを入れる.すると,Dataの項に入力できるようになるので,Eddystoneのフレームを記入する.ここでは,「10:00:01:73:77:69:74:63:68:2D:73:63:69:65:6E:63:65:00」と入力している.データの入力について詳しいことはGitHubとASCIIコード表を参照との事. https://github.com/google/eddystone/tree/master/eddystone-url 最後に,ソースコードを書く.今回用いているソースコードはGitHubのURLを参照. https://gist.github.com/ytsuboi/1674941119f6bf2a055f そして,Buildタブをクリックし,Buildを行う.出来上がったバイナリをPSoCに書き込む. ・PSoCを使って何かを作りたいとき  PSoC Creatorを起動し新規で開発をする.デバイスごとにサンプルプログラムが多く用意されているのでそれを参考に開発をするとよい.また,GitHubにも多くのサンプルプログラムが用意されている. https://github.com/cypresssemiconductorco?tab=overview&from=2016-08-01&to=2016-08-31&utf8=%E2%9C%93 ・ユニバーシティプログラム 先生や学生の方は,ユニバーシティプログラムを申請すると,ソフトウェアツールが無料で利用できたり,またハードウェア開発ボードを低価格で使用することができます,メリットがあるので是非申請してみてください. http://japan.cypress.com/university-alliance ・ワークショップ  ワークショップに参加すると,評価ボードがもらえるので,よければ是非参加してくださいとのことです.無料で参加できます.以下のURLが日程表です. http://www.cypress.com/workshops ・センサを繋いでみる  今回は例として,I2Cの温度センサを繋いだ.I2Cを使いたいときには,回路図上にI2Cのコンポーネントを持ってきて,I2Cを使うための簡単なコードを入力すると使用できる.以下のコードが今回,用いられたコードである. I2CM_Start(); I2CM_I2CMasterSendStart( LM75B_SLAVE_ADDR,1 ); data[0] = I2CM_I2CMasterReadByte(0); data[1] = I2CM_I2CMasterReadByte(0); I2CM_I2CMasterSendStop(); I2Cのピンアサインは,PSoC CreatorのGUIの画面で簡単に行える. ・コンパイラの話  PSoC CreatorとIARのEWARMやARMのMDK-ARMなどのツールを組み合わせた開発を行うこともできる.このような開発スタイルを取るとき,GCC以外(PSoC CreatorはGCC)のコンパイラを使用することができる. ソフトウェア開発におけるコンパイラの選択を行うことができる. また,この開発は,ハードウェアの回路設計はPSoC Creatorで行い,ソフトウェアの開発はEWARMやMDK-ARMで行うことができるなど,それぞれの開発者が慣れた環境で開発できるなどの利点もある. ○質疑応答  質問が出なかったので,フリートークを行った. ・フリートーク  開発を行う際に例えば,BLEのコンポーネントの説明を参照したいときは,BLEコンポーネントを右クリックし,Datasheetを開くと,ドキュメントを参照できる. 細かな説明を見ることができる.開発を行う際はドキュメントを参照するとよい.  PSoCシリーズはBluetoothのバージョンアップに対応しているので,割と新しいことができるのが,魅力的である. 是非,PSoCシリーズを試してみてくださいとの事です..