View
530
Download
4
Category
Preview:
Citation preview
2
自己紹介
•Kenta IDA (@ciniml)•仕事:ワイヤボンダのソフト開発•組み込み CPU 用と Windows 用
•使用言語: C#, C++, 時々 VHDL, 仕方なく C•使用回路 CAD : KiCad
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
3
Windows 10 IoT Core on RPi2
部屋の消費電流ロガー作ってみた
PSoC4 BLE で作る簡単無線センサーユニット
分電盤
BLE ドングル
液晶画面の裏に RPi2
2016/9/17
電流センサー
PSoC4
BLE電流センサーユニット
電流データ on BLE
7
センサーユニットの構成
PSoC4 BLE で作る簡単無線センサーユニット
カレントトランス
PSoC4 BLE(CY8CKIT-142/EZBLE PSoC)
2016/9/17
電池(CR2032)
•カレントトランス•交流電流測定
•電池• CR2032 ( コイン電池 )
•PSoC4 BLE•センサ処理
• BLE 通信
8
カレントトランスの信号
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•カレントトランス• センサ内に通した導線の交流電流を測定
• 導線の 1/n の電流が流れる
• 抵抗で電圧に変換• あまり大きく出来ない (10Ω とか )
• 線形でなくなる
→10 [mV/A] くらいの出力
→ 増幅しないと ADC 辛い…
9
PSoC4 BLE のアナログ機能
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•アナログコンパレータ
•オペアンプ• 4 個入っている
•SAR ADC•差動 ADC としても使える
→ 差動アンプ + 差動 ADC で直接取り込み
10
差動アンプと ADC の構成
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•サンプルプロジェクトあり• ADC_Differential_Preamplifier
•外付け部品 3 点•フィードバック用抵抗
15
開発用キット
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•CY8CKIT-042-BLE Bluetooth Low Energy Pioneer Kit•BLE ユニット開発に必要な物一式揃う• Kitprog( デバッガ ) 付きベースボード
• CY8CKIT-142 PSoC4 BLE モジュール
• CySmart BLE (BLE 通信テストモジュール )•工事設計認証済み
17
開発用キット
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•余談:新しいやつ出てる•CY8CKIT-042-BLE-A• CY8CKIT-143A が付属• CY8CKIT-142 ではない
→ 工事設計認証 (MIC) どころか FCC/CE すら通ってない→気を付けよう。
18
CySmart
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•BLE 通信テスト用のモジュール•Windows 用ソフト (CySmart) から使う
•BLE 通信の一通りの確認が可能•スキャン、接続
•キャラクタリスティックの読み書き
•セントラル・ペリフェラルの問題切り分けに便利•Windows の BLE スタックがアレだったりもするので。
21
BLE の通信処理
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•基本•値 ( キャラクタリスティック ) の読み書き
•値の集まり ( サービス ) で機能を識別
→ サービスを定義する必要あり
•定義済みサービス•広く使われる物は定義済み
•Bluetooth SIG が管理
22
カスタムサービスの定義
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•カスタムサービス•定義済みでないものは自分で定義
•当然、 PSoC Creator でもサポート
•アプリケーションノートあり• AN91162 - Creating a BLE Custom Profile
23
カスタムサービスの定義
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
カスタムサービス (Current Sensing Service)
定義済みサービス
定義済みサービス
24
カスタムサービスの定義
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
カスタムサービス(Current Sensing Service)
•Current Sensing Service• 2 つのキャラクタリスティック
•Current• センサの生の測定値
•Coefficient• センサ測定値を [A] 単位に変換するための係数• PSoC4 BLE には FPU が無いのでセントラル側で変換
26
消費電力の削減
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•電源: CR2032•定格容量 220[mAh]
•目標: 1 ヶ月連続動作• 24[h]*30[d] = 720[h]• 220[mAh]/720[h] ≒ 0.31[mA]→ 平均消費電流 0.31[mA] 以下
27
消費電力の削減
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•極力寝る• =CPU 、周辺回路を止める (DEEP SLEEP)
•3 つのクロック• ECO : BLE 用 外部水晶発振子 (24[MHz])• IMO :内蔵発振回路 (48[MHz]) CPU 用
•WCO :外部水晶発振子 (32.768[kHz])→BLE 、 CPU を極力止める
28
BLE の通信間隔
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•BLE 通信•CPU+BLE 回路が必要
•かなり消費電流大きい• 定常 5[mA] 、ピーク~ 20[mA]
•極力通信しない
→ 通信パラメータで 1[s] 間隔に設定
Connection interval
29
BLE 通信時の電流波形
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•簡易電流プローブ• 10[mV]=1[mA]
•ピーク 18[mA]•積分値 26.3[uAs]
30
交流電流の測定
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
• 3.2[kSPS]、64点• 50[Hz] の1周期分
• CPU+ADC• IMO(48[MHz]) が必要
• ADC が終われば寝られる
• 1/3.2[ms] で割り込み• WDT 使用
• DEEP SLEEP からタイマ割り込みでは起きられない
→BLE同様1[s]間隔で測定
20[ms]
31
交流電流計測時の電流波形
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•3.2[kSPS] 、 64 点• 50[Hz] の 1周期分
•ピーク 5.3[mA]•積分値 33.8[uAs]
32
BLE 通信時の注意点
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•データ送信時は BLE の状態を確認•BLE が起きている時に送信要求
•でないと次の送信タイミングまで寝なくなる
•Cypress リポジトリのサンプルコードを確認• GitHub の cypresssemiconductorco/BLE
BLE状態取得関数
ECO安定 =送信タイミングなので起きた
33
BLE 通信時の注意点
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•計測後に無駄な時間•CPU+BLE が起きたまま
•積分値: 258[uAs]•ADC タイミング依存•場合によりもっと増える• 5[mAs] とか
計測 無駄
計測結果送信要求
BLE起動
BLE送信タイミング
34
まとめ
PSoC4 BLE で作る簡単無線センサーユニット 2016/9/17
•PSoC4 BLE は•オペアンプとか内蔵されてて便利
• EZ-BLE PSoC なら数点の外付け部品のみでセンサユニットが作れる
•まずは CY8CKIT-042-BLE買うと良い
Recommended