基于myRIO-UDP协议的智能小车实现范例

Posted 同济虚拟仪器CLUB

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于myRIO-UDP协议的智能小车实现范例相关的知识,希望对你有一定的参考价值。

点击上方 “公众号”可以订阅哦!
myRIO-UDP
基于myRIO-UDP协议的智能小车实现范例
基于myRIO-UDP协议的智能小车实现范例
ShiGuang Liu, School of Automobile Study, TongJi University
Email: 563234181@qq.com
Address:NO.4800 Cao'an Highway, Shanghai, 201804, china


基于myRIO-UDP协议的智能小车实现范例
基于myRIO-UDP协议的智能小车实现范例
一、内容简介
基于myRIO-UDP协议的智能小车实现范例
基于myRIO-UDP协议的智能小车实现范例
1.1整体结构
智能小车的控制端为ios设备,通过UDP协议实现无线数据传输,这些被传输的数据通过myRIO控制小车电机,进而完成小车的基本动作。具体结构可参考下图:

基于myRIO-UDP协议的智能小车实现范例

基于myRIO-UDP协议的智能小车实现范例
1.2动手目标:使用IOS设备无线遥控智能小车
基本功能:IOS设备控制小车动作,并将控制程序作为开机启动程序

1.3注意事项:
IOS设备需安装“sensor stream”应用(在 APP Store 中搜索即可,可免费试用)
编程的上位机安装好myRIO驱动模块(安装完成后连接myRIO后可自动识别即可)

1.4本次动手实例按照内容可以划分为以下两大块:
内容1:调试无线接收模块
实现功能:IOS设备通过无线局域网发送屏幕位置坐标或者陀螺仪传感器数据,并在LabVIEW上正确解析
内容2:使用myRIO控制小车电机
实现功能:定义小车正转反转模式判定,配置myRIO的PWM输出接口

1.5 myRIO涉及到的模块
无线模块(WiFi)
接收IOS设备发送的控制数据
下载刷写实时处理器(RT)中的程序
PWM输出接口
小车电机的H桥路已整合到智能小车底板上,因此无需在LabVIEW中对小车正反转做重复定义




基于myRIO-UDP协议的智能小车实现范例
二、具体操作过程
基于myRIO-UDP协议的智能小车实现范例
2.1无线数据调试
通讯方式采用UDP协议
是一个面向无连接的协议。采用该协议不需要两个应用程序先建立连接。

为什么采用UDP?
TCP:传输可靠,用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源);
UDP调试要求少,入门简单,用于传输少量数据(数据包模式)、速度快;

2.2 控制端IOS设备与编程上位机通讯
1.IOS设备和上位机连接同一无线网络;
2.打开IOS设备上下载好的APP“sensor stream”;
3.查询电脑的IP地址并将其输入APP相应位置。
基于myRIO-UDP协议的智能小车实现范例
基于myRIO-UDP协议的智能小车实现范例
4.使用USB连接线将myRIO连接至电脑
5.打开NI MAX配置myRIO的网络参数

基于myRIO-UDP协议的智能小车实现范例
6.打开training文件夹中的myRIO_xx子文件夹中的“i_touch_control_RT Main.vi”(此文件夹在俱乐部QQ群文件中) 如下图所示:
基于myRIO-UDP协议的智能小车实现范例
这是一个通知器结构,通知器可同时向多个循环广播数据,但无法缓存数据,这是与队列的明显区别。
7.下面我们详述一下消费者循环的几个部分,如下图中所示,消费者循环共实现两个功能,分别为触屏坐标和陀螺仪传感器两类:
基于myRIO-UDP协议的智能小车实现范例
8.把上位机连接到与myRIO同一无线网后,运行i_touch_control_RT Main.vi同时,点击IOS设备上的Send Data to PC键将控制设备上的数据发送到上位机,观测界面上数据流的形式,找出有效数据位:
基于myRIO-UDP协议的智能小车实现范例
基于myRIO-UDP协议的智能小车实现范例
9.仔细观察数据流的形式,我们可以发现处于触屏模式时,每当手指点触屏幕,数据流的第94字节及以后相邻几个字节会发生相应改变,可以判断这就是点触坐标的数据流位置,此时观察程序框图面板可以发现其截取数据流的偏移量设置正是从93开始(LabVIEW的索引从0开始),与我们的观察结果一致。(数据流采用16进制,这样每行有24个字节,到我们所用字节正好是94,这一点请大家自行确定)
具体到每一字节所代表的含义,如下:
94字节:是否有第一个点(0,1两种状态);
95-98字节:第一个点X坐标;
99-102字节:第一个点的Y坐标;
103字节:是否有第二个点(同样只有0,1两种状态)
104-107字节:第二个点X坐标;
108-111字节:第二个点Y坐标;

10.在这里我们只取第一个点的数据即可,两个点控制小车动作的逻辑判断可以作为同学们自己的扩展部分。
接下来介绍一种较为简单的动作定义方式,通过第一个触点的坐标控制小车的动作,以最大坐标为450 320的屏幕为例,可以有如下的定义方式:
基于myRIO-UDP协议的智能小车实现范例
将上图的逻辑用LabVIEW表述出来,为下图形式:
基于myRIO-UDP协议的智能小车实现范例
这里强调一下判断Y坐标是否大于0的必要性:因为这里的左转定义为Y<150,而在默认没有点触屏幕时坐标默认为(-1,-1),因此满足左转的定义,这样便造成了冲突,将使系统在没有点触屏幕时也处于左转状态;因此必须判断Y是否大于零以确定是否处于默认状态。如果你采用其他定义方式,则可能没有这一过程。
进行到这一步我们的内容1基本上就完成了,此时可运行程序检验你的逻辑定义是否正确,保证后续步骤的顺利进行。


2.3 myRIO控制小车电机
1.这里首先认识一下智能小车的构成:
小车采用5V直流供电,左右轮各有一个减速电机,底板集成有H桥,并提供了PWM控制端口,可直接接收myRIO的控制信号
本次课程只涉及小车的动作控制,图像避障等功能暂不考虑

基于myRIO-UDP协议的智能小车实现范例
基于myRIO-UDP协议的智能小车实现范例
L293D双H桥芯片:
基于myRIO-UDP协议的智能小车实现范例
2.调用PWM输出口驱动电机
新建无线连接的myRIO project,然后新建一个Vi,在编程中选择myRIO选择Default FPGA personality 中的PWM输出口;
基于myRIO-UDP协议的智能小车实现范例
基于myRIO-UDP协议的智能小车实现范例
这里PWM输出口必须给定其频率和占空比,频率设置范围较大,这里给定为100HZ,占空比输入范围为0-1。
按照下图的方式,先试验一下端口的控制过程:

基于myRIO-UDP协议的智能小车实现范例
将所定义管脚用杜邦线连接到小车底板的正反转接收口上,如下图所示:
基于myRIO-UDP协议的智能小车实现范例
改变Duty Cycle的值,观察小车电机的转动速度。
这里需要注意:每个单机有两个控制端口,分别使电机正传和反转,这里需要注意不能使同一个电机的两个控制端口都为高电平,以免发生危险。

3.将内容1中定义的数据解析程序添加进project
将已有UDP接收程序(i_touch_control_RT Main.vi)添加至新创建的project,在已有VI上修改方便初学者快速编程
按照上一步中定义PWM接口的方式在i_touch_control_RT Main.vi中添加四路输出控制端口

基于myRIO-UDP协议的智能小车实现范例
4.进行到这一步控制数据解析和用myRIO控制小车电机都已分别完成,现在需要将两部分结合起来,用解析的数据控制四路端口的输出:
1)将内容1中的各个状态组合成为一个数组,并转化为数值,其原理为二进制到十进制的转换

基于myRIO-UDP协议的智能小车实现范例
此时,定义case结构分别指定不同动作时PWM输出口的值,有如下对应关系:
基于myRIO-UDP协议的智能小车实现范例
其程序框图如下:
基于myRIO-UDP协议的智能小车实现范例
此时,程序框图已经全部完成,点击运行可将程序下载至myRIO中,此时在IOS设备端输入myRIO的ip地址,然后再次点击Send Data to PC按键,即可控制小车动作了。此时myRIO仍连接着电源线,这限制了小车的自由活动,这里建议使用小车上的电池供电,并将编写完成的程序作为启动程序下载到myRIO中,这样每次启动时,myRIO 即可自动运行编写好的控制程序,具体的操作步骤如下:
基于myRIO-UDP协议的智能小车实现范例
在“源文件”中选择编写的程序,并按下图中的操作顺序操作即可,这里启动VI下边的始终包含部分的含义大家有兴趣可查阅资料。
基于myRIO-UDP协议的智能小车实现范例
生成应用程序后,右键单击“实时应用程序”选择“设置为启动项”;再次右键单击“实时应用程序”选择“作为启动项运行”即可:
基于myRIO-UDP协议的智能小车实现范例
基于myRIO-UDP协议的智能小车实现范例
基于myRIO-UDP协议的智能小车实现范例
三、问题拓展
基于myRIO-UDP协议的智能小车实现范例

1.重新定义小车动作判定方式,加入调速模块,可以根据IOS控制端的指令调整小车移动速度的快慢;
2.使用myRIO无线模块作为热点,IOS设备接入myRIO的无线网实现控制
3.拓展小车的避障、测距和视频等功能。
基于myRIO-UDP协议的智能小车实现范例

基于myRIO-UDP协议的智能小车实现范例
Duang~

I
微信号:tjlabview
基于myRIO-UDP协议的智能小车实现范例 基于myRIO-UDP协议的智能小车实现范例
长按识别二维码
关注我们

QQ号: 468559029
长按识别二维码
加入我们

以上是关于基于myRIO-UDP协议的智能小车实现范例的主要内容,如果未能解决你的问题,请参考以下文章

毕业设计:基于单片机的超声波智能跟随小车 - 物联网 智能小车 嵌入式单片机 stm32 跟随小车

基于STM32的智能小车--电机驱动设计

毕业设计 - 题目: 基于单片机的智能小车 - 嵌入式 物联网 本科毕设

智能小车七《上位机android》

基于PID的智能小车循迹控制

#基于DAYU200开发一个好玩的图传智能小车--demo样例#