Использование Microchip PICkit 2 Debug Express для создания емкостного сенсорного переключателя на основе технологии mTouch™.

Автор: Marcel Flipse

Введение.

Комплект Microchip PICkit™ 2 Debug Express это комплект из программатора-отладчика PICkit™ 2 и демонстрационной платы. Комплект содержит все необходимое для разработки небольших проектов с нуля. В данной статье описывается разработка емкостного сенсорного переключателя, построенного всего лишь нескольких пассивных компонентах. Переключатель реализован с использованием технологии mTouch™. Компания Microchip предлагает ряд решений построения сенсорных датчиков, пригодных для разных применений, начиная от реализации одной сенсорной кнопки на 6-и выводном микроконтроллере PIC10F, до применения специализированной периферии контроллеров среднего семейства PIC16 и 16-и разрядных PIC24FJ. Предлагаемый пример реализован на контроллере PIC16F887, установленном на плате PICkit™ 2 Debug Express.

Принцип работы технологии mTouch.

Разработанная компанией Microchip технология определения прикосновения mTouch™ основывается на измерении изменения емкости. Многие компании интегрируют в свои приборы емкостное управление для обеспечения эстетичного и профессионального вид их продукции. На рисунке 1 проиллюстрированы основные принципы работы емкостного датчика. Если пользователь подносит палец к емкостному датчику, то он вносит в схему дополнительную емкость. Это изменение емкости детектируется PIC® микроконтроллером с помощью встроенной периферии и программы. Обзор различных вариантов применения технологии mTouch™ был опубликован в журнале «Компоненты и Технологии» №9 за 2008 год (http://gamma.spb.ru/articles.php?i=84). Микроконтроллер PIC16F887, помимо прочего, содержит компаратор и RS-триггер. Технология измерения емкости mTouch™ использует емкость сенсора как частотозадающий элемент генератора. Микроконтроллер измеряет частоту генератора, и любое смещение частоты, при прикосновении пользователя, обнаруживается и проверяется программным обеспечением. На рис.1 показана схема генератора для реализации емкостного сенсора.

Рис.1. Принцип действия емкостного сенсора.

RC генератор реализован на двух компараторах и RS триггере, которые управляют зарядом/разрядом емкости сенсора. Конденсатор будет заряжаться и разряжаться со скоростью, определяемой постоянной времени RC-цепочки. Амплитуда генерации ограничивается установленными верхним и нижним порогами компараторов. Верхний порог задается внутренним делителем, а нижний внешним делителем напряжения. Дополнительный конденсатор в цепи делителя подавляет высокочастотные шумы источника питания и стабилизирует напряжение питания нижнего порога. Емкость сенсора будет заряжаться и разряжаться до напряжений, ограниченных порогами. Когда напряжение на емкости сенсора ниже нижнего порога, выход компаратора C2OUT находится в состоянии логической «1» и система заряжает емкость. При заряде напряжение на емкости сенсора растет и при достижении верхнего порога выход компаратора меняет свое состояние на лог. «0», что в свою очередь, приведет к началу разряда конденсатора. При достижении нижнего порога, компаратор 2 сработает вновь и емкость начнет заряжаться снова. Когда напряжение на емкости сенсора находится между порогами, то система помнит последнее состояние (заряд или разряд). Повторяющийся процесс заряда и разряда изображен на рисунке 2.

Рисунок 2. Диаграмма напряжения на емкости сенсора.

Построение схемы.

На основе отладочной платы из комплекта PICkit™ 2 Debug Express можно собрать емкостной датчик за считанные минуты. Автор использовал два SMD резистора и конденсатор для создания делителя напряжения. Компоненты могут быть припаяны к контактным площадкам на макетном поле (см. рис.3.). Кусок провода соединяет среднюю точку делителя с выводом RA2 PIC-контроллера.

Рисунок 3. Делитель напряжения.

Форма емкостной кнопки не очень важна. Размер кнопки определяется проектируемым прибором. Чем больше площадь контактной площадки, тем больше чувствительность датчика. В данном примере используется небольшая монета, но пригодна любая проводящая поверхность (см. рис.4). Резистор (используется 150КОм) определяет частоту переключения генератора. Подойдет любая частота в диапазоне от 100КГц до 400КГц. Точное значение частоты не важно, но более высокая частота даст большую точность измерения.

Рисунок 4. Сенсорная площадка.

Последний шаг это подключение выходной частоты генератора к таймеру «Timer 1», для того, чтобы программа микроконтроллера могла измерять частоту генератора. Так же необходимо соединить вывод RA5/C2OUT к выводу RC0/T1CKI микроконтроллера. Последнее что необходимо, это соединить модуль компаратора с сенсором и резистором. Уберите перемычку R3 с платы Debug Express (отключает потенциометр от вывода RA0).

Программа для микроконтроллера.

Теперь, когда схема собрана, остается сделать последний шаг – написать программу. Программа написана на ассемблере и может быть откомпилирована с использованием бесплатной среды разработки MPLAB IDE. Сначала нужно инициализировать компараторы. Необходимые регистры инициализируются в соответствующей подпрограмме (init). Когда генератор запущен, должна измеряться его частота для детектирования изменения частоты при касании сенсора. Каждое изменение состояния выхода компаратора C2OUT с «0» в «1» будет увеличивать значение таймера «Timer 1» на единицу. Число переключений таймера накапливается за фиксированный временной интервал, для формирования окна накопления используется таймер «Timer 0». В начале измерения таймер обнуляется и начинает считать до 255, после чего происходит его переполнение и выставляется флаг запроса прерывания (вызывается подпрограмма прерывания). В прерывании фиксируется значение «Timer 1» (регистр TMR1) и сравнивается с предыдущим значением. Если новое значение «Timer 1» существенно меньше предыдущего, т.е. увеличилась емкость сенсора, то детектируется факт касания сенсора. Программа зажигает светодиоды, подключенные к порту PORTD. Новое значение «Timer 1» усредняется с бегущим средним значением, которое используется как база для сравнения с измеренным значением в текущем периоде. В конце подпрограммы обработки прерывания, когда все процедуры измерения закончили свою работу, оба таймера («Timer 0» и «Timer 1») обнуляются.

Дополнительная информация

Более подробно технология mTouch описана на сайте компании Microchip: www.microchip.com/mtouch и включает примеры схем, заметки по применению, руководства, web-семинары и презентации, описания отладочных плат, бесплатные библиотеки и ПО для диагностики демонстрационных плат, а так же перечень рекомендованных продуктов. На русском языке о решениях для построения сенсорных клавиатур и датчиков Microchip вы можете ознакомиться в статьях, расположенных на сайте www.gamma.spb.ru

Решения Microchip Teсhnology для реализации сенсорного управления на емкостных датчиках.

Применение модуля измерения времени заряда CTMU.

Доступны несколько отладочных комплекта с различными вариантами реализации технологии mTouch™. Вместе с демонстрационными комплектами PICDEM™ Touch Sense поставляется бесплатное программное обеспечение mTouch Diagnostic tool, которое предоставляет графический интерфейс для анализа и настройки сенсорных решений в реальном времени.

Демонстрационный комплект «PICDEM Touch Sense 1 Development Kit» (номер для заказа DM164125)

DM164125

Этот комплект демонстрирует технологию mTouch, реализующую клавиатуру и слайдер с использованием 8-и разрядных микроконтроллеров PIC16F с компараторами и RS триггером. В комплекте так же поставляется анализатор последовательных протоколов PICkit Serial Analyzer.

Демонстрационный комплект «PICDEM Touch Sense 2 Development Kit» (номер для заказа DM164128)

DM164128

Этот комплект демонстрирует технологию mTouch на базе 16-и разряжных микроконтроллеров PIC24F с интегрированным модулем Измерения Времени Заряда (Charge Time Measurements Unit – CTMU).

Демонстрационный комплект «Capacitive Touch Evaluation Kit» (номер для заказа DM183026)

DM183026

Демонстрационный комплект «Capacitive Touch Evaluation Kit» позволяет оценить реализацию сенсорных кнопок, клавиатур, слайдеров на специализированных модулях CSM и CTMU, интегрированных в микроконтроллеры PIC16F и PIC24FJ.

Комплект содержит:

  • 2 процессорные платы,
  • дочерние платы с различной реализацией емкостных кнопок и слайдеров,
  • анализатор протоколов PICkit Serial Analizer,
  • необходимое программное обеспечение и примеры программ.

Демонстрационный комплект «PIC24F Starter Kit» (номер для заказа DM240011)

Этот комплект включает демонстрационную плату, среду разработки MPLAB® , студенческую версию Си компилятора MPLAB C30 C и все что необходимо для начала разработки приложений с емкостными сенсорными элементами. Недорогая плата из этого комплекта содержит интегрированный внутрисхемный отладчик и программатор, разъемы для использования функций USB-host и USB-device контроллера PIC24FJ, трехцветный светодиод, сенсорные площадки и OLED графический дисплей. Пример программного обеспечения для PIC24F реализует графическое управление элементами схемы через меню, поддерживаются функции работы с USB-Flash накопителями для записи лога данных.


Исходные коды проекта

Исходные коды проекта

Примечание
Проект может быть скомпилирован так же для микроконтроллера PIC16F886 (плата 28pin Demo). Для этого нужно изменить тип контроллера в начале текста программы и в MPLAB IDE
Схема сенсорного переключаеля

Примечание 1
Для микроконтроллера PIC16F886 (плата 28pin Demo), светодиоды подключены к выводам RB0-RB3
Примечание 2
При самостоятельной сборке схемы сенсорного перекючателя не обязательно подключать все 8 светодиодов, достаточно одного :)
Примечание 3
Не обязательно использовать монету в 20 пенсов, подойдет простой отечественный рубль:)

Вариант реализации программы сенсорной кнопки на Си

Краткий How-To по созданию проекта на Си

Дискуссия

Alex, 04/03/2009.18:25

Обратите внимание, что емкостной сенсор будет работать через практически любой диэлектроческий материал: стекло, пластик, дерево и т.д. Процедура подсчета частоты учитывает колебания частоты в зависимости от внешних факторов (температура, влажность и т.д.), т.е. сенсорная кнопка будет работать и на открытом воздухе.

pickit2, 04/03/2009.18:28

Еще нужно добавить что PIC16F887 имеет мультиплексор на входе компараторов - можно легко добавить еще несколько кнопок, в гаммовских статьях есть про мультиплексирование каналов.

Michael SLobodskih, 05/03/2009.22:40

Добавьте плиз к статье схему.

pickit2, 06/03/2009.01:49

По просьбам трудящихся добавлена схема

Павел, 19/08/2009.14:40

Добрый день. А где , и по какой цене можно приобрести это устройство? Спасибо

pickit2, 19/08/2009.16:42

Поясните про какое устройство вы спрашиваете? Комплект программатора-отладчика PICkit2 вместе с демо-платой (на этой плате проводились все эксперименты, описанные в данной статье) можно было купить в рамках акции за 595 рублей. Сейчас можно купить по стандартной цене, адреса указаны в Контактах.

Можно не покупать а спаять самому. Схема выше в статье, программа - в исходных кодах по ссылке чуть выше схемы.

Павел, 20/08/2009.13:37

я мучаюсь выбором :) , поэтому прошу совета. что необходимо, так это сделать сенсорные кнопки в PCCar (компьютер в автомобиле). так как готовые решения компьютеров в автомобиль не устраивают, то сделал все сам. в данный момент, для удобства управления, требуется внедрить несколько кнопок для управления компом, помимо имеющегося тачскрин-монитора. количество кнопок в идеале 6-7 шт. склоняюсь к сенсорным из-за удобства монтажа, так как пространство вокруг монитора ограничено. Надеюсь на Ваши советы. Спасибо.

pickit2, 20/08/2009.14:17

если кнопок более 4-х, то лучше использовать специализированный модуль CSM или CTMU в PIC-ах. Подробнее по использованию см. http://gamma.spb.ru/articles.php?i=84 и http://gamma.spb.ru/articles.php?i=86

Павел, 20/08/2009.21:21

Спасибо, посмотрел. Но дело в том, что эти статьи для разработчиков устройств. Как я понял, готовых решений нет? Меня интересует устройство именно с сенсорными кнопками. Извините за наглость, но может кто-нибудь поможет с разработкой такого устройства, или клавиатуры, или посоветует готовое решение? Потому что в электронике, честно говоря, я полный дуб :(

З.Ы. на промышленные масштабы не претендую. Спасибо.

pickit2, 21/08/2009.10:57

Готовые решения есть, но они же под конкретное ТЗ. У меня, например, дома варочная поверхность и духовка с сенсорными кнопками, но не будете же вы интегрировать их в автомобиль исключительно из-за кнопок :)

проекты/touchsense.txt · Последние изменения: 30/10/2009.22:31 — pickit2
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0