Выпуск 163
- Содержание
- 1) WF0200BTYAJDNG10: 2" IPS TFT с емкостной сенсорной тач панелью
- 2) WF22GN5AB2DNN0: 2.13" Mono TFT с LPRD (Светоотражатель с низким энергопотреблением)
- 3) WF101JSYFHLHBV: 10.1" HDMI IPS TFT LCD с емкостной сенсорной тач панелью
- 4) WL0F00050000FGAAASA01: 5" Smart Display с увеличенной яркостью (CAN интерфейс)
- 5) Полудуплексный интерфейс RS485
WF0200BTYAJDNG10: 2" IPS TFT с емкостной сенсорной тач панелью
WF0200BTYAJDNG10 - это 2'' дюймовый цветной IPS TFT модуль с разрешением 240x320 пикселей. Данная модель работает на базе IC драйвера ST7789VI с поддержкой MCU и SPI интерфейсов. Емкостная сенсорная тач панель (PCAP) имеет встроенный контроллер IC GT911 с поддержкой I2C интерфейса. Данный IPS TFT LCD дисплей обладает яркостью - 400 кд / м2 и контрастом - 800:1 (типичное значение), а также широкими углами обзора: Левый угол: 80 ° / Правый угол: 80 ° / Верх: 80 ° / Низ: 80 ° (типичное значение).
Напряжение питания для дисплея варьируется от 2.4 V до 3.6V (типичное значение 3.3V). В случае если тач панель не требуется, то в нашей стандартной продуктовой линейке имеется версия дисплея без тач панели - WF0200BTYAJDNN0. Также в наличии имеется версия с увеличенной яркостью - WF0200BSYAJDNN0. IPS матрица имеет глянцевый поляризатор. Рабочий температурный диапазон от -20 ℃ до + 70 ℃, температура хранения от -30 ℃ до + 80 ℃.
|
► Link to WF0200BTYAJDNG10 web page
WF22GN5AB2DNN0: 2.13" Mono TFT с рефлективной матрицей
WF22GN5AB2DNN0 - это 2.13'' дюймовый Mono TFT модуль с разрешением 240x320 пикселей и рефлективной матрицей. Данная модель работает на базе IC драйвера ST7306 с поддержкой 8-бит MCU, 3-4 жильного SPI интерфейсов. Особенностью WF22G Mono TFT является рефлективная матрица которая используется в дисплее и обладает рядом преимуществ:
- Низкое энергопотребление
- Четкость изображения при ярком солнечном свете
- Устойчивость к ультрафиолетовому излучению
- Высокая частота обновления, что идеально подходит для отображения динамической информации
- Не имеет подсветки, за счет чего удалось добиться минимальной толщины в 1 мм.
Углы обзора дисплея WF22GN5AB2DNN0 составляют: Левый угол: 65° / Правый угол: 65° / Верх: 65° / Низ: 65° (типичное значение), соотношение сторон - 18:9 Напряжение питания (VDDA) варьируется от 2.55 V до 3.6V (типичное значение 3.3V). Дисплей имеет антибликовый поляризатор. Рабочий температурный диапазон от -20℃ до + 70℃, температура хранения от -30℃ до + 80℃.
WF22GN5AB2DNN0 идеально подходит для применения в электронных ценниках, спортивных устройствах (пример: GPS-трекер для велосипедa), портативных медицинских измерительных устройствах, носимых устройствах, зарядных станциях и т.д.
|
► Link to WF22GN5AB2DNN0 web page
WF101JSYFHLHBV: 10.1" HDMI IPS TFT LCD с емкостной сенсорной тач панелью
WF101JSYFHLHBV - это 10.1” дюймовый HDMI IPS TFT-LCD дисплей с разрешением 1024x600 точек, с емкостной сенсорной тач панелью. Модуль поставляется с платой управления с HDMI интерфейсом (только DVI) и разъемом GPIO с 40-контактным разъемом на плате, который позволяет подключиьбся к Raspberry Pi, а также с любой встроенной системой которая имеет HDMI выход. Данный индикатор имеет IPS матрицу, что позволяет добиться широких углов обзора: Левый угол: 80°/ Правый угол: 80°/ Верх: 80°/ Низ: 80°(типичное значение). WF101JSYFHLHBV обладает яркостью – 950 cd/m2 (типичное значение). Модель имеет глянцевое покрытие, и ландшафтный режим отображения с соотношением сторон 16:9, с контрастом 800:1 (типичное значение). Дисплей имеет 2 встроенных IC драйвера: EK79001HN и EK73215BCGA. Емкостная сенсорная тач панель имеет встроенный контроллер IC ILI2511 с поддержкой USB интерфейса. Напряжение питания дисплея VDD составляет 5V. Рабочий температурный диапазон -20℃ to +70℃, а температура хранения -30℃ to +80℃.
|
► Link to WF101JSYFHLHBV web page
WL0F00050000FGAAASA01: 5" Smart Display с увеличенной яркостью (CAN интерфейс)
WL0F00050000FGAAASA01 – это 5" дюймовый умный TFT дисплей_CAN серии, который определяется как подчиненное устройство (slave device), которым управляет ведущее устройство с помощью команды CAN шины для отображения содержимого экрана на панели и возврата данных о событиях касания с объектами протокола. Данный модуль объединяет в себе стандартный TFT дисплей WF50FSWAGDNG0 и 4–уровневую плату PCBA со встроенным программным обеспечением. Дисплей CAN Series очень прост в использовании, что позволяет быстро и экономически эффективно начать разработку проекта. Наш Smart Display может использоваться на платформах с несколькими хостами (HOST) например: компьютер (с USB2CAN Dongle), MCU, Raspberry Pi (с PiCAN2), Arduino (+ адаптер CAN).
Умные TFT дисплеи_CAN серии поставляются со встроенными стандартными иконками пользовательского интерфейса позволяющими быстро запустить проект. Если нужны индивидуальные иконки, то пожалуйста свяжитесь с нами; отправьте содержимое в формате PNG / JPG и мы поможем создать новый набор объектов пользовательского интерфейса.
Winstar Smart Display Can Series – является идеальным выбором, поскольку данный 5" дюймовый Smart Display обладает множеством особенностей и важных функций:
- 5" WF50FSWAGDNG0 IPS матрица
- Рабочее напряжение DC 5V
- Поддерживает PCAP емкостную сенсорную тач панель.
- CAN интерфейс.
- Поддерживает CAN open протокол (скорость передачи по умолчанию составляет 250 КБ).
- Большое расстояние передачи данных.
- Усиленная противоинтерференционная способность.
- Встроенная флэш–память (16MB) для хранение шрифта и данных словаря объектов.
- Встроенный зуммер управляется с главного устройства.
- Рабочая температура: –30℃~80℃
- Создавайте UI без написания кода с помощью Winstar GUI конструктор! (►сслыка на GUI конструктор «краткое руководство»)
|
► Link to WL0F00050000FGAAASA01 web page
Полудуплексный интерфейс RS485
Кроссплатформенность - концепция методов управления
I. Введение:
Smart Display - это серия дисплеев в сочетании с микроконтроллером, который может выполнять сложную загрузку графики, а также настройку, отображение и даже ввод. Внешнее устройство (т.е. хост) может выполнять интерактивные операции с помощью простых команд, что очень подходит для различных нужд, и широко используется в различных областях, таких как: медицина, промышленность, автомобилестроение и т.д.
Smart Display поддерживает множество коммуникационных интерфейсов, но наиболее распространенными и популярными в настоящее время являются CAN/CANopen и RS485/Modbus. Своей популярностью применения в промышленных устройствах, простотой управления, доступностью и сравнительно недорогой ценой выделяется RS485 интерфейс.
Интерфейс имеет довольно простую структуру, поскольку для передачи и приёма данных требуется одна витая пара (RS485_A/RS485_B) через которую происходит обмен данными с помощью дифференциальных сигналов. Кроме того, протокол Modbus довольно понятен и прост в использовании, поэтому в качестве иллюстрации, в данной статье мы рассмотрим принципы и методику управления RS485/Modbus для создания кросплатформенных приложений.
II. Требуемые компоненты:
Smart Display_RS485
Для проверки требуется Smart Display с поддержкой RS485
RS485 Dongle
Dongle (электронный ключ) на RS685
ХОСТ-устройство
После того как мы подготовим все компоненты, у нас появится возможность выбора среды выполнения тестового стенда в качестве хоста. Единственным требуемым условием является возможность хоста читать и записывать через последовательный порт независимо от ОС: Windows, Mac OS, различные Linux (включая Raspbian для Raspberry Pi) или одноплатный компьютер, Arduino и т. д.
В качестве образца используется одноплатный компьютер (SBC) со встроенным портом RS485, который можно использовать непосредственно в качестве хост-устройства.
III. Проверка интерфейса управления:
Проверка интерфейса управления:
Чтобы понять как связать Smart Display с хостом, прежде всего нам нужно получить код управления, и для этого нам поможет программа GUI Builder. GUI Builder является отличным программным обеспечением для работы со Smart Display, которое позволяет создавать собственный дизайн интерфейса и отображать его без необходимости написания какой-либо программы. С помощью функций данной программы можно создать свой идеальный пользовательский интерфейс путем перетаскивания иконок на дисплей для отображения. Кроме всего прочего, встроенный симулятор и Smart Display используют одинаковый исходный код!
► Contact for Smart Display GUI Builder
Запустите программу GUI Builder в Windows OS и ввведите желаемое имя проекта в строке «Project Name». Если Вы создавали проект ранее, то можно выбрать сохраненный проект нажав на иконку «Open Project» в меню на правой стороне интерфейса. После выбираем иконку Device Type 5’’ TFT, затем нажмите на иконку «Create» для создания нового проекта.
После создания проекта в первую очередь выберите интерфейс
В качестве интерфейса по-умолчанию нужно выбрать RS485. Порт хоста RS485 должен быть установлен как фактический порт для подключения Dongle (электронный ключ). Проверить имя порта можно через диспетчер устройств, а значение Baudrate нужно оставить без изменений - 115200.
Если на руках образца Smart Display RS485 еще нет, то можно запустить GUI Builder в режиме симуляции для изучения возможностей программы.
Кликните Simulator и выберите Simulator with GUI для запуска режима симуляции:
После запуска симулятора Вы увидите экран моделирования, элементы управления каждого объекта и запись данных связи в правой части экрана. Измените значение любого объекта, чтобы увидеть содержимое команды соответствующей объекту.
Каждая операция будет выводить две команды TX/RX, так как устройство отображения отправит обратно ту же подтвержденную команду после получения команды, чтобы сообщить, что она была получена.
Имеется возможность записать несколько разных значений для разных объектов и использовать для управления физическим устройством.
Подключение выводов:
RS485 использует дифференциальную пару для передачи и приема сигналов, и если эти два провода подсоединены, заземляющий провод не требуется. Имя сигнальной линии RS485 — A/B (A соедините A, B соедините B).
Есть две вещи, о которых следует помнить, прежде чем приступать к тестированию.
1. Перед тестированием проверьте имена COM-портов, поскольку в разных операционных системах они различаются.
2. COM-портыв некоторых операционных систем не назначены по умолчанию, и требует предварительной настройки. В качестве примера возьмем Linux/Ubuntu; если имя COM-порта - ttyUSB0, и в терминале нужно назначить права:
sudo chmod 666 /dev/ttyUSB0
Два метода тестирования:
Управление терминалом последовательного порта
Используя терминал последовательного порта, поддерживающего шестнадцатеричный ввод, нужно введисти шестнадцатеричный код управления после подключения:
Если команда выполнена правильно, то можно увидеть, что объекты на устройстве действуют в соответствии с разными кодами управления.
Данный способ используется только для проверки соединения и не очень удобен в практическом применении, и чтобы получить правильный результат, операция должна быть выполнена через программу. Для начала давайте проделаем данную операцию на кроссплатформенном языке программирования python.
Использование Python
Следующие программы выполняются с использованием python3. Требуется записать три набора кодов управления на последовательный порт подавая сигнал каждую секунду.
import serial v000 = bytes.fromhex('7B06000600006251') ser = serial.Serial(COM_PORT, 115200) |
Исходный код Python может выполняться на различных платформах, и если последовательный порт назван правильно, то он должен корректно работать с тестовым стендом.
Однако фиксированные управляющие коды не подходят для практического применения, поэтому для того, чтобы полностью их использовать необходимо понять содержание команд.
IV. Анализ кодов управления
Сравнительный анализ
Сравнение команд с разными значениями для одного и того же объекта:
Значения выделенные синим — это значение установленного нами объекта.
Сравнение разных объектов с одинаковой командой значения
Значения, выделенные синим, относятся к индексу или адресу объекта.
Что касается последних двух байтов данных, то тут вроде правил нет, но что означают эти сообщения?
Анализ кодов управления
На самом деле содержимое этих 8 байт и есть так называемое сообщение Modbus. Таблица с кодовыми обозначениями показана ниже:
ID
Каждое Modbus устройство должно иметь идентификационный код. Идентификационный код Smart Display - 0x7B = 123
Код функции
Код функции указывающий назначение сообщения (например 06) —Запись единого регистра, который также записывает значение в указанное место.
Адрес регистра
Aдрес регистра — это место назначения для записи (то есть адрес объекта)
Данные
Записываемая информация (значение объекта)
Циклический избыточный код
Результат CRC (циклический избыточный код) первых 6 байтов используемый для проверки наличия ошибок в процессе передачи данных.
Do you have some concepts? If you want to know more, you have to look at what Modbus is.
V. Modbus Введение
Протокол Modbus
Протокол Modbus на самом деле является форматом данных, и в основном определяет коммуникационное содержание архитектуры ведущий-ведомый.
Поскольку это только определение структуры данных, она может обмениваться данными через различные физические интерфейсы, такие как RS232, RS422, RS485 и даже через сеть.
Концептуальная модель
Modbus рассматривает передачу данных как доступ к «Регистрации», так как каждое устройство должно определить свой собственный тип регистра и адрес для внешней ссылки. Так называемая передача данных на устройство — это запись в указанный регистр, а чтение данных — это чтение указанного регистра (16-бит).
Код функции
В соответствии с характеристиками данных, Modbus определяет несколько методов чтения и записи определяемых кодом функции в сообщении.
Для управления Smart Display чаще всего используется 06: запись значения единого регистра в указанное место (запись 16-битного значения) и, чтение регистров временного хранения (чтение значения нескольких регистров).
CRC (Циклический избыточный код)
CRC - циклический избыточный код, иногда называемый также контрольным кодом. По своей сути — это просто вычисленное на основе исходного передаваемого сообщения число (или можно сказать код), которое передаётся вместе с самим сообщением (дописывается в конец информационной части) и служит для контроля его безошибочной передачи.
VI. Контроль объектов Smart Display
Каждому Modbus требуется определить тип и адрес регистра, и ниже мы разберем данную тему.
Классификация регистров
Регистры Smart Display можно условно разделить на три категории:
1) Информация об устройстве (версия, имя устройства и т. д.)
Отправить код 04 для чтения входных регистров. Данные будут изменены при обновлении прошивки, при подключении.
2) Свойства объекта (вид, местоположение и т. д.)
Отправить код 03 для чтения регистров временного хранения/16: Запись нескольких регистров для чтения и записи. Эти данные влияют на внешний вид объектов и обычно не меняются вне стадии проектирования. Чтобы изменить содержимое, Smart Display должен быть временно отключен, прежде чем его можно будет обновить.
3) Значения объекта (значения, которые представляет объект, например, число оборотов в минуту, включение или выключение, процент и т. д., варьируются от объекта к объекту).
Данный пункт является основным пунктом изменения в работе и каждый элемент использует 16-битное значение, поэтому для него установлено значение 06: запись в одиночный регистр.
Ниже приведен список этих регистров:
Регистры ввода
Регистры хранения
Ранняя версия прошивки Smart Display поддерживала только 10 объектов, поэтому диапазон идентификаторов виджета составлял от 0 до 9 (включительно). В новой версии прошивки данный диапазон был расширен до 64, но способ адресации был изменен.
Этих данных достаточно для сжатия и отправки на Smart Display для управления. Способ сжатия данных и добавления CRC кода будет описано ниже.
VII. Пользовательский интерфейс
Для практического применения Smart Display по-прежнему необходим подходящий человеко-машинный интерфейс, особенно графический пользовательский интерфейс, графический интерфейс пользователя. В настоящее время существует множество вариантов кроссплатформенных разработкок графического интерфейса, и мы используем Qt для ее реализации.
Многие люди думают, что Qt — это просто библиотека с графическим интерфейсом, но она является полноценной средой разработки (Framework). Предположим, что приложение полностью реализовано через кроссплатформенную библиотеку классов; проект может быть легко перенесен на несколько платформ (ПК/Windows, Mac/MacOS, Raspberry Pi/Raspbian, Android, iOS, Embedded и т. д.) с небольшими изменениями, поскольку программа представляет собой средство разработки программного обеспечения.
Более новая версия Qt уже поддерживает библиотеку классов Modbus, но чтобы облегчить переписывание на другие языки, мы реализуем эту тестовую программу для наиболее удобного чтения и записи последовательного порта.
Помимо предоставления функции выбора последовательного порта и передачи кода для управления, эта программа дополнительно предоставляет горизонтально рычажное приложение, которое может устанавливать значение указанного объекта. Если вы выбираете COM для последовательного порта, не забудьте указать фактический номер.
На изображении ниже показано выполнение программы на Raspberry Pi и Ubuntu, которая не требует модификации.
CRC (Циклический избыточный код)
Алгоритм циклического избыточного кода довольно прост в применении и в Qt выглядит в виде алгоритма ниже:
QByteArray SetWidgetValue::calculateCRC(QByteArray data) |
Контент таблицы циклического избыточного кода:
const uint16_t crcTable[] = |
Информация выше не является полной, и если требуется, то с ней можно ознакомиться на github.
Упаковка данных
Ниже приведена ключевая функция, которая вычисляет управляющий код в соответствии с пользовательским интерфейсом и отправляет его на Smart Display:
void SetWidgetValue::on_sbValue_valueChanged(int value) |
Если вы уже знакомы с Qt, приведенный выше код будет прост для понимания. Если вы не знакомы с Qt, найдите время, чтобы изучить его, так как некоторые из его концепций довольно интересны и заслуживают более глубокого изучения.
VIII. Расширенный пример
Предыдущий пример предназначен только для установки значения объекта, и для изучения наиболее полного примера, можно обаратиться к SmartDisplayConsole. На рис. ниже показан экран выполнения на Raspberry Pi:
В конце статьи есть URL-ссылка на github, и каждый может обратиться к нему для изучения.
IX. Заключение
В этой статья мы обсудили каждый шаг управления Smart Display, предоставили различные методы управления, и спользуя эти знания и богатое воображение, можно разработать уникальный интерфейс.
X. Ссылки
Serial Terminal Basics
https://learn.sparkfun.com/tutorials/terminal-basics/command-line-windows-mac-linux
Modbus
https://www.modbustools.com/modbus.html
https://www.modbusdriver.com/doc/mbusmaster.net/modbus.htm
XI. Пример исходного кода
GettingStartedWithSmartDisplay
https://github.com/Smart-Display-Series/GettingStartedWithSmartDisplay.git
SmartDisplayConsole
https://github.com/Smart-Display-Series/SmartDisplayConsole.git