Управление сервомотором с помощью MATLAB и Arduino

В этой статье мы рассмотрим установление прямого соединения между математической системой Matlab и платой Arduino Uno, что позволит программировать плату Arduino непосредственно из Matlab’а. Это бывает очень полезно когда речь идет о таких сложных проектах как роботизированная рука, человекоподобные роботы и т.д. То есть в этом случае мы можем разработать какую-нибудь сложную программу в математической системе Matlab и потом загрузить ее в Arduino.

Управление сервомотором с помощью MATLAB и Arduino: внешний вид

Для начала необходимо загрузить пакет поддержки Arduino для Matlab. Сделать это можно по следующей ссылке:

https://www.mathworks.com/hardware-support/arduino-matlab.html

Страница, с которой можно скачать пакет поддержки Arduino для Matlab

По ссылке вы скачаете архив, его надо разархивировать и сохранить в папке под названием ArduinoIO. Затем запустите Arduino IDE, выберите в ней меню «file» и откройте папку ArduinoIO и в ней выберите нужный вам файл с расширением .pde из подпапки Pde. Поскольку в этой статье мы будем управлять сервомотором, то в данном случае необходимо выбрать файл adioes.pde. Для управления другими устройствами могут потребоваться другие .pde файлы. Когда вы откроете .pde файл в Arduino IDE вы там сможете посмотреть всю информацию о том, для чего предназначен этот файл.

Выбор файла adioes.pde

Затем необходимо загрузить программу adioes.pde в ваш Arduino, после этого можно переключиться на Matlab.

Все необходимые после этого операции представлены на приведенных рисунках, я думаю они не вызовут у вас существенных сложностей.

Одна из существенных вещей, которую необходимо сделать, это выбрать (установить) папку ArduinoIO вашей текущей папкой в Matlab. Сделать это можно выбрав пункт меню ‘browse the folder’.

Смена рабочей папки в Matlab

Теперь, после того как выбрана текущая папка, вы можете кликнуть на arduino.m чтобы получить доступ ко всем функциям и командам, которые вы собираетесь использовать. Как вы можете видеть из представленного рисунка первой командой в этом списке идет arduino(comport).

Выбор нужной команды для Arduino

Теперь давайте запишем первую необходимую нам команду в виде a=arduino(“COM3”);, которая создаст переменную ‘a’ и которая будет использоваться для связи между Arduino и Matlab. После этого необходимо подождать несколько секунд пока установится соединение между Arduino и Matlab. Это можно увидеть на представленной ниже картинке. В использованной команде arduino() в скобках необходимо указать номер COM порта, к которому подключена Arduino.

Установление соединения между Matlab и Arduino

После того как соединение будет установлено вы сможете увидеть какими аппаратными средствами вы теперь сможете управлять.

Cоединение между Matlab и Arduino успешно установлено

После этого необходимо прикрепить сервомотор к одному из контактов Arduino, на котором можно использовать ШИМ (широтно-импульсную модуляцию). Более подробно об управлении сервомотором с помощью Arduino можно прочитать в этой статье. В данном проекте мы использовали PIN 3 (но вы можете использовать любой другой аналогичный контакт), поэтому для прикрепления сервомотора к этому контакту необходимо использовать команду servoAttach(a,3);.

Вращение сервомотора командой из Matlab

После того как сервомотор прикреплен к контакту (точнее сказать, закреплен в программе за выбранным контактом) вы можете использовать команду servoWrite для вращения сервомотора на любой угол. К примеру, мы хотим повернуть его на 45 градусов, для этого необходимо использовать команду servoWrite(a,3,45).

Схема подключения сервомотора показана на следующем рисунке.

Схема подключения сервомотора к плате Arduino Uno

В данной схеме был использован сервомотор требующий питающего напряжения 7.4 В. Это было сделано с помощью батарейки. При этом необходимо замкнуть землю этой батарейки на землю Arduino иначе сервомотор не будет работать правильно. Это одна из наиболее частых ошибок, которую делают новички. Также нельзя в этом случае подавать питание с сервомотора на Arduino поскольку это может сжечь вашу плату Arduino.

Видео, демонстрирующее работу схемы:

(1 голосов, оценка: 5,00 из 5)
Загрузка...
38 просмотров


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *