Взаимодействие Arduino с MATLAB

Добавлено 29 июля 2017 в 15:20

Мы собираемся создать простые m-файлы MATLAB, чтобы пообщаться с нашей платой Arduino. Пакеты поддержки MATLAB для оборудования Arduino позволяют использовать MATLAB для связи с вашей платой через USB кабель. Пакеты поддержки доступны для 32-разрядной и 64-разрядной версий Windows, 64-разрядной Mac OS и 64-разрядного Linux.

Установка пакетов

Вы можете легко установить пакеты через интерфейс MATLAB.

Сначала запустите MATLAB и нажмите на выпадающее меню Add-ons. В выпадающем меню выберите Get Hardware Support Packages (получить пакеты поддержки аппаратного обеспечения). Это откроет окно установки пакета.

установка пакета поддержки Arduino в MATLAB

Выберите Install from internet (установить через интернет), а затем Next.

установка пакета поддержки Arduino в MATLAB

В следующем окне вы увидите все доступные пакеты для MATLAB и Simulink. Выберите пакет Arduino, затем проверьте все отображаемые пакеты и нажмите Next, чтобы продолжить установку. Обратите внимание, что на этом скриншоте показано, что я переустанавливаю пакеты Arduino, потому что я устанавливал их ранее.

установка пакета поддержки Arduino в MATLAB

Затем установщик попросит вас войти в свой аккаунт в MathWorks. Если у вас нет учетной записи, вы можете создать ее во время установки. Примите лицензионное соглашение на следующем экране и продолжите загрузку пакетов. Теперь необходимо подождать, пока MATLAB загрузит и установит все необходимые пакеты.

Проверка

Когда пакеты будут установлены, подключите к компьютеру плату Arduino и напечатайте следующую команду в окне команд MATLAB.

>> a = arduino()

Если у вас подключено к компьютеру более одной платы Arduino, то вы должны указать тип платы, с которой пытаетесь связаться:

>> a = arduino(‘com3’, ‘uno’)

MATLAB попытается связаться с вашей платой. Если всё пройдет успешно, MATLAB отобразит свойства платы Arduino, подключенной к компьютеру, как показано ниже:

MATLAB: проверка связи с Arduino
MATLAB: проверка связи с Arduino

Эта информация показывает порт, к которому подключена ваша плата, модель платы Arduino и доступные для платы контакты и библиотеки.

В рабочей области вы увидите переменную a, которая является объектом MATLAB Arduino. Для очистки этого объекта выполните следующую команду:

>> clear a

Эта команда удалит объект a из вашей рабочей области.

Схема соединений

Соберите схему, как показано выше, чтобы выполнить следующие два примера.

Схема соединений для выполнения примеров взаимодействия Arduino и MATLAB
Схема соединений для выполнения примеров взаимодействия Arduino и MATLAB

Это будет выглядеть примерно так:

Тестовый стенд для выполнения примеров взаимодействия Arduino и MATLAB
Тестовый стенд для выполнения примеров взаимодействия Arduino и MATLAB

Эксперимент 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 секунда.

Этапы

  1. Запустите MATLAB и установите пакеты аппаратной поддержки Arduino (если они еще не установлены).
  2. Подключите свою плату к компьютеру и проверьте, работает ли она с MATLAB.
  3. Соберите схему, как показано на рисунке выше, и соедините вывод 11 с одним выводом светодиода через резистор.
  4. Подключите второй вывод светодиода к выводу земли на плате Arduino.
  5. Напишите m-файл и сохраните его. Запустите свой файл, и MATLAB загрузит его на вашу плату.
  6. Светодиод начнет мигать.

Эксперимент 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

Этапы

  1. Запустите MATLAB и установите пакеты аппаратной поддержки Arduino (если они еще не установлены).
  2. Подключите свою плату к компьютеру и проверьте, работает ли она с MATLAB.
  3. Соберите схему, как показано на рисунке выше, и соедините вывод 11 с одним выводом светодиода через резистор.
  4. Подключите второй вывод светодиода к выводу земли на плате Arduino.
  5. Напишите m-файл и сохраните его. Запустите свой файл, и MATLAB загрузит его на вашу плату.
  6. Светодиод начнет светиться, постепенно увеличивая яркость, а затем постепенно угасать.

Вот и всё! Надеюсь, статья оказалась полезной. Оставляйте комментарии!

Теги

ArduinoMATLAB

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.