PSoC Курс: 4. CapSence

В цій частині я опишу як використовувати сенсорні кнопки, і як приклад використання буде зміна кольору світлодіоду в залежності від положення пальця на сенсорному повзунку.

Робота із сенсорними кнопками побудована на технології CapSence, що дозволяє створювати пристрої з мінімальним використанням зовнішніх компонентів. Ця технологія призначена для заміни механічних кнопок в пристроях, цим самим зробити систему надійнішою та покращити дизайн пристроїв. Для роботи з сенсорними кнопками є компонент CapSence CSD.

Cypress’s CapSense® technology consists of the Capacitive Sigma Delta (CSD) sensing algorithm, which provides capacitive sensing using a switched capacitor technique with a delta-sigma modulator that converts the sensing current to a digital code. This patented algorithm provides high sensitivity to ensure accurate touch in noisy environments, proximity distances of up to 30 cm, and allows for fast scan times.  Cypress has also developed the SmartSense™ Auto-tuning algorithm, which provides robust noise immunity and adaptation to changing environments, without the need for manual tuning.

Для цього прикладу використана плата CY8CKIT-042 PSoC 4 Pioneer Kit  (також можуть бути використані інші плати що містять CapSence, наприклад CY8CKIT-145-40XX PSoC® 4000S CapSense Prototyping Kit ).

Практична частина

Процес створення проекту описано в попередніх частинах, тому не буду зупинятись на ньому. Створюємо проект для PSoC 4200. На TopDesign добавимо компоненти: CapSence CSD, PWM, Clock та два Digital Output Pin. Перейменуємо Clock в CLK, PWM в LED_CONTROLDigital Output Pin в LED_RED та LED_GREEN, також добавимо Off-chip компоненти інформативності. Вийде наступна схема:

Налаштування компонентів:

  • Digital Output Pin та CLK (12MHz): налаштування  залишаємо  без змін.
  • CapSence CSD: налаштування на вкладці General залишаємо без змін. На вкладці Widgets Config додаємо лінійний слайдер (Add linear slider – > Linear sliders):

Параметр “API Resolution” визначає діапазон в якому буде змінюватись значення повзунка, в нашому випадку від 0 до 100, також залишаємо всі параметри без змін. На цьому налаштування CapSence CSD завершено.

  • PWM(LED_CONTROL): На платі використовується RGB світлодіод, тому зміна яскравості кожного вбудованого світлодіоду, змінює загальний колір. Налаштуємо PWM компонет для керування двома світлодіодами таким чином, що вихідний сигнал на кожному каналі буде в протифазі, це дозволить встановленням 0 – задавати яскравість одного світлодіоду 0%, а іншого 100% і навпаки. Для цього потрібно встановити параметр CMP Type 2 в “Greater”. Оскільки CapSence видаватиме значення в діапазоні 0…100, налаштуємо період PWM також 100 ( значення яке відповідає 100% заповнення імпульсу):

Налаштуємо відповідності між схемою та виводами мікроконтроллера, CapSence підключений до P1[1:5], світлодіоди до P0[2] та P1[6]:

Текст програми:

Алгоритм роботи програми наступний: спочатку робимо ініціалізацію PWM та CapSence компонентів, після цього робимо перше сканування сенсорних кнопок, далі в циклі перевіряємо чи CapSence закінчив свою роботу, якщо так, визначаємо положення пальця на сенсорному повзунку і запускаємо нове сканування, після цього відображаємо позицю пальця на світлодіоді – початкова позиція – червоний колір, середня – жовтий, кінцева – зелений.

В цій статті розглянуто приклад використання стандартних налаштуваннь CapSence. Цей компонент містить велику кількість налаштувань (які не були розглянуті в цій статті). В разі потреби розробник може їх змінювати в залежності від вимог до пристрою( збільшувати/зменшувати чутливість кнопок, та інше).

Демонстрація роботи

Корисні лінки:

  1. PSoC 4 Capacitive Sensing (CapSense® CSD)
  2. Cypress’ CapSense Webinar; Capacitive Sensing Solutions
  3. AN85951 – PSoC® 4 and PSoC Analog Coprocessor CapSense® Design Guide