罗兰关于MATLAB的艺术

将想法转化为MATLAB

使用Arduino和MATLAB通过电位器控制RGB LED

我想介绍一下本周的客座博主Ankit德赛.Ankit在MathWorks的测试和测量团队工作。Ankit曾关于用MATLAB在两台计算机之间传输数据。在这篇文章中,他将讨论如何使用MATLAB的Arduino支持包。金宝app

Arduino作为一个面向学生、业余爱好者和工程师的原型平台,正在迅速发展。的MATLAB 金宝appArduino支持包例如,允许您使用Arduino板UNODuemilanove,并允许交互式开发和调试。支持包可金宝app以在MATLAB支持的所有平台上工作,不需要任何额外的工具箱。

MATLAB的金宝appArduino支持包使用串口接口在MATLAB中实现与Arduino板的通信。

我最近搞到了Arduino发明家工具包Sparkfun,并与Onomitra Ghosh,决定使用该工具包和建立一个小项目MATLAB 金宝appArduino支持包.我决定从一个简单的项目开始,通过电位器控制RGB LED的颜色。

整个项目分为三个阶段:

  1. 设置Arduino和面包板
  2. 建立MATLAB和支持程序包金宝app
  3. 编写MATLAB代码

内容

设置Arduino和面包板

取决于你所开发的平台,Arduino的网站有一个详细的设置Arduino IDE和连接Arduino板的说明集。一旦设置完成,我就在面包板上进行类似的设置CIRC-08来自Sparkfun的Arduino Inventor Kit,除了我使用的是RGB LED而不是绿色LED,因此我没有使用销9——我使用引脚9、10和11

在这个阶段,Arduino板和其他组件都准备好了。

建立MATLAB和支持程序包金宝app

MATLAB支金宝app持包Arduino附带一个服务器程序adiosrv.pde可以在Arduino板上下载。一旦下载,adiosrv.pde威尔:

  1. 等待并监听MATLAB命令
  2. 接收到MATLAB命令后,执行并返回结果

我将服务器程序编写/下载到Arduino板的步骤如下:

  1. 打开Arduino IDE
  2. 选择adiosrv。通过在IDE中通过文件>打开导航pde文件
  3. 点击上传按钮

我现在已经准备好在MATLAB中编写代码了。

编写MATLAB代码

MATLAB对金宝appArduino的支持包提供了一个非常容易使用的功能集,可以执行模拟读、模拟写、数字读和数字写等基本操作。

对于本例,我遵循以下顺序:

  1. 从模拟输入读取一个值销0,我连接电位器的地方
  2. 根据读取的值计算LED的R,G和B颜色的强度
  3. 将计算出的R, G和B强度写到模拟输出引脚9、10和11
  4. 为预定的时间量循环序列

在MATLAB中,上面的序列看起来像:

% Connect to the board a = arduino('COM8');
a.pinMode(9,“输出”);a.pinMode(10,“输出”);a.pinMode(11,“输出”);
%现在启动计时器tic;
当toc/60 < 1%时,运行1分钟。%从模拟引脚读取模拟输入%返回值在0到1023之间sensorValue = a.a ogread (0);
对于从0到511的电位器值,我们将LED从红色褪色到%绿色,保持蓝色恒定在0。如果0 <= sensorValue && sensorValue < 512 greenIntensity = floor(sensorValue/2.0);redIntensity = 255 - greenintensity;blueIntensity = 0;对于电位器的值从511到1023,我们将LED从%绿色褪色到蓝色,保持红色恒定在0。blueIntensity = floor(sensorValue/2.0) - 256;greenIntensity = 255 - blueIntensity;redIntensity = 0;结束
%将强度写入模拟输出引脚。greenIntensity a.analogWrite(10日);blueIntensity a.analogWrite(11日);结束
%关闭会话删除(a);清楚的;

结论

那么,你可能会问,为什么我需要MATLAB,当我可以在Arduino IDE中编写它?答案很简单——交互式开发和调试功能。

当我在这个项目中工作时,有很多情况下我想看到电位计返回的值,因为我在旋转旋钮或快速设置LED的RGB值。使用Arduino IDE,我会更新代码,重新编译它,并上传代码到板之前,我可以看到更新的效果。有了MATLAB支持包,金宝app我就能够在不需要任何额外步骤的情况下动态地调整设置。

请务必参加本次网络研讨会:使用Arduino板和MATLAB学习基本机电一体化概念,了解更多关于模拟和数字I/O以及直流、伺服和步进电机控制的知识。

你用过或者想用Arduino做一些很酷的项目吗?




MATLAB®7.13发布

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。