からくり小箱

アクセスカウンタ

zoom RSS PIC18F14K50を使ったリニアタッチスライダーの製作

<<   作成日時 : 2011/11/13 23:18   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

 前々回に紹介したDCDCコンバータにI2Cスレーブの機能を実装して、外部からの出力電圧の制御と出力電圧を外部から読み出せるようにしました。これらの外部からの制御の実験のために、USBから色々な機能を使えるように考えている(USBガジェット)18F14K50を使ったマイコンボードにI2Cマスタの機能を組み込みました。DCDCコンバータの出力電圧は、USBガジェットに繋いだPC上のターミナルからコマンドを入力することで設定、又は読み出しをすることができるようにしました。このあたりのI2Cインタフェースやターミナルインタフェースのの実装方法は、後日また紹介することにして、今回は、USBガジェットに載せたリニアタッチスライダーについて、紹介します。

 リニアタッチスライダーは、前に書いた、STM32L-DISCOVERYに搭載されており、軽快に動作していることから、これと同様のものをUSBガジェット上でも実現してみました。USBガジェットの18F14K50には、CSMやCTMUのようなタッチセンサ専用の機能は内蔵されていないため、AD変換器があれば、大概のPICで実現できるCVD方式でタッチセンサを実現してみました。

 まず、リニアタッチスライダの心臓部のパッド部分ですが、下記の写真で分かるように、プリント基板用の片面銅箔張基板で、グランドに囲まれた波型の4ピースの電極を作りました。CADでネガを作って感光基板を使えばもっときれいに作れると思いますが、今回は、彫刻刀で直接切り込みを入れて作ってしまいました。

画像


 パッドは銅箔部分に1mmの穴を開け、裏面への引き出し線をはんだ付けしてから約1mm厚のアクリル板をアロンアルファでぴったり貼りつけました。銅箔とアクリル板との間に隙間が空いて空気の層が出来ると誘電率が下がり、静電容量の変化が小さくなってしまうので、隙間が空かないようにします。電極を半田付けした部分は、半田が盛り上がっているので、それに合わせてアクリル板のその位置をドリルでざぐっておきます。

こんな感じです。(アロンアルファを塗ったところが白くなってしまいました)
画像


 4枚の各電極の面積は、静電容量に敏感に影響します。波形を見ながら調整は必要となりますが、こんな出来の物でもそれなりに動くようです。

 CVD方式のタッチセンサの処理は、下記のMicrochip社のドキュメントやソースが参考になります。

 http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en545264

 1mmのアクリル板を通すと、容量の変化によるAD変換器の出力電圧の変化は、かなり少なくなりますので、オーバーサンプリングした値を平均して有効数字を増やしました。今回16回のサンプリングを平均し、有効数字を1桁(2進で)増やしました。これでもグラフを見て貰うと分かりますが、ACノイズ等で波形が乱れています。USBガジェットの電源は、PCのUSBから得ているので、PCをバッテリで動かすと、このノイズはかなり少なくなります。

 パッドの上を指で左から右へ動かした時のAD変換器の出力です。オーバサンプリングによる補間を行い、実際のAD変換器の出力の2倍の数値になっています。各パッドの面積の差などの出来の悪さから、タッチしていない時の容量の差が表れているのが分かると思います。最後の2回は、パッドの下の方を触った場合で、この場合は出力変化が小さくなっています。このように出力変化があった場合でもタッチ位置が正しく分かるようにしなければなりません。

画像


 上記のタッチしていない時のAD変換器の出力の平均値からタッチした時の値を引いてゼロ点を合わせた4つのパッドの出力を左端をゼロ、右端を100として加重平均することで、タッチした位置を0〜100%の値に補間処理します。この出力を以下の図に示します。このタッチ位置の出力は、移動平均処理を行い、ノイズによる揺れを均しています。これをやることにより、押さえた指を動かさないときにもタッチ位置の値が細かく変化することを抑えています。

 図のAD変換出力の数値は、AD変換の基準電圧に内蔵のFVR=2.048Vを使用して、フルスケール10bit=1024を2倍の数値で表しているので、丁度mvの単位になります。そこで、大体真ん中の2つのパッドで最大50〜60mVの変化、両端のパッドでその半分位の変化になっていることが分かります。

画像



 グラフを書いたデータは、USBガジェットの先にUSB経由でPC上のターミナルを繋ぎ採取。EXCELで図を作成しました。
 USBが付いているとこんなデータを取るのに本当に便利です。2輪倒立振子ロボットを作ったときに作った、Prinfを使うための処理をそのまま移植して、printfで必要なデータを出力しています。スライダ位置の出力(赤線)はさすがに少しギザギザしていますが、それなりに(リニアっぽく)変化しているのが分かると思います。


 DCDCコンバータを繋いだときの写真とタッチスライダーで電圧を上げ下げしているYoutubeビデオを以下に載せました。スライダーの一番左を抑えても電球が消灯しないのは、DCDCコンバータのスイッチング動作をやめた時に入力電圧(5V)がそのまま出力に出てくるためです。

画像





テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
PIC18F14K50を使ったリニアタッチスライダーの製作 からくり小箱/BIGLOBEウェブリブログ
文字サイズ:       閉じる