Внешнее оборудование - COM: передача сигнала в Arduino

Автор
avatar-alexevsalexevs
Notebook

Отправка данных по COM: Arduino Blink

В этом примере рассмотрено моделирование в Engee с подключенным внешним оборудованием. COM-порт компьютера, где запущен Engee, работает в режиме отправки сообщений на COM-порт микроконтроллера Arduino MEGA. Получение сообщений на микроконтроллере обрабатывается для управления встроенным светодиодом. Корректировка параметров модели в процессе выполнения позволяет изменять передаваемые в Arduino данные.

Введение

Engee обладает возможностью подключения внешнего оборудования - такого, как, например, COM-порт. По этому интерфейсу могут быть подключены не только офисные и мультимедийные устройства, но и устройства КИПиА - датчики, микроконтроллеры, программируемые логические контроллеры.
Для ознакомления с возможностями использования в модели Engee подключения по COM в этом примере отправим данные - периодический дискретный сигнал на микроконтроллер Arduino MEGA.

Модель примера

Модель примера - com_send_blink.engee содержит два блока из раздела Interfaces -> COM библиотеки блоков Engee:

  • COM Setup - для настройки подключения,
  • COM TX - для передачи данных из Engee по последовательному интерфейсу.

image_2.png

Настройки интерфейса, блок COM Setup:

  • имя порта - для ОС Windows, это, например "COM5";
  • скорость передачи, бод - 9600;
  • количество данных для приёма-передачи, бит - 8;
  • количество стоповых бит приема-передачи, бит - 1;
  • бит чётности - нет.

В блоке передатчика COM TX необходимо определить имя порта - "COM5" и размер буфера для передачи = 1.

На входы этого блока передаются:

  • количество элементов из массива данных для передачи: число в формате UInt32в нашем случае = 1,
  • вектор данных для передачи в формате UInt8.

На второй вход будет подавать периодический импульсный сигнал с амплитудой = 1, коэффициентом заполнения $D=50\, \%$ и изменяемым периодом.

Подготовка к выполнению модели

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

Установка пакета поддержки

Выполним следующую команду в командной строке Engee:

engee.package.install("Engee-Device-Manager")

После выполнения команды будут выведены следующие сообщения, свидетельствующие об успешной установки пакета поддержки внешнего оборудования в Engee:

image_2.png

По приведённой ссылке, в зависимости от операционной системы, необходимо скачать архив, распаковать его и запустить клиентскую программу.

Подключение к Engee

Далее, в открывшемся окне клиентской программы необходимо ввести полученную ссылку для подключения и нажать кнопку "Подключиться":

image.png

Сообщение "Соединение с сервером установлено!" и статус подключения "Подключен" в окне клиентской программы свидетельствуют о том, что Engee получил доступ к интерфейсам компьютера.

❗️ Не закрывайте окно пользовательской программы в процессе работы, иначе связь будет потеряна.

Подключение Arduino

Теперь подключим оборудование к заданному в модели порту "COM5".

❗️ Имя порта, к которому Вы согласно этому примеру подключите своё устройство может отключаться. Определите имя порта, к которому подключено Ваше устройство и задайте его в блоках настройки интерфейса модели (COM Setup и COM TX).

В рассматриваемом примере Arduino MEGA подключается к порту "COM5", о чём свидетельствует статус подключения в Arduino IDE:

image.png

Также определить порт можно в настройках подключения Arduino IDE:

image.png

Программирование Arduino

Программа обработки данных, получаемых Arduino из Engee по последовательному порту приведена в скетче arduino_com_read_sketch.ino.

Принцип работы программы подробно описан в комментариях скетча. Суть работы состоит в следующем. Если контроллер получает из Engee "1", он зажигает встроенный на плате светодиод, если он не получает "1", светодиод не зажигается.

Для программирования Arduino Mega достаточно сделать следующие действия:

  • скачать папку arduino_com_read_sketch со скетчем,
  • открыть скетч в Arduino IDE,
  • определить модель платы - Arduino Mega or Mega 2560 и имя порта - в случае данного примера это COM5,
  • проверить скетч,
  • загрузить его на плату.

В случае успешной загрузки и компиляции можно переходить к выполнению модели в Engee, которая будет отправлять сигналы в Arduino MEGA по COM.

Выполнение модели примера

❗️ Перед запуском модели в Engee убедитесь в выполнении шагов:

  1. Установлен пакет поддержки внешнего оборудования.
  2. Запущена клиентская программа из пакета поддержки.
  3. Статус подключения Engee в клиентской программе "Подключен".
  4. Контроллер подключен в COM-порту.
  5. На контроллере запущена программа обработки сигналов, поступающих по COM.
  6. Имя порта COM, к которому подключен контроллер, соответствует установленному в интерфейсных блоках модели.

Запустим модель в Engee, после компиляции можно наблюдать формирование импульсного сигнала на графике Engee и синхронное с ним мигание светодиода на плате Arduino MEGA:

ubar.gif

Параметры блоков можно изменять в процессе работы модели, говоря иначе "на лету". Из приведённой выше видеозаписи можно судить о том, что Engee успешно передаёт в микроконтроллер по COM-порту периодический импульсный сигнал с изменяемой частотой.

Заключение

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