Взаимодействие Arduino с MATLAB
Мы собираемся создать простые m-файлы MATLAB, чтобы пообщаться с нашей платой Arduino. Пакеты поддержки MATLAB для оборудования Arduino позволяют использовать MATLAB для связи с вашей платой через USB кабель. Пакеты поддержки доступны для 32-разрядной и 64-разрядной версий Windows, 64-разрядной Mac OS и 64-разрядного Linux.
Установка пакетов
Вы можете легко установить пакеты через интерфейс MATLAB.
Сначала запустите MATLAB и нажмите на выпадающее меню Add-ons. В выпадающем меню выберите Get Hardware Support Packages (получить пакеты поддержки аппаратного обеспечения). Это откроет окно установки пакета.
Выберите Install from internet (установить через интернет), а затем Next.
В следующем окне вы увидите все доступные пакеты для MATLAB и Simulink. Выберите пакет Arduino, затем проверьте все отображаемые пакеты и нажмите Next, чтобы продолжить установку. Обратите внимание, что на этом скриншоте показано, что я переустанавливаю пакеты Arduino, потому что я устанавливал их ранее.
Затем установщик попросит вас войти в свой аккаунт в MathWorks. Если у вас нет учетной записи, вы можете создать ее во время установки. Примите лицензионное соглашение на следующем экране и продолжите загрузку пакетов. Теперь необходимо подождать, пока MATLAB загрузит и установит все необходимые пакеты.
Проверка
Когда пакеты будут установлены, подключите к компьютеру плату Arduino и напечатайте следующую команду в окне команд MATLAB.
>> a = arduino()
Если у вас подключено к компьютеру более одной платы Arduino, то вы должны указать тип платы, с которой пытаетесь связаться:
>> a = arduino(‘com3’, ‘uno’)
MATLAB попытается связаться с вашей платой. Если всё пройдет успешно, MATLAB отобразит свойства платы Arduino, подключенной к компьютеру, как показано ниже:
Эта информация показывает порт, к которому подключена ваша плата, модель платы Arduino и доступные для платы контакты и библиотеки.
В рабочей области вы увидите переменную a
, которая является объектом MATLAB Arduino. Для очистки этого объекта выполните следующую команду:
>> clear a
Эта команда удалит объект a
из вашей рабочей области.
Схема соединений
Соберите схему, как показано выше, чтобы выполнить следующие два примера.
Это будет выглядеть примерно так:
Эксперимент 1: цифровые входы/выходы и MATLAB
В этом примере вы будем мигать светодиодом с помощью MATLAB.
Комплектующие
- Arduino Uno;
- 1 x резистор 1 кОм;
- USB кабель для Arduino;
- светодиод.
Запустите MATLAB, создайте m-файл и напишите следующий код:
Код
% создать объект arduino
a = arduino('com3', 'uno');
% запустить цикл для мигания светодиодом в течение 10 секунд
for i = 1:10
writeDigitalPin(a, 'D11', 1);
pause(0.5);
writeDigitalPin(a, 'D11', 0);
pause(0.5);
end
% закончить взаимодействие с arduino
clear a
Убедитесь, что в MATLAB не сохранился предыдущий объект Arduino, иначе MATLAB отобразит сообщение об ошибке. Сохрание файл и запустите его. Это запустит мигание светодиода с периодом 1 секунда.
Этапы
- Запустите MATLAB и установите пакеты аппаратной поддержки Arduino (если они еще не установлены).
- Подключите свою плату к компьютеру и проверьте, работает ли она с MATLAB.
- Соберите схему, как показано на рисунке выше, и соедините вывод 11 с одним выводом светодиода через резистор.
- Подключите второй вывод светодиода к выводу земли на плате Arduino.
- Напишите m-файл и сохраните его. Запустите свой файл, и MATLAB загрузит его на вашу плату.
- Светодиод начнет мигать.
Эксперимент 2: аналоговое управление
В этом примере мы будем использовать сигнал с широтно-импульсной модуляцией для изменения яркости светодиода. Программа рассчитывает шаг изменения яркости brightness_step
путем деления разности максимального и минимального напряжения, подаваемого на вывод, на количество итераций, за которое мы достигнем максимальной яркости светодиода.
Комплектующие
- Arduino Uno;
- 1 x резистор 1 кОм;
- USB кабель для Arduino;
- светодиод.
Соберите схему, как было показано на рисунке выше.
Код
% создать объект arduino
a = arduino('com3', 'uno');
% рассчитать шаг изменения яркости
brightness_step = (5-0)/20;
% начать цикл увеличения яркости светодиода
for i = 1:20
writePWMVoltage(a, 'D11', i*brightness_step);
pause(0.1)
end
% начать цикл постепенного выключения светодиода
% led is fading
for i = 1:20;
writePWMVoltage(a, 'D11', 5-i*brightness_step);
pause(0.1)
end
% закончить взаимодействие с arduino
clear a
Этапы
- Запустите MATLAB и установите пакеты аппаратной поддержки Arduino (если они еще не установлены).
- Подключите свою плату к компьютеру и проверьте, работает ли она с MATLAB.
- Соберите схему, как показано на рисунке выше, и соедините вывод 11 с одним выводом светодиода через резистор.
- Подключите второй вывод светодиода к выводу земли на плате Arduino.
- Напишите m-файл и сохраните его. Запустите свой файл, и MATLAB загрузит его на вашу плату.
- Светодиод начнет светиться, постепенно увеличивая яркость, а затем постепенно угасать.
Вот и всё! Надеюсь, статья оказалась полезной. Оставляйте комментарии!