相互容量方式のセンサボードを使ってチューニングしてみよう
前回の記事 CapTIvateで水気があっても簡単チューニング その1 では、水の付着と指のタッチを区別できる相互容量方式の説明とGUI上での変化の様子を簡単にご紹介しました。
今回の記事では、「相互容量方式」に対応したセンサボード(CAPTIVATE-PHONE)を使用し、感度に加えてスレッショルドの設定までのチューニング作業についてご説明します。
※チューニング手順自体は、自己容量方式でも同様に適用可能です。
CAPTIVATE-PHONEボードを使って感度、スレショルドのチューニング
以下の手順でチューニングを進めます。
基本的な流れは CapTIvate タッチ感度をGUIで簡単チューニング にて説明しておりますので、詳細は割愛させていただきます。
手順1 タッチセンサのキャンバスを作成
手順2 統合開発環境(CCS)でマイコンへの書き込み
手順3 タッチセンサをリアルタイムで感度チューニング
手順4 タッチセンサをリアルタイムでスレッショルドチューニング
手順1 タッチセンサのキャンバスを作成
以下の手順でMSP CapTIvate Design Center GUIでCAPTIVATE-PHONEのプロジェクトをロードします。
- MSP CapTIvate Design Center GUIを起動します。
- メニューバーのFile → Project Openをクリックします。
- CAPTIVATE-PHONEを選択してSelectをクリックします。
手順2 統合開発環境(CCS)でマイコンへの書き込み
以下の手順でCAPTIVATE-PHONEのプログラムをマイコンに書き込みます。
- 統合開発環境(CCS)を起動します。
- メニューバーのProject → Import CCS を選択します。
- 次に、Browseボタンをクリックして、GUIツールに付属のプログラムが格納されているフォルダを指定し、読み込むプロジェクト(CAPTIVATE-PHONE)をチェックし、Finishをクリックします。
- プロジェクトを選択します。
- ハンマーのアイコン(Build) をクリックします。(エラーなしで"BuildFinished"が確認できたらコンパイル成功です。)
- 虫のアイコン(Debug) をクリックすることで、マイコンへプログラムの書き込みを行います。
手順3 タッチセンサをリアルタイムで感度チューニング
以下の手順でチューニング画面を表示します。
- GUIツールで、Communication → Connect をクリックして接続します。
- 画面の部品(numericKeypadSensor)を右クリックしてPropertiesをクリックします。
次に、前回と同様にセンサパラメータをチューニングします。
CAPTIVATE-PHONEのボタン1を指で押すと下図の様にセンサCH3の青線グラフと赤棒グラフが変化します。
グラフの変化を観察してみましょう。以下の例では左の目盛で非タッチ時の平均カウント値(LTA(黒線):Long Term Average) 約150に対して、赤棒グラフに15程度の変化(10%程度の変化)が観測されています。
CapTIvate 水気のある場所でもタッチ検出可能な静電容量式タッチソリューション でご説明しました通り、自己容量方式では、タッチによって静電容量が増加するので、カウント値は減る方向に変化しますが、相互容量方式では、タッチによって静電容量が減少し、カウント値は増える方向に変化していることが確認できます。
では、センサのパラメータをチューニングして、もう少し大きく変化するようにしてみたいと思います。
Conversion_Controlのタブをクリックして、Conversion_Countの値を増やしてみましょう。
- Conversion_Controlのタブをクリックします。
- Conversion_Countの値を150から300に変更してみます。
- Applyをクリックした後、再びChannel Bar Chartのタブをクリックします。
今度は、以下の図のように、左の目盛で約300に対して、80程度の変化(26%程度の変化)が観測されました。
手順4 タッチセンサをリアルタイムでスレッショルドチューニング
ここまでで、基本的な感度調整は行えましたので、更にスレッショルドの設定まで行ってみたいと思います。
CapTIvate wake-on-touchで超低消費電力 でタッチ検出の判断ポイント(Touch Threshold)にタッチ検出直前の判断ポイント(Proximity Threshold)を加えた2つのスレッショルドで動作するメカニズムについてご説明しました。
このスレッショルドの設定は、自己容量方式、相互容量方式に関わらず必要ですが、今回はスレッショルド設定の一例として、相互容量方式を例に以下のように設定する方法をご紹介します。
- 非タッチ時とタッチ時の変化量の20%をProximity Threshold に設定
- 非タッチ時とタッチ時の変化量の70%をTouch Threshold に設定
Proximity Thresholdを設定
下の手順でProximity Thresholdを設定します。
- TuningTabを選択
- Prox Thresholdをクリックし、計算式を確認
- Prox Thresholdの値を変更
- Applyをクリックした後、再びChannel Bar Chartのタブをクリックします。
Prox Thresholdに設定する値は以下のように算出しました。
Channel Bar Chartタブの画面で確認すると、 LTA(黒線)は300なので、
ProxThresh_absolute = LTA + ( 変化量 x 20% ) = 300 + ( 80カウント x 0.2 ) = 316 となり
Mutualの場合
- 計算式より、316=300+ProxThresh
- 計算結果は、ProxThresh=16
上記より、GUIのProx Thresholdの設定値は16としました。
以下の図では、Channel Bar Chartの画面でProx Threshold(黄線)が設定値の316程度になっていることが確認できます。
Touch Thresholdを設定
次に、以下の手順でTouch Thresholdを設定します。
- TuningTabを選択
- Touch Thresholdをクリックし、計算式を確認
- 対象センサのCH(CH3)をドロップダウンメニューから選択し、Touch thresholdの値を変更
- Applyをクリックした後、再びChannel Bar Chartのタブをクリックします。
Touch Thresholdに設定する値は以下のように算出しました。
Channel Bar Chartタブの画面で確認すると、LTA(黒線)は約300なので、
TouchThresh_absolute = LTA + ( 変化量 x 70% ) = 300 + ( 80カウント x 0.7 ) = 356 となり
Mutualの場合
- 計算式より、356=300+(300/128)*TouchThresh
- 計算結果は、TouchThresh=23.9
上記より、GUIのTouchThresholdの設定値は24としました。
以下の図では、Channel Bar Chartの画面でTouch Threshold(緑線)が設定値の356程度になっていることが確認できます。
今回は「相互容量方式」に対応したセンサーボード(CAPTIVATE-PHONE)を使用した、センサーのチューニング作業の一例をご紹介しました。CapTIvateは、相互容量方式にも対応することで、水滴の付着と導体(手や指)の接近を区別することが容易となった上、自己容量方式と同様の手順でGUIを利用したチューニングが可能です。
基本的な手順は、サンプルコードも含めてクイック・スタートガイドに記載がございますので、こちらもご参照の上、ご利用をご検討いただけたらと思います。
おすすめ記事/資料はこちら
CapTIvate:クイック・スタートガイド
静電容量タッチセンシングがマイコンだけで実現可能!CapTIvateテクノロジとは
CapTIvate Design Center GUIを使って、わずか数分で設計環境をセットアップ
水滴が付いてもタッチ検出可能!2つの静電容量方式とは
CapTIvate wake-on-touchで超低消費電力
CapTIvate タッチ感度をGUIで簡単チューニング
CapTIvateで水気があっても簡単チューニング その1
CapTIvateで水気があっても簡単チューニング その2
テキサス・インスツルメンツ社 メーカーサービスの紹介
センサとは何か?電子化、IoT化のための基礎知識