На главную страницу Технологии Smart Display Как хост взаимодействует со SmartDisplay через CAN-шину (управление светодиодом и индикатором с помощью физических и виртуальных переключателей)

Как хост взаимодействует со SmartDisplay через CAN-шину (управление светодиодом и индикатором с помощью физических и виртуальных переключателей)

Предисловие

Как известно, для управления Smart Display требуется системный интерфейс и протокол связи. Продукты Smart-Display интегрируются в систему для полноценного управления. В этом контексте, Arduino также может использоваться с позиции хост-управления. В данной статье предоставлен пример управления продуктами Smart-Display с точки зрения клиента и хоста, чтобы понять, как хост отправляет команду на изменение цвета индикатора с LED на Smart-Display.
Давайте создадим демонстрационный сценарий: на экране разместим сенсорную кнопку и применим физическую кнопку. Нажатие как физической, так и сенсорной кнопки изменит цвет индикатора на экране и включит или выключит внешний светодиод.

Введение

Это приложение предназначено для использования с 3,5-дюймовым стандартным умным дисплеем. В этом файле приложения будет объяснено, как модифицировать программу для добавления управления физическими кнопками, сенсорными кнопками и индикаторами на экране, а также светодиодом на плате. Будет рассмотрено также, как принимаются команды от хост-контроллера. Хостом является плата Arduino Mega 2560 с CAN Bus-шлюзом.

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

Схема блока системы

Схема блока системы

 

Для демо нам потребуются следующие компоненты:
  1. 5” Smart Display.
  2. ARDUINO Mega 2560.
  3. Щит CAN шины для ARDUINO Mega 2560.
  4. Донгл CAN шины.
  5. Сенсорная физическая кнопка.
  6. Светодиод (LED).
  7. Программное обеспечение GUI-Builder версии 0.4.2 или выше.

Демонстрация будет поделена на три этапа:
  1. Проектровка дизайна в GUI Builder.
  2. Сборка и загрузка проекта.
  3. Программирование хоста Arduino.
 

Проектировка дизайна в GUI Builder

Для начала нужно запустить программу для создания графического интерфейса GUI Builder, чтобы создать новый проект и ввести имя проекта. Затем выбрать модель подключаемого дисплея. Далее требуется выбрать протокол и ориентацию отображения (по-умолчанию ландшафтный). После чего выбрать «Blank» в шаблоне пользовательского интерфейса и, нажать иконку «Create», чтобы создать новый проект, как показано на рис. ниже:

Проектировка дизайна в GUI Builder-1

 

После нажатия на «create» должен открыться интерфейс GUI Builder

Проектировка дизайна в GUI Builder-2

 

Согласно демо сценарию, вам нужно добавить кнопку и индикатор из раздела “Control”. Выберите иконку кнопки из раздела “Button”, иконку индикации из раздела “Indicator”, и перетащите их в область макета страницы.

Проектировка дизайна в GUI Builder-3

 

Создание и загрузка проекта

Когда все предыдущие шаги выполнены, и создан дизайн макета, пришло время создать проект. Перейдите в раздел “Device” и выберите “Device Property”. Затем выберите настройки по умолчанию для скорости передачи данных (baud rate) или выберите их в соответствии с вашими требованиями. Рекомендуется установить одинаковое значение скорости передачи данных (baud rate) как в вашем коде Arduino, так и в средстве для создания графического интерфейса (GUI builder). Далее нажмите кнопку “Upload” для загрузки проекта, как показано на рисунке ниже:

Создание и загрузка проекта-1

 

По окончании процесса загрузки, нажмите кнопку «ОК»:

Создание и загрузка проекта-2

 

По завершении процесса загрузки должен появиться стартовый экран:

Создание и загрузка проекта-3

 

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

Создание и загрузка проекта-4

 

Программирование хоста Arduino

Интегрированная среда разработки Arduino версии "IDE v2.0.4" используется для написания кода на Arduino. Для обмена данными по протоколу CAN bus использована библиотека mcp2515_can.h, а также несколько других вспомогательных библиотек. Для получения более подробной информации, пожалуйста, обратитесь к коду Arduino. Важно учесть адреса для подключения хоста к Smart Display. Если вы хотите узнать больше о том, как осуществляется обмен данными между хостом и умным дисплеем с помощью CAN bus Shield, обратитесь к журналу коммуникации GUI builder. Здесь в коде Arduino IDE определены все необходимые адреса регистров, как показано на рисунке ниже:

Программирование хоста Arduino-1

 

Индекс стиля кнопки соответствует 0 (0x2000), а индекс стиля индикатора соответствует 1 (0x2001) и определены в структуре CAN open. Важно учесть индекс объекта. Состояние объекта можно изменить при программировании на хосте Arduino, если известен его индекс, как показано в таблице журнала симуляции на рисунке ниже:

Программирование хоста Arduino-2

 

Программирование хоста Arduino-3

 

Здесь определен тип данных объекта. Если пользователь хочет добавить больше элементов, то им необходимо также определить тип данных для них здесь.

Программирование хоста Arduino-4

 

Код ниже показывает, как вызывается "ObjectFunCallback" для получения значения от каждого объекта. Пользователи могут изменять или добавлять больше элементов ниже этого кода.

Программирование хоста Arduino-5

 

Когда хост Arduino получает изменение значения от физической кнопки-сенсора, он будет отправлять определенные значения на Smart Display через протоколы CAN-шины. Пожалуйста, обратитесь к следующей программе для ключевых моментов "идентификаторов структуры команд и суб-индексов". Целью этой программы является обновление значения индикатора (индекс объекта 2) в соответствии с изменением значения от физической кнопки-сенсора.

Программирование хоста Arduino-6

 

Задайте адреса регистров для всех объектов, режимы пинов и настройки для внешних аксессуаров, таких как физические кнопки и пины светодиода как вход или выход. Также установите скорость передачи данных (baud rate), как показано на рисунке ниже:

Программирование хоста Arduino-7

Программирование хоста Arduino-8

 

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

Программирование хоста Arduino-9

 

Appendix:Set Up the Project

После успешной проверки и загрузки программы через Arduino IDE, можно начать демонстрацию. Нажимая на физические кнопки или сенсорные кнопки, можно включить светодиод и изменить цвет индикатора на зеленый. Когда индикатор отображает красный цвет и светодиод выключен, это означает, что ни физическая кнопка, ни сенсорная кнопка не нажаты. Как показано на рисунке ниже:

Appendix:Set Up the Project-1

 

Чтобы скачать вышеуказанную программу и получить больше подробностей о данном демо-проекте, пожалуйста перейдите по ссылке на GitHub(https://bit.ly/3oT0o5M)

Appendix:Set Up the Project-2

 

Congratulations, the design and demo of the Smart Display is completed with a physical button and LED to change the Inductor color while pressing the physical button or touch button.

Заключение

Целью данной статьи является продвижение работы и применения средства для создания графического интерфейса (GUI builder). Таким образом, пользователи могут понять, как разрабатывать собственные контроллеры со стороны хоста через различные протоколы связи. Пользователь также может понять, как осуществлять прием и отправку команд через хост. Они могут получить полный контроль над Умным Дисплеем и использовать его различными способами.

Вернуться к списку
go top
close