Управление Освещением Офиса Через Wi-Fi. Часть 2. Технология Q-Touch

Мы продолжаем нашу амбициозную программу «Hello, World!» на плате разработки Atmel SAMD21 Xplained, начатой в первая часть , в котором описана работа с Wi-Fi модулем WINC1500. Сегодня мы продемонстрируем пример обработки сенсорных кнопок и слайдера с помощью библиотеки Q-touch. В третьей части серии, как и было обещано, данные с этих датчиков будут «упакованы» в пакет ModBus TCP и переданы по Wi-Fi в систему управления освещением нашего офиса.

Для начала давайте разберемся, что это за Q-touch. Это реализация Atmel технологии обработки сенсорных резистивных кнопок и ползунков, сопровождаемая библиотекой для упрощения работы с ними.

Более того, все микроконтроллеры SAMD реализуют аппаратный контроллер Q-touch (так называемый периферийный сенсорный контроллер (PTC)).

Это позволяет как минимизировать количество используемых выводов микроконтроллера, так и нагрузку на вычислительное ядро.

В качестве датчиков будем использовать модуль расширения ATQT1-XPRO , который, как говорилось в предыдущей статье, можно установить на любую макетную плату из серии Xplained Pro. Технология Qtouch поддерживает следующие типы датчиков: кнопки, ползунки, роторы и датчики приближения.



Управление освещением офиса через Wi-Fi. Часть 2. Технология Q-touch



Технологии Qtouch и QMatrix

QTouch основан на измерении собственной емкости, а QMatrix — на измерении совместной.

Измерение собственной емкости включает зарядку чувствительного электрода неизвестной емкости до известного потенциала.

Полученный заряд передается в измерительную цепь.

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

Измерение с использованием совместной емкости проводится с помощью двух электродов.

Один из электродов выполняет роль эмиттера, на который поступает заряд, который передается логическими импульсами в последовательном (пакетном) режиме.

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

Когда палец касается панели, поле сустава уменьшается и прикосновение распознается.

Qtouch QMatrix
Собственные мощности Общая емкость
Надежная и простая конструкция электродов Четко определенная зона обнаружения давления
Идеально подходит для небольшого количества датчиков Идеально подходит для большого количества датчиков (более 10)
Хорошее обнаружение близости на больших расстояниях Хорошо адаптирован к влажности и окружающей среде.

Теоретически возможна любая форма электрода.

Пассивное отслеживание – возможны более длинные пути
Легко настроить чувствительность Хорошо адаптирован к шуму и шуму земли.

Контроллеры серий SAMD20 и 21 имеют встроенную технологию QTouch/QMatrix. За это отвечает специальный блок — периферийный сенсорный контроллер (PTC).

Схема работы всей системы представлена на рисунке ниже.



Управление освещением офиса через Wi-Fi. Часть 2. Технология Q-touch



Создать проект

Для освоения новой периферии очень удобно использовать примеры проектов.

А для QTouch есть еще специальный плагин QTouch Composer, который делает разработку визуальной.

Но если вам нужно интегрировать сенсорные кнопки в существующий проект, вам необходимо понимать всю последовательность действий и настроек.

Теперь давайте сделаем это.

Общая схема работы библиотеки представлена на структурной схеме:

Управление освещением офиса через Wi-Fi. Часть 2. Технология Q-touch

Добавляем его в проект с помощью мастера PTC и RTC. Конфигурация настраивается в файле touch_config_samd.h. Пройдемся по основным параметрам.

Для начала нужно выбрать способ обнаружения касаний: своя емкость или общая.

Выбор осуществляется установкой значений соответствующих констант.

  
  
   

#define DEF_TOUCH_MUTLCAP (1u) #define DEF_TOUCH_SELFCAP (0u)

Приоритет прерываний от ПТК-контроллера о завершении преобразования может иметь значения от 0 до 3 (0 — высший приоритет).

И установил с помощью define:

#define DEF_TOUCH_PTC_ISR_LVL (1u)

Как уже говорилось выше, для обнаружения касания по общей емкости необходимы две линии: X и Y. У samd21 имеется 16 линий X и Y. В этом случае (при помощи отладки с платой расширения) у нас нет выбора, какая из них пара линий идет к тому, какая кнопка/ползунок/запускает ротор.

Порядок указания пар контактов определяет номера каналов.

Для ротора/слайдера обязательно используйте одну и ту же линию Y для всех каналов.

Линии задаются с использованием соответствующего определения:

#define DEF_MUTLCAP_NODES X(8), Y(10), X(9), Y(10), X(2), Y(12), X(3), Y(12), \

Теги: #Atmel #samd21 #cortex-m0 #cortex-m0 #arm #Q-touch #Программирование микроконтроллеров #Разработка для Интернета вещей

Вместе с данным постом часто просматривают: