Monday, May 17, 2010

タッチセンシング

こんにちは、マスラックスの久世です。

僕はこれまで、PICを中心に扱ってきました。「マイコンってどれも同じでしょ(MacかWindowsかみたいな)」って思ってたのですが、最近タッチセンサをリサーチしていて、PICにもタッチセンサソリューションはありますが、他のAVRやPSoCのタッチセンサソリューションのほうが便利そうな気がしたので、少しPICを離れてまずはAVRをやってみました。

AVRの次にPSoCもやってみました。最終的にPSoCを使うことにしたのですが、詳細はつづきから。



AVRのアトメル社は、タッチセンサICなどで定番だったQuantum社と一緒になったので、静電容量のタッチセンシング技術がAVRにも適用されています。

たとえば、AVRでは、3つのタッチセンサをつかって0〜255までの分解能をもつタッチスライダーをつくることができたり、マトリクス状にタッチセンサを配置して少ない配線で多数のタッチボタンをつくることができたり。タッチセンシングには、パターンの形や大きさなどがとても重要な要素なのですが、このあたりを詳細に解説されたPDFがあります。今のところ、PICではこういう解説はありません。

さらに、PSoCではAVRのようなタッチセンシングに技術加えて、もう少し進んだ技術があるように感じました。たとえば、AVRでは1つのICでタッチスライダーをいくつも作ることはできませんが、PSoCは内部設計を変更できるので1つでできます。また、PSoCのタッチ感度を自動で調整する機能(SmartSense)は、PICやAVRの先を行くものだと思います。PSoCにもパターン設計などの詳細な解説PDFがあります。

ということで、今のところの僕の結論は、「静電容量タッチセンシングならPSoCだな」という感じです。

PSoCの「EzI2Cs」というI2C通信するライブラリを使うと、「PSoCはタッチセンシングするEEPROM」みたいに扱うことができるのでとても便利です。タッチセンシングをPSoCに変更したからと言って、メインコントローラをPSoCに変更する必要がないし、タッチセンシングした生のデータをやりとりするのか、オンオフに変換してやりとりするのか、などなど細かいことも、タッチセンシングするPSoC内部でプログラムするだけ。

いままで「マイコンなんてどれも同じでしょ」と思ってきた自分をとても反省。ケースバイケースで使い分けられるように、とりあえず手を動かそう!って思い直しました。

No comments: