Управление индикацией
Скачать 1.95 Mb.
|
Сенсорный ввод (Touch Screen) В сенсорных экранах используются различные принципы реакции на нажа- тие/прикосновение — резистивный, емкостный, волновой и др. С устройством и другими подробностями предлагается ознакомиться самостоятельно по многочисленным публикаци- ям в Интернете. Для взаимодействия с такими устройствами ввода всегда используется спе- циализированный контроллер: в некоторых модификациях процессоров он является встро- енным, но, как правило, учитывая разнообразие сенсорных устройств, реализуется в виде от- дельной микросхемы или монтируется вместе с контроллером собственно дисплея. Контрол- лер обычно имеет один из стандартных интерфейсов (SPI или I 2 C), по которому в главный процессор передаются состояние сенсорной панели и координаты точки, на которую про- изошло воздействие [5]. Пример реальной схемы сопряжения с дисплеем приведен на рис. 8. Рис. 8. Для передачи данных в дисплей используется интерфейс SPI. Содержит основные сиг- налы SPI_SCK / SCK (тактовые импульсы), SPI_MOSI / DIN (данные из микроконтроллера в дисплей). Чтение информация из дисплея в большинстве случаев не требуется, поэтому со- ответствующая линия данных (SPI_MISO) не задействована. Сигнал выбора SPI_NSS / CS при подключении к интерфейсу только одного устройства также может быть исключен. В передаваемой от микроконтроллера информации требуется разделение на команды и видео- данные. Такую селекцию можно осуществлять, добавляя в передаваемый байт дополнитель- ный командный бит или используя дополнительный аппаратный сигнал D/C#, который в микроконтроллере может быть получен с одного из разрядов порта общего назначения. Сиг- нал RESET необходим для начальной установки устройства после его включения, перед по- 6 ЦУМП, Практические занятия, © МИРЭА, А.Н.Богаченков вторной инициализацией, в случае каких-либо сбоев, его в принципе можно совместить с од- ноименным сигналом самого микроконтроллера, но более гибкое решение — выдавать про- граммно с разряда порта. Дисплеи с TFT матрицей требуют дополнительной подсветки, необходимое для этого напряжение подводится к выводам LED+, LED-. Регулирования яркости подсветки обычно производится посредством широтно-импульсной модуляции питающего напряжения (тока), что удобно осуществлять с помощью выходного сигнала от таймера микроконтроллера. От контроллера сенсорной панели поступает небольшой объем информации: код состо- яния, координата X (в пикселах), координата Y (в пикселах). Для такого объема достаточно возможностей любого медленного интерфейса, поэтому чаще всего используется I 2 C. Поми- мо двух коммуникационных сигналов: тактирования SCL и данных SDA, контроллер имеет сигнал сброса RESET, и дополнительный сигнал запроса прерывания — поступает от кон- троллера панели при касании экрана, изменении координаты точки. Графические библиотеки Для вывода на дисплей можно самостоятельно написать необходимые функции, но в данном направлении существует большое число наработок, поэтому оптимальным выбором для графических построений является использование готовых библиотек. В таких библиоте- ках по минимуму реализовано: построение графических примитивов (линий, прямоугольни- ков, окружностей и тому подобных геометрических объектов), заливка цветом, вывод раст- ровых изображений, текстовой вывод с использованием различных шрифтов и др. В более сложных библиотеках предусмотрена работа с двух-/трехмерными объектами, их наложение, градиентная раскраска, масштабирование, повороты и многое другое. Для микроконтроллеров существует большое число готовых библиотек, часто они ори- ентированы и оптимизированы для работы с определенными семействами, например, для STM32 производитель рекомендует библиотеки STemWin, TouchGFX, Embedded wizard [6]. Распространены универсальные библиотеки uGFX, MakiseGUI, u8glib, Adafruit-GFX и дру- гие. Какие-то из них являются свободно распространяемыми, какие-то лицензируемыми. Обычно в библиотеке выделяется 3 части: 1. Аппаратный интерфейс — специфичен для определенного семейства процессоров, для определенного типа дисплея. В библиотеках невозможно предусмотреть все возможные варианты аппаратных средств, поэтому данные вопросы пользователю возможно придется решать самостоятельно, основываясь на технических описаниях и примерах для других ана- логичных устройств. 2. Графические операции, специфичные для данного типа дисплея (контроллера дис- плея). Сюда входят: порядок начальной инициализации дисплея, управление рядом парамет- ров дисплея (яркостью, контрастностью, цветопередачей, слоями, энергосбережением и т.п.), вывод на экран точки с заданными координатами и цветом, построение вертикальной и гори- зонтальной линий. В некоторых контроллерах на аппаратном уровне заложены и более сложные операции, например, построение отдельных фигур, закраска, сглаживание и др. Эти возможности всегда приводятся в документации на дисплей обычно с примерами на различ- ных языках программирования. 3. Графический интерфейс пользователя (GUI). Универсальная и самая большая часть библиотеки для реализации разнообразных графических эффектов. Этот интерфейс взаимо- действует с любыми типами устройств графического вывода, вызывая функции, объявлен- ные во 2 части. Функции графических построений в разных библиотеках могут называться по-разному. Вот некоторые из них: 7 ЦУМП, Практические занятия, © МИРЭА, А.Н.Богаченков //Построение одного пиксела void DrawPixel(int16_t xpos, int16_t ypos, uint32_t color); //Построение линии void DrawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint32_t color); //Построение окружности void DrawCircle(int16_t x0, int16_t y0, int16_t radius, uint32_t color); //Структура координат прямоугольника typedef struct { int16_t left; int16_t top; int16_t right; int16_t bottom; } RECT; //Построение прямоугольника void DrawRect(RECT* rect, uint32_t color); //Построение закрашенного прямоугольника void FillRect(RECT* rect, uint32_t color); Список литературы 1. Гавриков В. TFT-дисплеи Winstar: новинки, характеристики и особенности подклю- чения [Электронный ресурс] // Новости электроники, 2017, № 11, 22 декабря 2017. URL: https://www.compel.ru/lib/87496 2. Внешние интерфейсы TFT панелей. Часть I. Параллельный интерфейс и TMDS [Электронный ресурс] // URL: http://www.mirpu.ru/lcd/75-shtmatrcnics/118-interftftp1.html 3. Дмитриев А. STM32 + современный TFT-дисплей: варианты на любой вкус [Элек- тронный ресурс] // Новости электроники, 2018, № 1, 15 января 2018. URL: https://www.compel.ru/lib/88474 4. Внешние интерфейсы TFT панелей. Часть II. LVDS [Электронный ресурс] // URL: http://www.mirpu.ru/lcd/75-shtmatrcnics/119-interftftp2.html 5. Штрапенин Г., Мишан М. Интегральные контроллеры сенсорных экранов Texas In- struments // Компоненты и технологии, 2007, № 9. URL: https://www.kit-e.ru/assets/files/pdf/2007_09_64.pdf 6. Разработка графических устройств на STM32. Выбираем графическую библиотеку // Новости электроники, 2018, № 10, 23 октября 2018. URL: https://www.compel.ru/lib/94730 |