

英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料
基于低成本开放式硬件的自动控制教学平台
A. Soriano, L. Maracute;ın, M. Vallacute;es, A. Valera, P. Albertos
系统工程与控制系,控制系统与工业计算研究所,巴伦西亚政治大学卡米诺德维拉,
E-46022瓦伦西亚,西班牙
电子邮件:{ansovi,leomarpa,mvalles,giuprog,pedro}@ai2.upv.es。
摘要:自动控制以及编程介绍,逐渐成为年轻一代工科学生的主要教学科目。 为此,为实验室教学提供一个能促进学生积极体验课堂理论概念的实验平台成为一个关键。 在此之前,在这种科目中,实验室工作时的唯一选择是使用市面上出售的封闭式平台,但现在由于技术的进步,许多开放的硬件选项都支持标准化的、直观的编程语言。 为了提供自动控制入门课程的多学科低成本开放平台,本文提出了一种易于编程的开源教育平台,由具有机器臂操纵器的差分移动机器人组成。
1.引言
控制和自动化教学,特别是与移动机器人相关的教学正在成为初高中以及职业教育和大学课程的重要课题(Weinberg和Yu,2003)。 在这些课程中,使用实验平台是学习过程的基础(Greenwald和Kopena,2003),因为它可以直观地显示书本上的基本概念,提高学生的兴趣和增强学习的动力。
目前,现有的教育平台通常是封闭的且价格昂贵。 每个品牌的平台通常与其自己的硬件和软件兼容,大都远离标准,防止使用任何其他协议来连接设备或使用与其自己的产品不同的编程语言。 但是,现在开源硬件的理念蓬勃发展,为我们在开放平台和新的低成本产品中提供了许多选择。 用户使用开放式硬件可以随意添加或修改硬件设备,使系统更加灵活,可扩展性高,完全可实现定制。 例如在移动机器人的情况下,倾向于开放式硬件产品(Fisher and Gould,2012),因为它成本低,易于实施和标准化程度高。 所有这些方面为研究和教育界提供了很大的好处。
另一个关键的方面,选择一个实验平台重点是编程环境,其应该是简单的,具有可快速学习性和强大到足以应用所有的传感器,执行器和设备(通信,识别等)的平台。基于这个特点,如果编程语言是足够直观的,实验平台也可以用于编程教育。例如,基于流程图或块图的视觉语言,像Scratch(由MIT,Resnick等人(2009)开发),Blockly(由Google,Fraser(2013)),Alice(由Carnegie Mellon University,Cooper等人 (2000)),Greenfoot(由肯特大学,Henriksen和Kolling(2004)),Simulink(MathWorks,(2013))和Labview(由National Instruments(2013),Johnson和Jennings(2001)),可以提供一个更自然的方法来编程,运行结果更快,能够充分提高新手和老手的兴趣。
最近出现在自动化和编程教育中的另一个方面是无线技术的广泛使用和知识。现在教学设备开始使用平板电脑和手机等设备来控制,编程和监督移动机器人系统。由于这些设备的普遍使用(学生通常对此技术非常熟悉),学习过程更容易,更具吸引力。
考虑到这些因素,本文介绍了一种使用低成本开放硬件组件构建和开发多学科教育平台的方法,通过使用框图直观易用的编程。此外,还提出了一些应用于平台的可能活动以及与平板电脑或手机交互的一些示例。
经过这次审查,本文的组织结构如下。在第二部分介绍了构建教育平台原型的不同开放硬件设备。在第3部分中,描述了为所提出的平台开发应用程序的图形编程语言以及必要的软件。在第4节中,介绍了原型平台的建立,第5节介绍了应用于平台的一些自动控制概念。最后,最后一部分起草了一些结论。
2.硬件方法
该平台应提供很多功能,而不增加成本。通过分析市场上可用的不同的开源硬件平台,已经开发出基于低成本硬件组件和/或再循环设备的原型平台。平台的主要部件有:微控制器,带电机的机械结构,机械手臂和遥控接口。以下部分将详细介绍可以用于学习自动控制应用概念的平台上用到的一部分设备。
表1.微控制器板比较
2.1微控制器卡
如今,有许多类型的基于ARM处理器的低成本开源微控制器卡。表1从最低到最高列出了处理器速度排列的市场上最受欢迎的控制板之间的比较。
由于主要目的是建立一个低成本的开源平台来引入控制理念,因为不需要高的计算资源,所以任何一张控制板都是合适的。然而,它的编程应该很简单,即便学生对编程不太了解或者他们正在学习编程也都能进行操作。最近,著名的公司MathWorks已经开发了一个Matlab库,使用Simulink模块用于Arduino板开发应用程序。由于这些原因,Arduino板已被选用于组装本工作中开发的平台原型。
Arduino(Thompson(2010))于2005年出现,由于成本低廉且采用开放硬件政策,几年来在科研界广泛传播,作为3D打印机等各种项目的大脑(Evans(2012) ),双足机器人(Al-Busaidi(2012)),两轮自平衡机器人(Juang和Lum,2013),ROS启用移动机器人(Araujo等,2013),远程直流电动机实验(Neto et 2012年),数据采集(Shajahan和Anand,2013),感知和现代显示制作实验室套件(Sarik和Kymissis,2010),网络管理(Faludi(2010)),操纵臂武器控制器(Kadir et al。 (2012)),水下航空器的研究(Busquets等人(2012)),甚至是在无人驾驶飞行器上的较轻的版本(Lim et al(2012))。
在目前的Arduino板模型中,Arduino MEGA(图1)已被此项工作选用。这张卡与Arduino UNO非常相似,但输入和输出端口数量更多。它提供串行通信库和模数转换器。它具有54针数字I / O,16个模拟输入,4个UART(串行端口),256 KB的闪存,16 MHz的时钟频率和连接到任何计算机的USB端口。这四个UART为系统提供了更多的灵活性,因为每个UART可以以不同的波特率运行。
图1 Arduino MEGA板。
由于目的是搭建移动平台原型,所以必须控制至少两台电机。对于电机控制,同一家公司提供了一个名为Arduino Motor Shield(图2)的扩展板,该扩展板安装在同一个MEGA板上,并允许控制两个直流电机,并可以控制其反转(包括H桥)。
图2 Arduino电机盾。
为了给Arduino板编写程序,有一个免费的多平台软件Arduino IDE可以在Arduino的网站上下载。此外,当控制板通过USB连接到计算机时,必须安装插入板中的FTDI端口的驱动程序。 Arduino IDE环境是一个简单的文本编辑器,可以剪切或粘贴并查找或替换文本来编写代码。它有一个消息区域,用于调试和验证代码的文本控制台,用于C / C 的代码编译器,以及一个工具栏,其中包含常用功能的按钮,例如编译代码,将程序下载到板上,创建,打开并保存程序,监视它们等。但是,由于计算机和Arduino之间的串行数据传输,编程可以从任何支持该语言的语言(如Java或Simulink)完成。
2.2结构与电机
建立平台有许多不同的方法,但在这项工作中,平台原型的结构由可以轻松组装的回收的乐高零件组成,这样可以为老师提供几种车型,学生可以选择要建立哪一个。由于同样的原因,车辆模型也采用乐高电机。
乐高Mindstorms平台于1998年出现,其NXT版本于2006年发布(Kelly(2007))。它是自动控制和机器人介绍课程中常用的工具。它是市场上首批出现的具有多种可能性以利用该产品的教学工具之一。然而,随着技术的发展,现在的设备能够提供更好的性能和新的协议,这些封闭的设备在计算和通信能力方面已经过时了。尽管LEGO组件是非常封闭的系统,但是其传感器和执行器通过I2C连接,因此它们可以用于支持I2C协议的任何其他系统。在这个项目中,LEGO Mindstorms直流电机已经被回收用于原型开源平台。这些电机包含编码器(图3),提供电机位置的反馈来计算控制动作。
图3 乐高Mindstorms NXT电机。
这些电机通过包含6根电缆的I2C端口工作在9 V。其中两个为4.3 V和地面的编码器供电。另外两个负责以确定电机的速度和方向的频率发送PWM功率信号。最后两个用于读取编码器。如图4所示,编码器脉冲被偏移,因此可以根据检测到的顺序来确定电动机的方向。因此,尽管电机提供了每转720度的实际分辨率,但实际上它是减半的,因为有必要分析两个周期的时间来检测电机方向。
在第5部分中将介绍从Arduino板控制这些电机的方法。
图4 编码器序列之间的关系。
2.3操纵臂
操纵臂是自动控制研究的典型要素。为了扩大平台原型的多功能性,已经并入了具有4个自由度的低成本机器人手臂操纵器。臂如图1所示。 5.由5台伺服电机组成:一个在基座上,一个肩部功能,一个肘部,另一个作为手腕,第五个打开和关闭夹具。电机控制由伺服控制器SSC-32允许串行连接发送和接收命令。命令保持以下格式:“#X PY TZ lt;crgt;”,其中X是必须移动的伺服的ID,Y对应于伺服必须达到的位置,Z是时间运动必须持续。在指令最后必须有回车符,以完成任何命令。
图5 机器臂和SSC-32控制器。
2.4平板电脑或基于Android的移动设备
已经开发了用于平板电脑或移动设备的Android应用程序,以通过无线通信与原型平台进行交互并测试其功能。日常用于教学的设备的整合包括节省材料成本和学生已经知道设备处理的优势。有许多基于Android操作系统的无线设备。 Android设备的优势在于,由于它是免费软件,该品牌提供了应用程序开发所需的一切。此外,其在Android市场的出版和发行比其他系统更为经济。对于这项工作,已经使用了平板电脑三星Galaxy Note 10.1(图6),它的参数为:分辨率为1280x800的10.1英寸屏幕,1.4 GHz四核处理器,A-GPS,32 GB内存,2 GB RAM,WI-FI,蓝牙和3G通信选项。然而,具有蓝牙连接的任何Android设备都足以开发本文中提出的应用。
图6 三星Galaxy Note 10.1。
3. 软件方法
3.软件方法
已经使用了两种编程语言,一种用于原型平台,另一种用于平板电脑的编程。
Arduino板控制电机控制和手臂控制算法。 Arduino IDE可用于直接在板上执行编程,但在此工作中,已经选择了Matlab-Simulink,因为其中一个目标是对于具有任何编程知识的学生,编程应该简单直观。
另一方面,为了远程与平台原型进行交互,前面提到的平板电脑的Android应用程序已经通过使用Android SDK库的Eclipse开发环境来实现。
3.1 Arduino支持Simulink
众所周知,Matlab是一种数学软件,为开发环境提供了自己的高级语言编程,广泛应用于控制和自动化领域。此外,在Matlab编程环境中,Simulink是一个非常有用的系统分析,模型和仿真工具。尽管Matlab已经使用了高级语言,但Simulink可以直接和图形化地进行编程,从而实现代码生成。由于Simulink中大量可用的块,实现的模型的复杂性和功能由设计者的技能水平决定。这一点使其成为任何学术领域非常有趣的工作工具。
为了使用Arduino的Simulink模块,最新分发的免费图书馆“Arduino支持表单Simulink”。它提供了专门为Arduino板设计的一系列块。以这种方式,Matlab-Simulink中的方案可以以透明的方式实现并转移给Arduino,而不用担心Simulink块和Arduino代码之间的转换。
图7. Arduino硬件的Simulink支持包。
在Arduino提供的块中,与这项工作最相关的是(如图7):
bull;Arduino模拟输入:通过此模块,可以读取由特定引脚施加的电压。该块提供的输出精度为10位。
bull;Arduino PWM:通过该模块将PWM信号发送到所选引脚。信号脉冲的频率设置为490 Hz,可以以8位精度(0到255之间的值)修改占空比。
bull;Arduino数字输入/输出:从这两个块可以在所选择的端口上读取和写入数字信号。
bull;Arduino串行接收/发送:可以使用这些块通过串行端口发送和接收数据字节。
因此,Arduino板以及Simulink集成,可让学生了解嵌入式系统的软件开发过程,而无需通过代码进行编程,而是以完全功能添加,连接和修改块的方式进行简单和交互。
3.2 Android编程
最近移动设备非常受欢迎,并且有许多学生对开发这些设备的应用感兴趣。然而,因为没有针对流程图或框图的编程方法,他们的编程不是一个简单的任务。因此,专门开发了远程测试和控制的基础应用程序,可以将其提供给编译并准备使用的学生。
4.软件硬件集成
本节详细介绍了为构建原型平台而进行的组装。
建立了基于差分配置的两台电机的坚实基础。每个电机都有一个不定向的履带,如图8所示:
图8. 由乐高组件构建的平台原型底座的底视图
在基座中心,已经放置了具有SSC-32控制器的机器人手臂,使得平台与臂的重量平衡。因此,尽管操纵器可以控制其处于任
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[488231],资料为PDF文档或Word文档,PDF文档可免费转换为Word
