名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

PICでタッチSWを製作

1.やりたいこと
タッチSWを使ったおもちゃで、センサICが故障している場合にPICで換装する。
どんなおもちゃに応用するのか決まっている訳ではないので、いろんなパターンを用意しておきたい。
mTouch搭載のPICを使うと容易にタッチSWが実現できる。8chは16F1823、16chは16F1939が比較的廉価にできる。
mTouch非搭載のPICでもタッチSWを実現する。6chは16F54、16chは16F57が比較的廉価にできる。

2.回路構成
【16F54で6ch実装】
PICでタッチSW回路図54
静電容量検出用の発振器は外付けする必要がある。性能は求められないので簡易で廉価にできるものとして、シュミットトリガインバータ1個でCR発振器を組む。74AC14を使ったのは秋月で安く販売されていたからであり、他に理由はない。
コストは16F54@60円(2016年9月秋月)、20MHzクリスタル@10円(2016年9月aitendo)、74AC14@10円(2016年9月秋月)、15pFセラミ@0.7円(2016年9月秋月)×8個、470kΩ@1円(2016年9月秋月)×6個、10kΩ@1円(2016年9月秋月)×6個。

【16F57で16ch実装】
PICでタッチSW回路図57
コストは16F57@60円(2016年9月秋月)、20MHzクリスタル@10円(2016年9月aitendo)、74AC14@10円(2016年9月秋月)×3個、15pFセラミ@0.7円(2016年9月秋月)×18個、470kΩ@1円(2016年9月秋月)×16個、10kΩ@1円(2016年9月秋月)×16個。

【16F1823で8ch実装】
PICでタッチSW回路図1823
静電容量検出に関しては外付け部品が全く必要ない。PICとタッチパッドだけで構成できる。
コストは16F1823(@100円2016年9月秋月)。

【16F1939で16ch実装】
PICでタッチSW回路図1939
コストは16F1939@220円(2016年9月秋月)。

3.タッチ検出の仕組み
mTouch搭載、非搭載ともタッチ検出の仕組みは同じで、CR発振器のCに対して人体が触れることで容量負荷が大きくなり、発振周波数が低下する。その変化を捉えてタッチを検出する。

【mTouch搭載デバイスの場合】
1個の内蔵発振器をアナログマルチプレクサで複数のピンに出し、複数chのタッチSWを機能させている。

【mTouch非搭載デバイスの場合】
外付けの発振器を用意して、PICのピンに入れる。アナログマルチプレクサを外付けするとコスト高になってしまうので、必要ch数分の発振器を用意して、それと1対1に対応付けたピンに入力する。

発振器を構成するインバータの入力ピンにビニル被覆のリード線を付けて、指先で被覆の上からリード線に軽くタッチすると発振周波数が10%くらい下がる。押さえ気味に強くタッチすると20%くらい下がる。

4.設計の要点
個体差や環境変化によるドリフトに自動的に追随するために、測定した周波数サンプルの過去16回分の平均値を基準値とする。
測定値<基準値のときはタッチ、測定値>=基準値のときは非タッチと判定する。

測定値が基準値近辺ではタッチ判定と非タッチ判定がバタ付くので、これを避けるために2つのヒステリシス特性を持たせる。

・レベル的なヒステリシス
非タッチからタッチへの状態遷移は、測定サンプルが (基準値×63/64) より下がったときとする。
タッチから非タッチへの状態遷移は、サンプルが基準値以上になったときとする。
mTouch非搭載デバイスでは上記の通り、ヒステリシス幅は1/64とするが、mTouch搭載デバイスではヒステリシス幅は1/128として、検出感度を上げている。

・時間的なヒステリシス
タッチ判定のときは直ちに結果に反映するが、非タッチ判定は、それが3サンプル以上継続しないと結果に反映しない。
16F54ではSRAM容量が小さいため管理データを設けることができず、この機能を実装することができなかった。

mTouch非搭載デバイスで、外付けのインバータを同時に稼働させると相互に影響しあって正しくタッチ判定ができなかった。
そのため、同時には1個のみを発振させて、複数のchをラウンドロビンに測定することにした。
PICのポートを出力モードに設定することで、発振を止める。ポート出力とインバータ出力がぶつかるので10KΩの抵抗を挿入している。

タッチSWの判定結果は、2線式同期シリアル通信でホストマイコンへ送る。データ送信中を示すための信号を加えて、全体で3信号線とする。なお、ホストマイコンとのインタフェースは本記事のテーマではない。

設計の詳細はダウンロード資料を参照

5.ファームウェア
16F54はSRAMが25バイトしかなく、6ch分の管理情報しか持てなかった。74AC14の素子数と一致して都合がよい。
初めはC言語で書いてみたのだが16F54の場合で3ch分しか収まらなかったので、アセンブラに替えた。

16F57もSRAMのエリアが複数のバンクに分断されていて、C言語では16ch分の管理データを配列で配置することができず、これもアセンブラとなった。

16F1823と16F1939はC言語での開発ができた。アセンブラに比べて簡潔で見通しのよいソースコードに仕上がった。

設計資料と開発プロジェクトは ここから ダウンロードできる。

6.実測信号波形
【74AC14の発振波形】
タッチしていないときは約190kHzで発振している。
PICでタッチSWOSC波形

タッチしたときは約160kHzに低下している。
PICでタッチSW74AC14発振波形タッチ時

その他の信号波形はダウンロード資料を参照
スポンサーサイト
  1. 2016/09/29(木) 09:47:11|
  2. 製作記事
  3. | コメント:0
<<タッチレジスターの修理(センサーマイコン換装) | ホーム | ラジコンRASTAR社の修理(超再生・デコーダ不良)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

本ブログで公開している技術情報や成果物のご利用および再配布はフリーです。読者様の技術活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。

最新記事

最新コメント

月別アーカイブ

カテゴリ

おもちゃ病院 (7)
技術情報 (9)
修理事例 (141)
製作記事 (74)
ドクター研修会 (2)
PIC開発 (9)
未分類 (8)

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR