机器人绝对是当前的一个热门话题之一。从实验室机器人到各种创新玩具机器人,越来越多的技术爱好者从关注到实践,纷纷投身机器人开发的怀抱。
工欲善其事,必先利其器。
MATLAB/Simulink算法开发平台作为汽车、军工等行业进行控制算法设计的必备工具,基于Simulink模型的建模、仿真、测试验证以及代码生成的设计理念(MBD)也正在替代传统的手写C代码的开发流程,成为算法开发的主流与未来的趋势。
这对于开发机器人意味着什么呢?
你不仅可以摆脱繁复的C代码编程,还可以借助MATLAB强大的工具箱系列,通过仿真来帮助你测试算法、优化参数等等。如果用户购买了代码生成工具箱,还可以提取所生成的嵌入式 C/C++算法函数,集成到自己外部的工程项目中去,这也是商业产品开发的主流选择。
MATLAB/Simulink Support Package
MATLAB/Simulink Support Package为一系列所支持的板卡提供了基本的驱动模块,只需要在软件界面上进行简单的配置,就可以将实现框图式的算法模型一键下载到硬件板卡上去,有助于我们快速实现早期创意,缩短原型开发周期。
通过它,我们可以很容易实现与这些硬件通讯,读取数据到MATLAB环境进行分析和处理,轻松下载Simulink这种框图式的算法来实现各种有创意的应用。
从模型到实现
使用MATLAB/Simulink Support Package相当于铺平了从Simulink到硬件实现的路,使得不擅长写C代码的人可以彻底摆脱代码实现的困扰,借助Simulink平台也能轻易的开发出更多有趣的应用来。
案例介绍
硬件:Arduino MEGA 2560
Step 1:硬件连线
利用光敏电阻与固定电阻串联形成分压电路,并将分压电压读入Arduino,然后用这个值来输出控制发光二极管的明暗。将分压电压值读入Arduino的A1引脚;将发光二极管的正极连接PWM的第二个引脚,如下图所示。
硬件连接图
Step 2:软件准备
通过MATLAB主界面上的Add-Ons的Get Hardware Support Packages向导,选择所需要安装的支持包。
安装包下载入口
选择 Arduino,根据向导提示下载或安装支持包。
下载安装向导
安装完成后,打开Simulink Library Browser中的Simulink Support Package for Arduino Hardware库,如下图。我们可以看到为Arduino提供的一系列驱动模块,从模块的示意图以及端口的符号,我们可以大概推测它的作用:从各种类型的板卡接口读取或输出信号。
另外从左侧树状图可以看到,还提供了 Ethernet Shield 与 Wifi Shield 的驱动模块。
Arduino支持库
Step 3:建模
Simulink建模可以简单描述为模块的拖拽与连线的过程。
我们需要从A1端口(分压线接入)读取分压信号,所以从库里拖入一个Analog Input模块,并双击设置端口号为1,设置采样时间为0.01 S。另外还需要输出到 PWM的第二个引脚( LED连接处),所以拖入一个PWM模块,并双击设置端口号为2。
为了简化整个下载过程,我们这里对信号不做任何算法处理,直接将两个模块连接起来,如下图。这也就意味着LED的亮度与光敏电阻状态直接相关。
模型截图
Step 4:编译下载
Simulink Support Package for Arduino Hardware支持几乎所有的Arduino型号。在点击红色方框的按钮编译下载之前,需要通过配置页面来指定当前所使用的Arduino板卡类型。
设置Arduino板卡
确保Arduino与电脑相连,点击上图模型截图中红色方框的编译按钮,框图将会自动生成C/C++代码,并后台自动调用Arduino IDE进行编译下载到Arduino板卡上去。此时,你用手捂住光敏电阻,便会看到LED灯亮度的变化。
Step 5:在线调试
对于Arduino MEGA 2560等型号,还支持在线调试。在配置页面,除了选择型号外,如下图设置为 “External model"。
设置在线调试运行
点击绿色按钮开始仿真。
此时,框图同样被生成代码并编译下载到Arduino上运行,同时Simulink模型运行,双击打开示波器Scope模块实时看到当前所读取的传感器信号。这个数据也可以保存下载,做后期传感器标定与分析。
信号波形
传感器标定,也就是经常都需要将原始值进行线性或非线性缩放以及平移,得到有物理含义的数值,比如自定义的光照强度等级。如下图,中间接入一个简单的查表模块进行线性缩放。
支持一键下载的硬件除了举例的Arduino之还有很多,算法的设计也可以非常复杂。实际上,越是复杂的算法,才越能体现框图式算法设计方法的优势。
下载安装对应的硬件支持包之后,帮助文档里都会提供由浅入深的应用案例。如下图是一个LEGO解魔方算法的一个案例。
LEGO解魔方算法模型
打开这个模型,点击编译,就可以把这个算法完整下载到 LEGO 机器人上去了,有兴趣的可以自己亲自动手试一试。
-
传感器
+关注
关注
2548文章
50664浏览量
751942 -
示波器
+关注
关注
113文章
6190浏览量
184509 -
机器人
+关注
关注
210文章
28191浏览量
206505
发布评论请先 登录
相关推荐
评论