микроконтроллеры от ведущих мировых производителей

В предыдущей статье «Особенности TFT-дисплеев серии uxTouch компании Riverdi» было рассказано о серии дисплеев uxTouch компании Riverd. Особенностью этой серии дисплеев является то, что защитное стекло емкостного сенсорного экрана выполняет роли несущего элемента дисплея и внешнего декоративного оформления. Кроме серийных вариантов изготовления дисплеев uxTouch доступна возможность заказного оформления защитного стекла под требования конкретного проекта. Возможны варианты заказного исполнения цвета окантовки, нанесения логотипа и добавления окон под индикацию, а также добавление дополнительных сенсорных элементов. О возможности добавления дополнительных кнопок, использовании данной технологии для изготовления сенсорных клавиатур и работе с ними пойдет речь ниже.

О емкостных сенсорных кнопках, как альтернативе механическим и пленочным клавиатурам, рассказано уже достаточно много. В данной статье будет показан один из возможных вариантов реализации таких кнопок с использованием технологии uxTouch компании Riverdi.

С точки зрения электрической схемы и программы, реализация емкостных сенсорных кнопок не составляет особой проблемы. Основные ведущие производители микросхем для таких приложений предлагают программные средства и подробные рекомендации по проектированию. Например, компания Microchip предлагает широкую линейку микросхем (http://www.microchip.com/design-centers/capacitive-touch-sensing/1d-touch). Она включает в себя, как специализированные микросхемы для управления емкостными кнопками, так и микроконтроллеры с интегрированными контроллерами сенсорных клавиатур. Сюда относятся и микросхемы Atmel, пополнившие линейку Microchip после слияния компаний.     

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

Рисунок 1

Альтернативным вариантом реализации сенсорной клавиатуры может быть технология uxTouch. Рассмотрим варианты, которые могут быть реализованы с ее помощью.

Первый вариант показан на рисунке 2 - это дисплей uxTouch 4,3” с дополнительными сенсорными кнопками. На данном дисплее реализованы три отдельных емкостных сенсорных кнопки, обработку которых, например, можно реализовать с помощью блока PTC (Peripheral Touch Controller) микроконтроллеров или специализированных микросхем серии QTouch Microchip (Atmel). В конце статьи кратко покажем пример работы с этими кнопками с помощью блока PTC микроконтроллера SAM D21. Реализация сенсорных элементов образующих кнопки показана на рисунке 3. Эти сенсоры могут быть выполнены, как дополнительные элементы сенсорной панели. 

Рисунок 2

Рисунок 3

Вторым вариантом реализации элементов сенсорного интерфейса может выступать штатный емкостной сенсорный экран дисплея и его контроллер. В обычном режиме контроллер обрабатывает область сенсорного экрана, соответствующую размерам активной видимой области экрана дисплея и его разрешению. Если по периметру экрана дисплея предполагается размещение сенсорных кнопок, то активную область сенсорного экрана можно увеличить таким образом, чтобы перекрывать и эти дополнительные элементы.

С точки зрения выбора варианта реализации дополнительных кнопок главным моментом будет являться, какой вариант дисплея будет выбран в качестве базового. Компания Riverdi предлагает три основных типа дисплеев: без контроллера (интерфейсы RGB/LVDS), с контроллером SSD1963 и с контроллерами FT8xx. Для первых двух типов дисплеев имеет смысл рассматривать второй вариант, когда дополнительные сенсорные элементы обрабатываются штатным контроллером сенсорного экрана. В случае использования дисплеев с контроллерами FTDI, как в представленном выше образце (рис.2), ситуация другая. Эти графические контроллеры самостоятельно обрабатывают информацию, полученную от контроллера емкостного сенсорного экрана. Они самостоятельно обрабатывают координаты, могут сразу привязать их к графическим элементам на экране, осуществляют калибровку в соответствии с параметрами дисплея. Такой алгоритм работы препятствует обработке области сенсорного экрана, выходящего за рамки активной области дисплея. Отключение этих возможностей FT8xx или подключение контроллера сенсорного экрана напрямую к микроконтроллеру дает возможность работать и с дополнительной областью сенсора, но при этом мы лишаемся всей аппаратной обработки реакций сенсорного экрана, заложенной в микросхемах FT8xx. Кроме того, в серии контроллеров FT80x в режиме Power Down нет возможности перейти в активный режим при касании сенсора (в серии FT81x такая возможность есть) и использование отдельных сенсорных кнопок может помочь обойти данное ограничение.  

Описанные выше варианты добавления дополнительных сенсорных элементов на панели дисплея можно использовать и при создании панелей с сенсорными кнопками без дисплея. Технология uxTouch может позволить реализовать конструктивно законченное и оформленное решение. Для реализации сенсорных элементов подойдут оба варианта изготовления сенсора, представленные выше. В таких приложениях выбор типа реализации, в первую очередь, будет зависеть от количества элементов интерфейса. Например, нам нужен “телефонный” набор кнопок 3х4 – в этом случае более дешевым вариантом будет реализация на базе готового сенсорного экрана. В активной области сенсора будут нанесены изображения требуемых кнопок. Это будет полностью готовая реализация сенсорной клавиатуры с уже встроенным и настроенным контроллером, общение с которым осуществляется по интерфейсу IIC. В рабочей программе останется принять координаты места касания и привязать их конкретным кнопкам. Если требуется малое количество кнопок, то будет проще выполнить отдельный сенсор, например, по технологии QTouch и обрабатывать его у себя на микроконтроллере. Главным минусом технологии uxTouch при сравнении со стандартной реализацией сенсорных кнопок будет то, что в корпусе прибора должно быть предусмотрено посадочное отверстие. При стандартной реализации плата с сенсорами может быть установлена с внутренней стороны корпуса, а с внешней декоративная пленка. При таком подходе никаких отверстий в корпусе не требуется. С другой стороны, в случае металлического корпуса внутренняя установка платы с сенсорами не допускается, а установка в отверстие клавиатуры, выполненной по технологии uxTouch возможна.

В завершение статьи покажем основные шаги при создании программы обработки емкостных сенсоров для микроконтроллера SAM D21 с помощью специализированных средств среды разработки Atmel Studio. Для создания проекта откроем вкладку QTouch Start page (рис.4). В основной части вкладки приведены все поддерживаемые микросхемами Microchip (Atmel) варианты реализации сенсорных интерфейсов и документация на них.

Рисунок 4

В левом верхнем углу нам доступны три пункта: создание нового проекта; загрузить готовый пример; вызов анализатора. Выбираем новый проект, в открывшемся окне (рис.5) задаем имя проекта, выбираем папку для его сохранения и указываем тип проекта – QTouch Executable. 

Рисунок 5

По нажатию “ОК” откроется окно мастера конфигурации блока PTC – QTouch Project Builder (рис. 6).

Рисунок 6

В первых трех вкладках задается количество сенсорных элементов, их тип, привязка к выводам выбранного микроконтроллера. Во вкладке “Debug Interface Setup” к проекту подключается интерфейс для работы со встроенным анализатором “QTouch Analyzer”. Эта опция полезна на этапе отладки сенсорного интерфейса, базовые функции ее покажем далее. При использовании отладочной платы SAM D21 Xplained нужно выбрать опцию “Enable QDebug Interface”, назначение выводов микроконтроллера оставляем по умолчанию. Параметры в двух предпоследних вкладках в данном примере оставлены по умолчанию. Они отвечают за настройку дополнительных параметров работы блока PTC. В любом случае, после первичного анализа работы блока PTC с конкретной реализацией сенсорных элементов всегда требуется подстройка тех или иных параметров. В последней вкладке “Project Generation” дается сводка выбранных настроек. В этой же вкладке мы подтверждаем выбор заданных параметров и генерируем проект нажатием кнопки “Project Generation”. Архив итогового проекта можно скачать по ссылке [1]. В данном проекте реализован простой пример, который отслеживает, какая из трех сенсорных кнопок была нажата и, соответственно, меняет цвет экрана дисплея. Часть, касающаяся работы с дисплеем с контроллером FT8xx, была описана в статьях [2,3].

Проект создан, программа обработки написана, теперь можно оценить работу блока PTC с нашими кнопками, и при необходимости, подкорректировать ее. Запускаем анализатор, подключаем нашу плату кнопкой “Connect” и запускаем кнопкой “Start Reading” (рис. 7). 

Рисунок 7

В анализаторе доступны следующие окна: окно с внешним видом наших кнопок – показывает, какой элемент активен в данный момент (Virtual Kit View); окно с информацией от блока PTC, которая представляется в графическом (Graph View) или табличном видах (Tabular View); окно с параметрами обработки (Kit/Sensors Properties). Выбираем табличный вид представления информации, как более наглядный на наш взгляд. В таблице мы видим все используемые в проекте кнопки и их текущие параметры: Reference – базовое значение сигнала от сенсора без внешнего воздействия, определяется блоком PTC автоматически; Signal – уровень сигнала + шумы; Delta – разница между базовым значением и сигналом. Назначение остальных параметров очевидно из их названия. При нажатии кнопки (рис. 8) мы можем оценить разницу между базовым значением сигнала и реакцией на касание.

Рисунок 8

Сенсор считается сработавшим, если полезный сигнал превысил порог. Пороги задаются для каждого элемента индивидуально в окне “Kit/Sensors Properties”. В этом окне могут быть изменены и другие параметры, индивидуальные для каждого сенсора и общие для всего блока PTC, их назначение можно найти в фирменной документации. После изменения параметров обработки их новые значения могут быть сразу же загружены в работающий микроконтроллер без перекомпиляции проекта. При изменении параметров в данном окне они также заменяются в проекте. В нашем примере были изменены только пороги срабатывания сенсоров, установлены в значение 50 для всех трех сенсоров. Этого было достаточно, чтобы не было ложных срабатываний и четко отрабатывалось касание. Само собой, что итоговые настройки блока PTC надо проводить в полностью собранном приборе, в зависимости от конструкции которого они могут существенно отличаться от того, что мы видим при работе “на столе”.

Материалы:

3. Архив с проектом: http://mymcu.ru/storage/content/files/ftdi/QTEXTENSION_PROJECT.rar      

4. Долгушин С. “Графический контроллер EVE FT800 FTDI и микроконтроллер SAMD21 Atmel. Работаем с графическими изображениями. Часть1”, http://mymcu.ru/content/devtools/FTDI/FT800_SAMD21.pdf

5.  Долгушин С. “ Графический контроллер FT800 FTDI и микроконтроллер SAMD21 Atmel. Часть 2”, http://mymcu.ru/content/files/ftdi/FT800_SAMD21_p2.pdf