雷竞技注册
项目

通过MATLAB实现Arduino伺服控制

2015年6月16日经过蒂姆杨ood

使用MATLAB编写一个程序来控制连接到Arduino的伺服电机。

使用MATLAB编写一个程序来控制连接到Arduino的伺服电机。

Arduino的Matlab支持包让您使用Matlab为Arduino编写程序。支持包可用于32位和64位窗口,64位Mac OS和64位Linux。

安装包

要安装Packages Matlab Arduino支持包,请启动MATLAB并单击加载项>获取硬件支持包。选择要安装的包,并按照安装程序窗口中的安装说明进行安装。

安装包后,用USB线将Arduino连接到PC上,并运行以下命令:

>> a = arduino()

此时,Matlab将尝试与Arduino沟通。如果成功,则显示屏将读取这样的内容:

这个显示显示我的Arduino Uno已经连接到COM3。如果MATLAB无法连接到Arduino,则会显示错误信息。

电路图

本实验的电路简直就是一种带电源,接地和连接到Arduino的控制输入的伺服电机,如下图所示:

职能

我们使用的Matlab函数是:

写入(Motorobject,角度)
readPosition(MotorObject)

顾名思义,WritePosition()命令用于将伺服电机轴旋转到特定角度,并且readPosition()命令用于读取轴的当前位置。

我们将使用命令创建伺服电机对象:

servo_motor = servo(arduinobject,pinatwhichservoisattached)

代码

您的Arduino连接的%端口端口='com3';您的Arduino Board Board ='Uno'的%模型;%创建arduino对象与伺服库arduino_board = arduino(端口,板,'图书馆','伺服');%创建伺服电机对象servo_motor = servo(arduino_board,'d8');%环路旋转伺服电机从0到180,角度= 0:0.2:1写入(伺服_Motor,角度);current_position = readposition(servo_motor);current_position = current_position * 180;伺服电机FPRINTF的%打印电流位置('当前位置是%d \ n',current_position);需要%小延迟,以便伺服可以位于向其达到的%角度。暂停(2); end % bring back motor to 0 angle position writePosition(servo_motor, 0);

servo_control_through_matlab.m.zip

确保没有存储在MATLAB中的Arduino的先前对象,否则MATLAB将显示错误消息。在脚本文件中清除伺服和arduino对象或运行清除所有在运行草图之前的命令窗口中。

步骤

  1. 运行MATLAB并安装硬件支持包如果您首次使用MATLAB使用Arduino。
  2. 如电路图所示连接电路。
  3. 将伺服电源引脚连接到Arduino上的5V引脚。
  4. 将伺服接地引脚连接到Arduino上的GND引脚。
  5. 将伺服数据引脚连接到Arduino板上的数字引脚8。
  6. 写下您的M文件并运行它,Matlab将将该文件刻录到您的Arduino Board。
  7. 电机将开始从0到180旋转,然后回到0度。

自己试试这个项目吧!得到bom。

0评论此频道条目中不提供注释。此频道条目中不提供注释。