- Необходимые компоненты
- Принципиальная электрическая схема
- Последовательная связь с использованием командного окна MATLAB
- Последовательная связь с использованием графического интерфейса MATLAB
MATLAB - это универсальное программное обеспечение, которое можно использовать для самых разных приложений. В предыдущих руководствах по MATLAB мы объяснили, как использовать MATLAB для управления двигателем постоянного тока, серводвигателем и бытовой техникой. Здесь, в этом руководстве, мы узнаем, как использовать MATLAB для последовательной связи. Для получения последовательной связи мы используем Arduino.
Существует два способа настройки последовательной связи между MATLAB и Arduino: один - с помощью окна команд, а другой - с помощью графического интерфейса пользователя MATLAB. Код Arduino для обоих методов останется прежним. Если вы новичок в MATLAB, рекомендуется начать работу с простой программой мигания светодиодами с MATLAB и изучить базовую терминологию, используемую в MATLAB.
Необходимые компоненты
- MATLAB установил ноутбук (предпочтение: версии R2016a или выше)
- Arduino UNO
- LED (любой цвет)
- Резистор (330 Ом)
Принципиальная электрическая схема
Приведенная выше принципиальная схема останется одинаковой для обоих способов установления последовательной связи между MATLAB и Arduino.
Последовательная связь с использованием командного окна MATLAB
Это простой метод настройки последовательной связи между Arduino и MATLAB. Здесь мы просто отправим данные из MATLAB в Arduino последовательно, используя командное окно, а затем Arduino прочитает входящие последовательные данные. Затем эти последовательно передаваемые данные можно использовать для управления всем, что подключено к Arduino. Здесь мы подключили светодиод к Arduino, который будет включаться и выключаться в соответствии с данными, последовательно полученными Arduino.
Сначала загрузите указанный код Arduino в Arduino UNO, а затем начните кодирование в окне редактора MATLAB. Чтобы открыть новый скрипт редактора, нажмите « Новый скрипт», как показано на рисунке ниже:
Затем скопируйте и вставьте приведенный ниже полный код MATLAB в окно редактора для последовательной связи между MATLAB и Arduino.
% MATLAB Code для последовательной связи между Arduino и MATLAB x = serial ('COM18', 'BAUD', 9600); fopen (x); go = true; while go a = input ('Нажмите 1, чтобы включить светодиод и 0, чтобы выключить:'); fprintf (х, а); если (a == 2) go = false; конец конец
В данном коде команда ниже используется для определения последовательной связи в MATLAB. Убедитесь, что номер com-порта - это номер порта, к которому подключен Arduino, и скорость передачи данных должна быть одинаковой в обоих кодах Arduino и MATLAB.
x = серийный ('COM18', 'BAUD', 9600);
Чтобы открыть последовательный порт, используйте следующую команду:
fopen (x);
Команда ниже используется для последовательной отправки данных из MATLAB в Arduino, где x - для последовательного вызова, а a - значение, введенное пользователем.
fprintf (х, а);
Мы используем функцию while для создания бесконечного цикла, и всякий раз, когда пользователь вводит число «2», цикл прерывается.
while go a = input ('Нажмите 1, чтобы включить светодиод и 0, чтобы выключить:'); fprintf (х, а); если (a == 2) go = false; конец конец
После завершения кодирования скрипта редактора MATLAB нажмите « RUN », чтобы запустить вашу программу, как показано на изображении ниже,
MATLAB занимает несколько секунд для обработки кода и запуска последовательной связи, подождите, пока MATLAB не покажет сообщение «ЗАНЯТО» в нижнем левом углу экрана программного обеспечения, как показано на изображении ниже.
Теперь вы увидите командное окно для отправки пользовательского ввода, мы установили сообщение по умолчанию, 'Нажмите 1, чтобы включить светодиод, и 0, чтобы выключить:'
Отправьте «1», чтобы включить светодиод, «0», чтобы выключить светодиод, и «2», чтобы прервать операцию. Вы можете установить любое число для любой задачи, все, что вам нужно сделать, это просто изменить код Arduino соответствующим образом. Полный код Arduino приведен в конце.
Вы можете посмотреть видео ниже, чтобы понять полный процесс отправки последовательных данных из MATLAB в Arduino с помощью командного окна.
Последовательная связь с использованием графического интерфейса MATLAB
Для демонстрации последовательной связи с использованием графического интерфейса MATLAB мы создадим две графические кнопки с помощью MATLAB для включения и выключения светодиода, подключенного к Arduino. Данные будут отправляться последовательно из MATLAB в Arduino при нажатии этих кнопок для включения и выключения светодиода. Arduino будет содержать код для получения последовательных данных от MATLAB и управления светодиодом в соответствии с полученными последовательными данными. Код Arduino останется таким же, как и предыдущий, с той лишь разницей, что раньше мы отправляли последовательные данные «1» и «0» через командное окно MATLAB, а теперь те же данные будут отправляться при нажатии на две графические кнопки.
Чтобы запустить графический интерфейс, введите следующую команду в командном окне
руководство
Откроется всплывающее окно, затем выберите новый пустой графический интерфейс, как показано на изображении ниже,
Теперь выберите две кнопки для включения и выключения светодиода, как показано ниже.
Чтобы изменить размер или форму кнопок, просто нажмите на нее, и вы сможете перетаскивать углы кнопки. Двойным щелчком по кнопке вы можете изменить цвет, строку и тег этой конкретной кнопки. Мы настроили две кнопки, как показано на рисунке ниже.
Вы можете настроить кнопки по своему усмотрению. Теперь, когда вы сохраните это, код будет сгенерирован в окне редактора MATLAB. Отредактируйте этот код в соответствии с задачей, которую вы хотите выполнить вашим Arduino, используя графический интерфейс MATLAB. Итак, ниже мы отредактировали код MATLAB. Вы можете узнать больше о командном окне, окне редактора и т. Д. В руководстве Начало работы с MATLAB.
Полный код MATLAB для установления последовательной связи между MATLAB и Arduino приведен в конце этого проекта. Кроме того, мы включаем сюда файл графического интерфейса (.fig) и файл кода (.m) для загрузки (щелкните ссылку правой кнопкой мыши и выберите «Сохранить ссылку как…»), с помощью которых вы можете настроить кнопки в соответствии с вашими требованиями. Ниже приведены некоторые настройки, которые мы сделали для управления светодиодом, подключенным к Arduino.
Скопируйте и вставьте приведенный ниже код в строку № 74 для настройки последовательного порта и скорости передачи.
очистить все; глобальный x; x = серийный ('COM18', 'BAUD', 9600); % Убедитесь, что скорость передачи и COM-порт на % такие же, как в Arduino IDE fopen (x);
где fopen (x) используется для открытия последовательного порта для последовательной связи.
Когда вы прокрутите вниз, вы увидите, что для обеих кнопок в графическом интерфейсе созданы две функции. Теперь напишите код в обеих функциях в соответствии с задачей, которую вы хотите выполнить при нажатии.
В LED-ON функции баттона, скопируйте и вставьте приведенный ниже код непосредственно перед окончанием функции для включения светодиода. Как вы видите в приведенном ниже коде, fprintf (x, 1) используется для отправки последовательных данных из MATLAB в последовательный порт Arduino. Здесь мы отправляем «1» на серийный номер Arduino, и если вы проверите код Arduino, вы обнаружите, что Arduino будет светить светодиод, сделав свой 13- й контакт ВЫСОКИМ, когда он получит «1» на своем последовательном порту.
глобальный x; fprintf (х, 1);
В функции кнопки LED-OFF скопируйте и вставьте приведенный ниже код непосредственно перед окончанием функции, чтобы выключить светодиод. Как вы видите в приведенном ниже коде, fprintf (x, 0) используется для отправки последовательных данных из MATLAB в последовательный порт Arduino. В этой части мы отправляем '0' на последовательный порт Arduino, и если вы проверите код Arduino, вы обнаружите, что Arduino выключит светодиод, сделав свой 13- й контакт НИЗКИМ, когда он получит '0' на своем последовательном порту..
глобальный x; fprintf (х, 0);
После завершения кодирования MATLAB GUI и настройки оборудования в соответствии со схемой, просто нажмите кнопку запуска, чтобы запустить отредактированный код в файле.m.
MATLAB может занять несколько секунд, чтобы ответить, не нажимайте ни одну кнопку графического интерфейса, пока MATLAB не покажет индикацию BUSY, которую вы можете видеть в левом нижнем углу экрана, как показано ниже,
Когда все будет готово, нажмите кнопку LED-ON и LED-OFF, чтобы включить и выключить светодиод. Когда вы нажимаете кнопку включения светодиода , 13- й контакт Arduino становится ВЫСОКИМ и светодиод, подключенный к этому контакту, начинает светиться, а когда вы нажимаете кнопку LED-OFF , 13- й контакт Arduino становится LOW, что заставляет светодиод выключаться.
Вы можете посмотреть видео ниже, чтобы понять полный процесс отправки последовательных данных из MATLAB в Arduino с использованием графического интерфейса MATLAB.