- Потрібні компоненти
- Кругова діаграма
- Послідовний зв’язок за допомогою командного вікна MATLAB
- Послідовне спілкування за допомогою графічного інтерфейсу користувача MATLAB
MATLAB - це універсальне програмне забезпечення, яке може використовуватися для широкого спектру додатків. У попередніх підручниках MATLAB ми пояснювали, як використовувати MATLAB для управління двигуном постійного струму, сервомотором та побутовою технікою. У цьому посібнику ми дізнаємось, як використовувати MATLAB для послідовного зв'язку. Для отримання кінця послідовного зв'язку ми використовуємо Arduino.
Існує два способи налаштування послідовного зв'язку між MATLAB та Arduino, один - за допомогою командного вікна, а інший - за допомогою графічного інтерфейсу користувача MATLAB. Код Arduino для обох методів залишиться незмінним. Якщо ви не знайомі з MATLAB, то рекомендуємо розпочати роботу з простою програмою мигання світлодіодів із MATLAB та вивчити основну термінологію, що використовується в MATLAB.
Потрібні компоненти
- MATLAB встановив ноутбук (Налаштування: R2016a або новіші версії)
- Arduino UNO
- Світлодіод (будь-який колір)
- Резистор (330 Ом)
Кругова діаграма
Наведена вище електрична схема залишиться незмінною для обох способів встановлення послідовного зв'язку між MATLAB та Arduino.
Послідовний зв’язок за допомогою командного вікна MATLAB
Це простий метод налаштування послідовного зв'язку між Arduino та MATLAB. Тут ми просто надішлемо дані з MATLAB в Arduino послідовно за допомогою командного вікна, а потім Arduino прочитає вхідні послідовні дані. Тоді ці послідовно передані дані можна використовувати для керування будь-чим, що пов'язано з Arduino. Тут ми підключили світлодіодний індикатор до Arduino, який буде вмикатись і вимикатись відповідно до послідовно отриманих даних Arduino.
Спочатку завантажте даний код Arduino в Arduino UNO, а потім починайте кодування у вікні редактора MATLAB. Щоб відкрити новий сценарій редактора, натисніть " Новий сценарій", як показано на малюнку нижче:
Потім скопіюйте та вставте наведений нижче повний код MATLAB у вікно редактора для послідовного зв’язку між MATLAB та Arduino.
% Код MATLAB для послідовного зв'язку між Arduino та MATLAB x = послідовний ('COM18', 'BAUD', 9600); fopen (x); go = істина; while go a = input ('Натисніть 1, щоб увімкнути світлодіод і 0, щоб вимкнути:'); fprintf (x, a); якщо (a == 2) go = false; кінець кінець
У наведеному коді наведена нижче команда використовується для визначення послідовного зв'язку в MATLAB. Переконайтеся, що номер com-порту - це номер порту, до якого підключений Arduino, і швидкість передачі даних повинна бути встановлена однаковою в кодах Arduino та MATLAB.
x = серійний ('COM18', 'BAUD', 9600);
Щоб відкрити послідовний порт, використовуйте наведену нижче команду, fopen (x);
Команда нижче використовується для послідовного надсилання даних з MATLAB до Arduino, де x - для виклику послідовного, а - значення, введене користувачем.
fprintf (x, a);
Ми використовуємо функцію while для створення нескінченного циклу, і кожного разу, коли користувач вводить число '2', цикл розривається.
while go a = input ('Натисніть 1, щоб увімкнути світлодіод і 0, щоб вимкнути:'); fprintf (x, a); якщо (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 наведено в кінці цього проекту. Далі ми включаємо файл GUI (.fig) та файл коду (.m) сюди для завантаження (клацніть правою кнопкою миші на посиланні та виберіть "Зберегти посилання як…"), використовуючи який ви можете налаштувати кнопки відповідно до ваших вимог. Нижче наведено кілька налаштувань, які ми зробили для управління світлодіодом, підключеним до Arduino.
Скопіюйте та вставте наведений нижче код у рядок No. 74 для налаштування послідовного порту та швидкості передачі даних.
очистити все; глобальний х; x = серійний ('COM18', 'BAUD', 9600); % Переконайтеся, що швидкість передачі даних та COM-порт на % однакові, як у Arduino IDE fopen (x);
де fopen (x) використовується для відкриття послідовного порту для послідовного зв'язку.
Прокрутивши вниз, ви побачите, що для обох кнопок у графічному інтерфейсі створено дві функції. Тепер напишіть код в обох функціях відповідно до завдання, яке ви хочете виконати за кліком.
У функції кнопки УВІМК. Світлодіода скопіюйте та вставте наведений нижче код безпосередньо перед закінченням функції, щоб увімкнути світлодіод. Як ви бачите в наведеному нижче коді, fprintf (x, 1) використовується для надсилання послідовних даних з MATLAB на Arduino serial. Тут ми відправляємо «1» на серійний номер Arduino, і якщо ви перевірите код Arduino, ви побачите, що Arduino буде світити світлодіод, зробивши 13- й штифт ВИСОКИМ, коли він отримає «1» на своєму послідовному порту.
глобальний х; fprintf (x, 1);
У функції кнопки вимкнення світлодіода скопіюйте та вставте наведений нижче код безпосередньо перед закінченням функції, щоб вимкнути світлодіод. Як ви бачите в наведеному нижче коді, fprintf (x, 0) використовується для надсилання послідовних даних з MATLAB на Arduino serial. У цій частині ми надсилаємо `` 0 '' на серійний номер Arduino, і якщо ви перевірите код Arduino, ви виявите, що Arduino вимкне світлодіод, зробивши 13- й штифт НИЗКИМ, коли отримає `` 0 '' на своєму послідовному порту.
глобальний х; fprintf (x, 0);
Після завершення кодування графічного інтерфейсу користувача MATLAB та налаштування апаратного забезпечення відповідно до схеми, просто натисніть кнопку запуску, щоб запустити відредагований код у файлі.m.
MATLAB може зайняти кілька секунд, щоб відповісти, не натискайте жодну кнопку графічного інтерфейсу, поки MATLAB не покаже індикацію зайнятості, яку ви можете побачити в лівому нижньому куті екрана, як показано нижче,
Коли все буде готово, натисніть на кнопку LED-ON та LED-OFF, щоб увімкнути та вимкнути світлодіод. Коли ти натискаєш кнопку LED-ON , 13- й штифт Arduino стає ВИСОКИМ, а світлодіод, підключений до цього PIN-коду, починає світитися, а коли ти натискаєш кнопку LED-OFF , 13 -ти штифт Arduino стає НИЗКИМ, що змушує світлодіод вимикатися.
Ви можете переглянути відео нижче, щоб зрозуміти повний процес надсилання послідовних даних з MATLAB в Arduino за допомогою графічного інтерфейсу MATLAB.