実用的な電子工作をする際に、タッチセンサを使用する場合の注意事項などの補足を説明します。
タッチセンサ値の計測時間
前回までの記事では、タイマープログラムに実装したタッチ判定は、100msの時間間隔でタッチセンサ値を計測しています。
計測時間を100msにすると若干反応が鈍く感じられることがありますので、実用的なものを作る場合は計測時間をもっと短くする検討が必要です。
ただ、計測時間を短くするとタッチセンサ値のばらつきが大きくなります。この影響を少なくするために以下の対応が必要です。
- タッチ判定のしきい値に余裕をもたせる
前回実装したプログラムはしきい値を定常時の90%にしていましたが、これを85%や80%などにすると、ノイズの影響を受けにくくすることができます。ただし、あまり余裕を持たせると、人によっては(その人の身体の電気的特性によっては)反応しづらくなる場合もありますので、余裕を持たせすぎるとタッチ反応しない場合も出てきてしまいますので、しきい値のバランスを取ることが必要です。 - 測定値の移動平均を算出する
今までのタッチセンサのプログラムは、測定した値をそのまま判定に使用していました。ただ、測定時間を短くすると、測定値がノイズなどの影響を受けて変動の割合が大きくなるため、例えば過去4回分の平均値をとって、その値としきい値を比較してタッチ判定すると、変動の影響を受けにくくすることができます。
複数のタッチセンサスイッチ実装
タイマープログラムに実装したタッチセンサは、1個のスイッチ判定しか行いませんでした。実際の電子工作では、スイッチは1個ということは少なく、複数のスイッチを扱うことが多いと思います。
PIC12F1822に限らず、他のPICマイコンでも複数のタッチセンサを実装することができます。
具体的な方法ですが、タッチセンサ設定レジスタでタッチセンサに使用するピンを設定する「CPSCH」レジスタがありました。このCPSCHレジスタを使用して、調べたいタッチスイッチを順番に測定を繰り返すことにより、複数のタッチスイッチを扱います。
例えば、PIC12F1822の7番ピンと6番ピンにタッチセンサを2個接続した場合は、以下のアルゴリズムでタッチ判定をします。
タッチスイッチの個数を増やした場合は、このように各ピンのタッチ状態をCPSCHレジスタで測定するピンを指定しながら順番に調べていきます。
アプリケーションノート
Microchip社はPICマイコン本体のデータシート以外に、PICマイコンの持つ機能の応用例などを「アプリケーションノート」という形で紹介しています。
「アプリケーション」というと、PCで動作するソフトウエアのことをすぐに連想してしまいますが、「アプリケーションノート」という場合の「アプリケーション」は「利用方法」などの意味になります。電子部品のデータシートでも、「Application」というタイトルの章や項目がありますが、この場合も「利用例」のような意味になります。
なお、Applicationを辞書で調べると最初に出てく意味は、「アプリケーションソフトウエア」でもなく「利用法」でもありませんので、この際ぜひApplicationの意味を調べてみてください。
タッチセンサについてはMicrochip社からアプリケーションノートがリリースされています。
以下のドキュメントは、mTouchの一般的な使い方と、実際に製品を開発する際に使用できるライブラリやユーティリティソフトの説明がされています。
mTouch Sensing Solution User’s Guide(PDFファイル)
以下のドキュメントでは、タッチスイッチの物理形状や配置など、タッチスイッチを実装する際の具体的な情報がまとめられています。
Layout and Physical Design Guidelines for Capacitive Sensing (AN1102) (PDFファイル)
以下のドキュメントでは、複数のタッチスイッチを実装する場合の情報がまとめられています。
Capacitive Multibutton Configurations (AN1104) (PDFファイル)
最近のPICマイコンのタッチセンサ
タッチセンサの実装はPIC12F1822の「Capacitive Sensor」というモジュールを使用しました。ところで、最近のPICマイコンのデータシートを見ると1ページ目の機能概要説明のところに「Capacitive Sensor」という項目がないものが多いです。
そのようなPICマイコンは、タッチセンサ専用のモジュールを持っていませんが、タッチセンサ機能は実装可能です。Capacitive Sensorモジュールを使用する代わりに、ほとんどのPICマイコンが持っている「ADコンバータ」を利用してタッチセンサ機能を実現するようになっています。
「ADコンバータ」を利用したタッチセンサ実装は、雑音の除去などかなり高度なテクニックが必要とのことで、Microchip社は、自分でプログラムを組むのではなくMCC(Microchip Code Configurator)を利用してください、と案内しています。
ということで、この応用編の最後に、この「MCC」とは何かについて簡単に説明したいと思います。
更新履歴
日付 | 内容 |
---|---|
2017.11.17 | 新規投稿 |