/EN
产品干货文章 ELVIS III学习札记之Control系列 | 从直流电机控制到倒立摆控制进阶实验 ELVIS III学习札记之python系列 | 用PyCharm解决开发部署及调试痛点 ELVIS III学习札记之Control系列 | 揭秘用QCB板卡进行直流电机控制实验的优势之处 #物联网 #智能设备 用myRIO和AERO构建IoT教学应用 #物联网 #智能设备 用myRIO和QUBE构建IoT教学应用 SystemLink + ELVIS III | 轻松实现线上远程实验的自主开发! Multisim Live + 浏览器 | 线上仿真实验随时随地做! 基于ELVIS III和Python的红外测距实验 ELVIS III + Python | 如何用Python对ELVIS III进行编程开发 ELVIS跨学科综合实验平台 ELVIS III 机电一体化系统实验板卡 ELVIS III 电机原理与应用实验板卡 IECUBE机械旋转设备综合实验台 CompactDAQ数据采集系统 ​NI USRP软件无线电设备 NI PXI高性能测试系统 IECUBE远程线上实验平台助力集创赛NI杯决赛圆满完成 5个数据采集原则,带你轻松选NI DAQ设备 使用ADS基础教学实验平台制作一架特雷门琴 使用ADS分析DAC,ADC和SPI数据 关于ADS与MAC OS的兼容性 使用ADS基础实验平台和LabVIEW搭建心电图测试仪 QUBE Servo 2助力控制实验远程授课! 工科基础实验 | 通过NI ELVIS III实现团队合作 国外学生人手一个的便携式电路实验室 —— Analog Discovery Studio 国外疫情期间卖断货的Engineering Home神器!! NI ELVIS III 工程实验室:教学生如何创新 电力电子基础 - Multisim电力元件 远程实验 | QLabs通过数字孪生技术助力控制理论课程!
返回列表
#物联网 #智能设备 用myRIO和QUBE构建IoT教学应用
02.23 2023

提供符合产业发展的课程内容,是曾益慧创赋能高校工程教育的手段之一。近几年以来,IoT一直是一个非常热门的技术,它已经被运用到了包括智能家居、医疗保健、农业以及交通运输等许多应用中。在一个万物互联的时代,IoT系统被快速地开发和运用到不同的领域中,IoT工程师需要具备一系列的技能来快速设计和开发IoT系统。那么我们如何来培养这些面向未来的IoT工程师呢?这篇文章中给出了一些开发IoT系统需要学习的重要技能,并且在一个特别设计的IoT系统教学实验中体现了对这些技能的培养和运用。


1 - IoT系统的组成部分和应用协议?

针对不同的应用场景,IoT的架构和实现会有所不同,但是基本上IoT可以被描述为一个分布式的智能系统。智能系统是一个具有传感、处理和通信能力的设备。这些智能系统间,通过一个服务器、云、或者是直接地进行通讯,以完成特定的任务。

参考2015年IEEE的一篇题为“Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications”的论文(2317 Paper Citations,5 Patent Citations,99713 Full Text Views),作者在文章中讨论了IoT应用系统的不同组成部分以及其中可以被使用的不同通讯协议。基于文章中作者讨论到的这些不同元素,下图突出展现了一个普遍的IoT系统中所具有的不同特性。


微信图片_20230223092710.png


IoT系统中的智能设备通常通过设备的产品序列号或者是IP地址被识别出来。另外,这些智能设备需要包含不同的传感器或者执行器,比如需要一个惯性模块单元(IMU)来测量加速度。而且,这些IoT系统中的设备所使用的处理器也可能是不一样的,比如云服务器可能是使用运行在Intel处理器上的Windows操作系统,然后其中的智能手机可能会使用基于ARM架构处理器的Linux或者Darwin系统。通讯协议用来把所有的设备连接在一起,比如通过Wi-Fi网络的UDP。另外,通讯协议也有可能直接被实现或者通过中间件实现。

有许多不同的通讯协议被用来实现IoT系统。NI在一篇名为“A Practical Guide for Connecting LabVIEW to the Industrial IoT”的文章中广泛讨论了IoT应用中的各种主流通讯协议,比如HTTP,Web Socket, Data Distribution Service(DDS),Message Queuing Telemetry Transport(MQTT),和Advanced Message Queuing Protocol(AMQP)。这些协议在网络协议(TCP/IP或者UDP)、服务率质量、安全性和消息系统上都有所不同。

在机器人、控制系统和机电一体化应用中,一个主要的要求是实时或者接近实时的性能。所以,在这一类的IoT系统中的智能设备之间的消息读写速度需要在ms到us的范围内。这就使得DDS和MQTT两个协议,在机电一体化相关的IoT应用中,得到了广泛的应用。而基于Web的协议,比如HTTP、Web Socket或者AMQP对于机电一体化的IoT应用而言,显得太慢和不稳定。而对于DDS和MQTT两个协议而言,在实现机电一体化IoT应用时,也有各自的优势和适用场景:MQTT的可扩展性和容量会更好,但是由于MQTT是一个中心化的协议,对Broker的依赖很强,如果Broker出现问题,将导致整个IoT系统瘫痪;DDS的优势在于节点间的通讯性能和可靠性,由于DDS是一个去中心化的协议,节点和节点之间可以实现直接通讯,所以系统中的一个或者多个节点出现问题,并不一定会导致整个IoT系统瘫痪,这也使得节点和节点间的通讯有更快的响应时间。


微信图片_20230223093608.png


2 - 基于myRIO和QUBE实现MQTT IoT系统教学实验


接下来,我们将利用myRIO和QUBE-Servo 2实现一个基于MQTT的IoT系统,这个IoT系统中包含2个被控制的倒立摆对象。这个IoT系统的架构如下图所示:

640 (5).png



这个IoT系统包含了4个节点:Broker节点、控制节点、Servo节点0和Servo节点1,其中Broker节点和控制节点运行在同一台计算机上(也可以运行在不同计算机上)。


这个IoT系统要实现的目标是驱动倒立摆起摆(摆杆初始位置是在最下端,悬挂)到竖直倒立位置,一旦摆杆平衡,把摆杆下面的旋转臂旋转到70度位置。下面图中的有限状态机展示了这个IoT实验的设计思路。


微信图片_20230223093753.png


如果用户把摆杆下面的旋转臂旋转到中心位置,则控制旋转臂旋转到-70度位置停留。如果其中的一个倒立摆摆杆失去平衡,则使得两个倒立摆的平衡控制器都失效,一旦两个摆杆都静止不动后(回到初始状态),起摆动作再次开始,即状态机中的DOWN,SWING UP,MOVE和STOP流程再次开始启动。


控制节点和每一个Servo节点的指令更新时间是10ms,并不需要达到非常实时的性能。每一个Servo节点通过一个myRIO实现起摆和平衡控制器,myRIO基于运行在双核ARM Cortex-A9处理器上的Linux实时操作系统以250Hz(4ms循环速率)速率来运行起摆和倒立摆平衡控制器。

在这个IoT系统场景中,“Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications”论文中讨论的IoT应用系统的不同组成部分基本都涵盖到了。


微信图片_20230223094027.png



每一个Servo节点的识别通过IP地址实现,这个场景中的智能设备是QUBE-Servo 2 + myRIO。QUBE-Servo 2中包含一个直流电机来驱动摆杆下面的旋转臂,旋转臂和摆杆的偏转角度通过编码器来测量得到。QUBE-Servo 2上还有一条LED灯带来表现设备的状态。QUBE-Servo 2直接连接到包含了以太网/USB和Wi-Fi连接方式的myRIO嵌入式平台上。Servo节点运行在myRIO处理器上,控制节点运行在计算机的CPU(Intel或者AMD处理器)上,每个节点间的通讯消息通过TCP/IP网络协议完成。MQTT的通讯机制通过Quanser专门开发的中间件软件“邮政服务”来实现,这是一个类ROS的框架。

微信图片_20230223094102.png


上图中展现了该IoT系统中的MQTT消息传递。控制节点从Broker节点上订阅了传感器数据主题,并且基于传感器得到的测量结果发布指令主题。控制节点可以接收到所有连接到Broker上的Servo节点的传感器数据。Servo节点发布的旋转臂和摆杆的测量位置,是通过Broker上的传感器数据主题订阅实现的。在这个IoT系统中控制和Broker节点都是运行在同一台计算机上的,当然Broker也可以运行在一个云服务器上,这样就可以通过云来传递每个节点间的消息。

微信图片_20230223094146.png



上图中对指令主题和传感器主题的数据结构进行了说明。传感器数据主题中,包括旋转臂和摆杆的测量位置以及摆杆的能量。指令主题中包括了使能信号、用于控制直流电机的电压或者指令以及LED灯带的颜色信息(用于表明QUBE的状态)。


3 - 这个MQTT IoT系统教学实验的学习产出


开发一个与机电一体化或者控制系统相关的IoT应用系统,需要掌握许多的技能,比如:


1. 仪器使用:知道如何使用LabVIEW通过myRIO和QUBE-Servo 2进行交互,包括知道如何通过软件校准位置编码器和直流电机等;


2. 建模和控制系统设计:如何设计和基于摆杆平衡控制器实现起摆及状态反馈控制;


3. 快速控制原型软件:对于机电一体化的IoT应用,在诸如MATLAB/Simulink和LabVIEW的软件平台中实现控制算法是很常见的情况,可以节省在编程方面花费的精力;


4. 嵌入式系统:在这个IoT系统中,myRIO被用来处理和传输传感器的数据,其他的一些微控制器,例如树莓派或者Arduino也有可能被使用。了解这些控制器的使用非常重要;


5. 程序设计:使用诸如有限状态机(FSM)的编程设计技术来设计IoT应用;


6. 网络:知道不同的网络拓扑结构并且知道如何搭建它们。在这个IoT系统中,涉及到了如何搭建和配置一个基于TCP/IP的网络系统来连接所有不同的设备;


7. IoT应用通讯协议:学习如何使用MQTT通讯协议,包括决定主题的结构,用中间件来编程MQTT,以及设置不同的节点。


进一步扩展,还可以在这个IoT系统中,引入诸如关于网络安全的问题。由于这些平台(myRIO,QUBE-Servo 2)的开放架构,使得它们可以被自定义二次开发,比如实现诸如SSL或者TLS的安全协议应用。

本文内容参考文献资料:

[1] Quanser's perspectives on Internet of Thinks for academic applications, Michel Levis M.A.Sc., Applicaiton Engineer, Quanser

[2] Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications, Al-Fuqaha, Guizani, Mohammadi, Aledhari, & Aledhari, 2015

[3] A Practical Guide for Connecting LabVIEW to the Industrial IoT, National Instruments



准备好定制您专属的工程教育产教融合方案了吗?
曾益慧创团队特别希望与您交流,分享我们的行业洞见和成功经验,为您量身定制解决方案。
立即沟通