電容式タッチ・スリップリング (Capacitive-touch-slip-ring)

Other

概要

このリポジトリは、STM32F1マイコンをコアにした「電容式タッチ・スリップリング(Capacitive-touch-slip-ring)」の実装をまとめたものです。基本原理は、1kHz・50%デューティのPWMを出力し、高レベル期間にADCで同期サンプリングすることで電極の充電挙動を観測し、そこから静電容量の変化(タッチ)を検出するというものです。ハードウェアとソフトウェアの一部はAnalogDragon氏のTouchPad-Demoを参考にしており、本プロジェクトでは回路やソフトを用途に合わせて調整しています。起動時は自動キャリブレーションが働き、校正完了後にブザーで通知する仕組みを持ちます。配布物として3D外殻のファイル、JLCの製造ファイル群、ソースコードが含まれ、実機試作に必要な情報が揃っています。

GitHub

リポジトリの統計情報

  • スター数: 6
  • フォーク数: 0
  • ウォッチャー数: 6
  • コミット数: 9
  • ファイル数: 4
  • メインの言語: 未指定

主な特徴

  • STM32F1を利用したPWM+ADC同期サンプリング方式で電容を測定
  • 起動時に自動校正(キャリブレーション)を行い安定化を図る
  • ハードウェア資料(3D外壳)とJLC向け工程ファイルを同梱
  • AnalogDragonのTouchPad-Demoをベースに改良を実施

技術的なポイント

本プロジェクトの技術的中核は「PWM駆動とADCの同期による容量検出」にあります。具体的にはタイマで1kHz、デューティ比50%のPWMを生成し、電極を高電位に駆動する高レベル期間中にADCで電極電圧をサンプリングします。電極は周辺回路(抵抗や保護回路)とともにRC回路を形成しており、PWMの立ち上がり後に電圧がRCの時定数に従って変化します。サンプリングタイミングを固定すれば、得られる電圧値は電極に接続された静電容量に依存するため、タッチによる容量変化を検出可能です。

この手法の利点は、外付けの高精度発振器や専用キャパシタンスICを使わずにマイコンのタイマとADCだけで比較的簡潔に実現できる点にあります。また、タイマとADCの同期によりサンプリング位置が安定するので、ノイズの影響を低減しやすいという特徴があります。一方で課題も明確です。まず電源ノイズやグランドループ、スパイクに弱いため、PCB設計やシールド、配線の取り回しが結果に大きく影響します。次に環境変動(温度、湿度、近接金属)によるベースライン変化があるため、定期的なキャリブレーションやローパスフィルタ、自己校正アルゴリズムが必要になります。本リポジトリでは電源投入時に校正を行い基準値を取得する実装が入っていますが、継続的な追従を含めた改善余地はあります。

ソフトウェア面では、タイマ割り込みとADCトリガを組み合わせることでサンプリングのジッタを小さく抑えています。タッチ検出アルゴリズムは閾値比較に基づく単純なものから、移動平均や差分検出でデバウンスを行う手法が想定されます。実際のスリップリング用途では、回転機構により伝送系や配線が影響を受けるため、電極の物理配置(例えばガードリングの導入や接地プレーンの工夫)、複数チャンネルの同時計測、差分測定やシールド駆動(driven shield)の導入などで感度と安定性を改善できます。

本プロジェクトはハードウェア部(3D外壳・エンクロージャ)、製造データ(嘉立创/JLC工程文件)、ファームウェア(程序源码)を一式で公開しており、試作から評価、改良までを行いやすくしています。参考元のTouchPad-Demoと比較すると、回路やタイミングの調整、スリップリング用途への機構的配慮が加えられており、回転するアプリケーションでのタッチ検出に向けた実験ベースとして有用です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • 3D外壳文件: dir
  • README.md: file
  • 嘉立创工程文件: dir
  • 程序源码: dir

まとめ

STM32F1のタイマ+ADCで電容式タッチを実装したプロトタイプ集。試作・実験ベースとして有用。

リポジトリ情報: