数据通信论文之双车调试与PC机通信_第1页
数据通信论文之双车调试与PC机通信_第2页
数据通信论文之双车调试与PC机通信_第3页
数据通信论文之双车调试与PC机通信_第4页
数据通信论文之双车调试与PC机通信_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据通信应用(2015 2016 年)智能车竞赛双车通信与调试方案学生姓名:学号:专业班级:指导老师:摘要在第十届全国大学生智能车竞赛中,官方引入了“双车追逐组”。其比赛规则明确说明,两辆车子之间不能有任何物理连接,在车子比赛过程中,双车不能有长时间的物理接触,但是可以有瞬间的碰触。我很荣幸参加了第十届的智能车比赛的“双车追逐组”,负责双车通信与调试。而今又要写“数据通信”的应用,正好趁这个机会,将自己的双车通信与调试方案写出来。关键词:智能车、通信、物理连接、调试1.比赛规则与通信方案选择规则规定,双车之间不能有物理连接,不能长时间的碰触,而且最终成绩是按照如下公式计算的:T = t1+5(

2、t1-t2)其中,t1为第一辆车通过赛道一圈的时间,t2是第二辆车计时开始到通过终点的时间。可见比赛不但要求双车不能有物理接触,而且距离也须适中,否则就时间差5倍的乘积是很难让人接受的。所以双车之间必须建立数据交流,即要保证双车不撞车,要保证双车间距不能够过大。难题是我们智能车车模的控制是利用定时器控制的,就是将所有的控制指令都放在PIT中断内进行,因为车模在行进过程中,受到舵机响应速率、电机驱动模块的限制,不能过于频繁的控制,所以不能安照顺序结构对车模进行控制。而数据通信要求有实时性,而且要保证在通信过程中不能影响车模的正常运行。两辆车模的PIT进入中断时刻无法做到同步,不可能采用同步通信的

3、方式进行通信,经过我前思后想之后,决定化繁为简,将双车通信定为双车单向通信。同时为了便于无线调试,我在车模电路主板上预留了单个车模与PC上位机通信的数据接口。在通信工具选择过程中,我们最终选择了蓝牙,并将通信定为“三蓝牙”通信方案。首先蓝牙调试技术在我校智能车队较为成熟,便于上手;其次蓝牙可以直接插在串口上,而主控芯片K60单片机有丰富的串口。而无线通信模块NRF2401模块也可以用在双车通信中,但是我们没有选,主要原因如下:第一,他们都是半双工的, 无法实现实时双向传输;第二, 24L01 的程序比较麻烦,新手不好使用;第三, 使用现成串口通信,比较方便。2.三蓝牙方案与PC上位机三蓝牙方案

4、通信框图如下:其实也可以称为其是四蓝牙通信方案,因为通信过程中可以同时使用四个蓝牙进行通信。但是收到比赛经费的限制,我们就买了三个蓝牙,采用双车分时与电脑上位机通信的办法。参数调试过程中,需要调试车模的参数,比如舵机以及电机的 PID。我没有去写主车到从车的参数数据的发送协议,而是采用来网上流传很广的虚拟数据示波器datascope 。通信框图如下:3.通信调试代码(省去初始化)在通信和调试过程中,我们发现由于串口通信速率有限,所以最终决定只发送距离标志,而不是距离数值。程序代码如下:void Send_Sign() if(distance<10) /当距离小于10 uart_putch

5、ar(UART5,'A'); else if(distance>=10&&distance<20) /当距离 uart_putchar(UART5,'B'); else if(distance>=20&&distance<30) /当距离 uart_putchar(UART5,'C'); else if(distance>=30&&distance<40) uart_putchar(UART5,'D');/A车减速 else if(distance

6、>=40&&distance<50) uart_putchar(UART5,'E');/A车加速 else if(distance>=50&&distance<60) uart_putchar(UART5,'E');/A车加速 else if(distance>=60&&distance<70) uart_putchar(UART5,'F');/A车加速 else uart_putchar(UART5,'G'); 而datascope上位机,我将他

7、们给的函数代码,重新封装,形成数据个数通道可以选择、参数可以调节的参数。封装代码如下:void DataScope_Display() u8 i=0,Send_Count=0; DataScope_Get_Channel_Data(float)(ad_result0) , 1 ); /将数据 1.0 写入通道 1 DataScope_Get_Channel_Data(float)(ad_result1) , 2 ); /将数据 2.0 写入通道 2 DataScope_Get_Channel_Data(float)(ad_result2) , 3 ); /将数据 3.0 写入通道 3 Data

8、Scope_Get_Channel_Data(float)(ad_result3) , 4 ); /将数据 4.0 写入通道 4 DataScope_Get_Channel_Data(float)(ad_result4) , 5 ); /将数据 5.0 写入通道 5 DataScope_Get_Channel_Data(float)(ad_result5) , 6 ); /将数据 6.0 写入通道 6 DataScope_Get_Channel_Data( 7.0 , 7 ); /将数据 7.0 写入通道 7 DataScope_Get_Channel_Data( 8.0 , 8 ); /将数

9、据 8.0 写入通道 8 DataScope_Get_Channel_Data( 9.0 , 9 ); /将数据 9.0 写入通道 9 DataScope_Get_Channel_Data( PWM_OFFSET , 10); /将数据 10.0 写入通道 10 Send_Count = DataScope_Data_Generate(10); /生成10个通道的 格式化帧数据,返回帧数据长度 for( i = 0 ; i < Send_Count; i+) /循环发送,直到发送完毕 uart_putchar(PUT_DATA,DataScope_OutPut_Bufferi); /ua

10、rt_putchar(UART3,'S'); / while(UART3->SR&0X40)=0); / UART3->DR = DataScope_OutPut_Bufferi; /从串口丢一个字节数据出去 /delayms(50); /20fps, 帧间隔时间。 不同电脑配置及 USB-TTL 设备的优劣均会影响此时间的长短,建议实测为准。 Datascope上位机画面如下,由于在使用过程中没有截图,这里给出已张没有数据的截图:4.通信与调试结果在通信与调试过程中,我们发现方案效果不错,在通信过程中当距离过大时,前车有明显的减速;距离过小时,前车有明显的加速。而上位机调试,也可以通过da

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论