Сервоуправление с ардуино через матлаб

Сервоуправление с ардуино через матлаб
Сервоуправление с ардуино через матлаб
Anonim

Сервоуправление с помощью Arduino через MATLAB

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

Пакеты поддержки MATLAB для Arduino позволяют использовать MATLAB для написания программ для Arduino. Пакеты поддержки доступны для 32-разрядных и 64-разрядных Windows, 64-разрядных Mac OS и 64-разрядных Linux.

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

Чтобы установить пакеты пакетов поддержки MATLAB Arduino, запустите MATLAB и нажмите Add-Ons> Get Hardware Support Packages. Выберите пакет, который вы хотите установить, и следуйте инструкциям по установке в окне установщика.

Image
Image

После установки пакетов подключите Arduino к ПК с помощью USB-кабеля и выполните следующую команду:

> a = arduino ()

На данный момент MATLAB попытается связаться с Arduino. Если он будет успешным, на дисплее появится следующее:

Image
Image

Этот дисплей показывает, что мой Arduino Uno подключен к COM3. Если MATLAB не смог подключиться к Arduino, отобразится сообщение об ошибке.

Принципиальная электрическая схема

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

Image
Image
Image
Image

функции

Функции MATLAB, которые мы собираемся использовать:

writePosition (motorObject, angle)

readPosition (motorObject)

Как следует из названия, команда writePosition () используется для поворота вала серводвигателя на определенный угол, а команда readPosition () используется для считывания текущего положения вала.

Мы создадим объект серводвигателя командой:

servo_motor = servo (arduinoObject, pinAtWhichServoIsAttached)

Код


% port at which your arduino is connected port = 'COM3'; % model of your arduino board board = 'Uno'; % creating arduino object with servo library arduino_board = arduino(port, board, 'Libraries', 'Servo'); % creating servo motor object servo_motor = servo(arduino_board, 'D8'); % loop to rotate servo motor from 0 to 180 for angle = 0:0.2:1 writePosition(servo_motor, angle); current_position = readPosition(servo_motor); current_position = current_position * 180; % print current position of servo motor fprintf('Current position is %d\n', current_position); % small delay is required so that servo can be positioned at the % angle told to it. pause(2); end % bring back motor to 0 angle position writePosition(servo_motor, 0);

Скачать код

Убедитесь, что в MATLAB нет предыдущего объекта Arduino, иначе MATLAB отобразит сообщение об ошибке. Либо очистите объекты серво и ардуины в файле сценария, либо запустите все в окне команд перед запуском эскиза.

меры

  1. Запустите MATLAB и установите пакеты поддержки оборудования, если вы впервые используете arduino с MATLAB.
  2. Подключите цепь, как показано на схеме.
  3. Подключите штырек сервопривода к контакту 5V на вашем ардуине.
  4. Подключите штифт заземления сервопривода к контакту GND на вашем ардуине.
  5. Подключите штырь сервопривода к цифровому выводу 8 на плате arduino.
  6. Напишите свой m-файл и запустите его, MATLAB сгорит этот m-файл на вашей плате arduino.
  7. Ваш мотор начнет вращаться от 0 до 180, а затем вернется к 0 градусам.

Попробуйте этот проект сами! Получить спецификацию.