飞思卡尔技术报告
飞思卡尔智能汽车设计技术报告

第九届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学校:武汉科技大学队伍名称:首安二队参赛队员:韦天肖杨吴光星带队**:**0敏I关于技术报告和研究论文使用授权的说明本人完全了解第九届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:带队教师签名:日期:II目录第一章引言 (1)1.1 概述 (1)1.2 内容分布 (1)第二章系统总体设计 (2)2.1 设计概述 (3)2.2 控制芯片的选择 (3)2.3 线性 CCD 检测的基本原理 (3)2.3 系统结构 (5)第三章机械系统设计 (7)3.1 底盘加固 (7)3.2 轮胎处理 (7)3.3 四轮定位 (8)3.4 差速器的调整 (12)3.5 舵机的安装 (13)3.6 保护杆的安装 (15)3.7 CCD的安装 (16)3.8 编码器的安装 (17)3.9 检测起跑线光电管及加速度计陀螺仪的安装 (18)第四章硬件系统设计 (19)4.1 最小系统版 (20)4.2 电源模块 (21)4.3 CCD模块 (22)4.4 驱动桥模块 (23)4.5 车身姿态检测模块 (24)4.7 测速模块 (24)4.8 OLED液晶屏及按键、拨码 (25)第5章程序设计 (27)III5.1 阈值计算 (27)5.2 赛道判别 (28)5.3 舵机控制 (28)5.4 电机控制 (29)5.5 PID 介绍 (30)第六章相关工具介绍 (32)6.1 软件开发平台 (32)6.2 蓝牙模块及超级示波器 (35)第七章车模主要技术参数说明 (37)第八章总结 (38)IV第一章引言1.1 概述全国大学生“飞思卡尔杯”智能汽车竞赛,以“立足培养、重在参与、鼓励探索,追求卓越”为宗旨,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神。
飞思卡尔智能车 电磁组 技术报告

//#define K10
//#define Kp 1;//PID的//#define Kd 1;
#include <hidef.h>
#include <stdio.h>
#include <math.h>
#include <MC9S12XS128.h>
3.1.3
考虑到适当增加力臂来提高舵机的灵敏度和为了赛车布局的的紧凑,采取了如图3.2所示的安装方法。
图3.2舵机安装结构
3.1.4
采用接插件与焊接结合的方式连接传感器、主控板、编码器、电机驱动电路、电机、赛道起始检测等单元,既考虑可靠性,又兼顾结构调整与安装的便利性。具体安装结构如图3.3所示,
图3.3主控板安装结构
[6]卓晴.基于磁场检测的寻线小车传感器布局研究[J].清华大学.2009
[7]杨延玲.载流直导线的电磁场特性分析[J].山东师范大学.2007
[8]王毅敏.马丽英等.一种改进的数字PID控制算法及其在励磁系统中的应用电网技术[J].1998
[9]高金源,夏洁.计算机控制系统[M].清华大学出版社.2007
本校积极组队参加第六届“飞思卡尔”杯全国大学生智能汽车竞赛。从2010年底着手准备,历时半年多,经过不断试验设计,最终设计出较为完整的智能赛车。在赛区比赛中获得了较好的综合性能和成绩。
在本次比赛中,采用大赛组委会统一提供的竞赛车模,采用飞思卡尔16位微控制器MC9S12XS128作为核心控制单元,构思控制方案及系统设计,进行包括机械结构的调整与优化,硬件的设计与组装、软件控制算法的编写与改进等过程(小车上的具体方案模块有传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等)从而实现小车智能化的识别道路,最终实现智能化竞速。
飞思卡尔智能车技术报告

第六届“飞思卡尔”杯全国大学生智能汽车邀请赛技术报告学校:队伍名称:参赛队员:带队教师:关于技术报告和研究论文使用授权的说明本人完全了解第六届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:带队教师签名:日期:摘要随着现代科技的飞速发展,人们对智能化的要求已越来越高,而智能化在汽车相关产业上的应用最典型的例子就是汽车电子行业,汽车的电子化程度则被看作是衡量现代汽车水平的重要标志。
同时,汽车生产商推出越来越智能的汽车,来满足各种各样的市场需求。
本文以第六届全国大学生智能车竞赛为背景,主要介绍了智能车控制系统的机械及硬软件结构和开发流程。
机械硬件方面,采用组委会规定的标准 A 车模,以飞思卡尔半导体公司生产的80管脚16 位单片机MC9S12XS128MAA 为控制核心,其他功能模块进行辅助,包括:摄像头数据采集模块、电源管理模块、电机驱动模块、测速模块以及无线调试模块等,来完成智能车的硬件设计。
软件方面,我们在CodeWarrior IDE 开发环境中进行系统编程,使用增量式PD 算法控制舵机,使用位置式PID 算法控制电机,从而达到控制小车自主行驶的目的。
另外文章对滤波去噪算法,黑线提取算法,起止线识别等也进行了介绍。
关键字:智能车摄像头图像处理简单算法闭环控制无线调试第一章引言飞思卡尔公司作为全球最大的汽车电子半导体供应商,一直致力于为汽车电子系统提供全范围应用的单片机、模拟器件和传感器等器件产品和解决方案。
飞思卡尔公司在汽车电子的半导体器件市场拥有领先的地位并不断赢得客户的认可和信任。
其中在8 位、16 位及32 位汽车微控制器的市场占有率居于全球第一。
飞思卡尔公司生产的S12 是一个非常成功的芯片系列,在全球以及中国范围内被广泛应用于各种汽车电子应用中。
2024年飞思卡尔智能车总结(四篇)

2024年飞思卡尔智能车总结关于飞思____智能车轨迹追踪竞赛飞思____智能车竞赛,由飞思____公司赞助,是一项全国本科院校共同参与的科技竞赛活动。
今年,安徽省有幸成为第____届省级赛区,我们专科院校也有幸参与其中。
基于专业的匹配,我们系在本专业中选拔了一些同学,我非常荣幸能与我的团队并肩合作。
由于我们学校初次参加,缺乏经验,指导老师正与我们一起逐步探索解决方案。
我们选择使用B型车进行光电寻迹任务。
根据任务需求,老师将其划分为几个关键模块(寻迹模块、电源模块、驱动模块、测速模块),我负责的是寻迹模块的构建。
起初,对于黑白寻迹,我仅感到“神秘”。
通过查阅资料和老师的指导,我理解了其寻迹原理。
这主要基于黑白颜色对光的反射差异(白色完全反射,黑色完全吸收)来识别黑白线。
由于我们之前未接触过传感器知识,对此领域略感模糊,因此我专门投入时间学习传感器,理解了其在电路中的功能。
接下来,我们面临材料选择的挑战,市场上的光电管种类繁多,各校使用的也不尽相同。
我们需要找到一款适合我们车辆的光电管。
我最初在网上找到一些电路图,并购买了一些光电管进行焊接,但结果并未达到预期。
我一度认为问题出在光电管上,但即使更换为光电发射与接收一体管,问题仍未解决。
在一段时间的停滞和反复试验后,我尝试调整了与接收管串联的电阻值(从10k改为100k),意外地提高了接收距离,达到十几厘米。
这仍不理想,因为为了防止光电管之间的相互影响,每个光电管都需要加上套管,而我们购买的光电管无法满足这一要求。
经过深入研究,查阅资料,以及反复实验,我们最终选择了____公司的光电管(型号)。
我想强调的是,他人的经验可以作为参考,但不一定适用于我们自身,就像我之前选择的光电管电路图,可能在某些情况下适用,但在我们的特定需求下并不理想。
在探索阶段,逐步实验始终是至关重要的。
确定光电管后,我们进入了电路焊接阶段。
我们借鉴了其他学校的经验,初步决定使用____来配置光电管。
飞思卡尔智能车光电组技术报告

飞思卡尔智能车光电组技术报告一、智能车光电组概述智能车光电组是指智能车中的关键性能元件——光电传感器集合体。
它能对车辆运动状态、线路、红绿灯等信息进行感知,实现智能驾驶的基础。
智能车光电组主要包括红外线传感器、光耦传感器、光电限位传感器等。
这些传感器通过感知周围环境中的光电信息,将其转化为电信号,再与控制电路进行通信,完成车辆的控制和判断。
二、红外线传感器红外线传感器是智能车光电组中最常用的传感器之一,其主要作用是对赛道上各种异物或者障碍进行探测,从而实现自主避障。
红外线传感器有两种,一种是红外线避障传感器,主要检测前方是否有障碍物。
另一种是寻迹传感器,主要检测车辆行进轨迹及车轮边界。
这两种传感器都通过发射一束红外线,然后检测红外线反射信号的强弱,来判断当前道路状态。
智能车中多数采用两种红外线传感器的组合,一个用于永久性突出物体的检测和避障功能,一个用于寻迹,检测当前赛道行驶的状态。
这种组合方案在实际使用中既能够减小了智能车的体积,同时也能够同时满足避障和寻迹两种功能的需求。
三、光耦传感器光耦传感器主要是测量霍尔电压,电容电压,电阻电压等物理量,全局范围内掌握智能车行驶的状态,构成智能车控制系统的重要部分。
通过对各种物理量的感应,对智能车进行动态实时控制。
如针对车速问题,可以采用霍尔电压测量方法,对车辆运动状态进行简单的判断。
智能车中采用光电传感器和电路配合的方法,还可以实现车辆行驶过程中的速度随时控制和加速度调整。
四、光电限位传感器光电限位传感器是一种可以控制智能车极限运动状态的传感器。
传感器通过实时控制智能车运动状态,避免车辆因超出极限而出现事故。
光电限位传感器一般分为三种,分别是机械限位传感器、磁性限位传感器和光电限位传感器。
传感器固定在车架上,在车辆行驶过程中限定车辆的行驶限度,从而确保车辆的安全性。
五、结论智能车光电传感器组是智能车控制系统中的重要组成部分。
它通过对周围环境的感知和探测来确保车辆的安全和自主导航。
飞思卡尔技术报告

K60模块分配K60的简介,我们本次使用了以下模块。
1. FTM模块:K60中集成3个FTM模块,而今年我们选用两个B车进行追踪循迹。
B车模使用单电机、单舵机,另外需要一个编码器。
所以对3个FTM模块进行如下配置:FTM0用以产生300Hz PWM信号控制舵机,FMT1用以产生18.5KHz PWM信号控制电机,FTM2用以采集编码器数据。
2. 定时器模块:K60中有多个定时器模块,我们使用了其中2个。
其一用以产生5ms 中断,处理相关控制程序。
另一个用以超声波模块的计时。
3. SPI模块:我们使用了K60的一个SPI模块,用以和无线射频模块NRF24L01P通信。
4.外部中断:我们使用了三个外部中断。
第一个是PORTA的下降沿中断,用以响应干簧管检测到磁铁。
第二个是PORTD的跳变沿中断,用以响应超声波模块的输出信号。
最后一个是PORTE的下降沿中断,用以响应NRF24L01P模块的相关操作。
数据采集算法传感器是智能车的眼睛,它们给智能车循迹和追踪提供了必不可少的信息。
因此,在智能车软件设计中必须保证数据采集算法的稳定性,同时兼顾其快速性。
本车比赛,我们的智能车主要采集以下传感器的数据:电感传感器电路板、编码器、超声波、干簧管。
下面主要详述超声波模块、电感传感器电路板的数据采集。
1 .超声波模块数据采集我们使用的超声波模块的DO引脚输出50Hz的矩形波信号,通过高电平的时间向单片机传递数据。
本超声波传感器的高电平时间为声波单程传输的时间,通过这个时间可计算出两车之间的距离。
我们使用外部中断和计时器结合的方式测量高电平时间。
首先配置PORTD11为跳变沿中断。
中断被触发时,如果PORTD11为高电平则开始计时,如果PORTD11为低电平则停止计时并记录时间间隔。
2. 电感传感器电路板的数据采集电感传感器电路板通过输出电压的大小反应响应位置和方向的磁场强度。
本次比赛中,我们使用了10个电感分布在6个不同位置,因此每个周期都要采集10路ADC数据,每路ADC数据采集32次进行平均滤波。
2024年飞思卡尔智能车总结

2024年飞思卡尔智能车总结
2024年飞思卡尔智能车在技术、市场和发展方面取得了重要进展。
在技术方面,飞思卡尔智能车在感知、决策和控制方面取得了显著的提升。
通过引入先进的传感器技术、深度学习算法和决策系统,智能车能够更准确地感知周围环境,并作出更精准的决策。
此外,智能车的控制系统也得到了改进和优化,使得车辆在各种复杂的道路条件下能够更安全、稳定地行驶。
在市场方面,飞思卡尔智能车取得了良好的销售业绩和市场份额。
随着智能汽车的普及,越来越多的消费者开始关注智能车的安全性、效率和便利性。
飞思卡尔智能车凭借其卓越的技术和可靠的性能,获得了广大消费者的认可和信赖,进一步扩大了市场份额。
在发展方面,飞思卡尔智能车与各大汽车制造商、科技公司和城市机构建立了紧密的合作关系。
通过合作,飞思卡尔能够更好地了解市场需求,持续改进和创新智能车技术。
此外,飞思卡尔还积极参与智能交通系统和城市智能化建设,为城市提供更安全、高效的交通解决方案。
综上所述,2024年飞思卡尔智能车在技术、市场和发展方面都取得了显著的进展,为智能汽车行业的发展做出了积极贡献。
未来,飞思卡尔将继续致力于推动智能车技术的发展,为用户提供更智能、更安全的出行体验。
第 1 页共 1 页。
飞思卡尔技术报告个人小结

读技术报告个人小结最近这段时间读了一些关于智能车的技术报告,现在我最大的感觉就是对智能车有了新的较为全面的一些了解,当然这也只是对智能车构造有了一些认识,不再像以前只是知道智能车的存在。
在读技术报告的过程中,我有了自己的收获,同时也了解到了现在自身存在的问题。
首先我想将自己所读技术报告中的一些关键技术做一个简单的总结。
电磁组一.智能车机械结构调整与优化关于智能车前轮定位的调整有以下几个参数。
主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。
不同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时主销后倾回正作用大,低速时主销内倾的回正作用大。
前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。
前轮在滚动时,其惯性力自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少.关于舵机的安装可以使用站立式。
系统执行一个周期所用的时间为5ms左右,舵机作出响应需要十多毫秒的时间,提高系统反应速度唯一的时间瓶颈是舵机的响应时间。
因此,不断优化舵机控制策略是令智能车平稳高速行驶的有效方法。
在模型车制做过程中,赛车的转向是通过舵机带动左右横拉杆来实现的。
转向舵机的转动速度和功率是一定,要想加快转向机构响应的速度,唯一的办法就是优化舵机的安装位置和其力矩延长杆的长度。
由于功率是速度与力矩乘积的函数,过分追求速度,必然要损失力矩,力矩太小也会造成转向迟钝,因此设计时就要综合考虑转向机构响应速度与舵机力矩之间的关系,通过优化得到一个最佳的转向效果。
经过最后的实际的参数设计计算,最后得出一套可以稳定、高效工作的参数及机构。
为了达到较远前瞻,必须把电感架到较远的位置,会引起车重心特别靠前,后轮正压力不足导致甩尾。
为了使重心后移,可以通过调整传感器支架的搭建方式,使得保证结构稳定的前提下尽量减轻重量。
同时,可以把舵机和电池均往后移,以达到预期的效果。
在实际调试过程中还可以对车轮进行粘胎处理,以图有效地防止由于轮胎与轮辋错位而引起的驱动力损失的情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
飞思卡尔技术报告K60模块安排K60的简介,我们本次使用了以下模块。
1. FTM模块:K60中集成3个FTM模块,而今年我们选用两个B 车进行追踪循迹。
B车模使用单电机、单舵机,另外需要一个编码器。
所以对3个FTM模块进行如下配置:FTM0用以产生300Hz PWM信号掌握舵机,FMT1用以产生18.5KHz PWM信号掌握电机,FTM2用以采集编码器数据。
2. 定时器模块:K60中有多个定时器模块,我们使用了其中2个。
其一用以产生5ms中断,处理相关掌握程序。
另一个用以超声波模块的计时。
3. SPI模块:我们使用了K60的一个SPI模块,用以和无线射频模块NRF24L01P通信。
4.外部中断:我们使用了三个外部中断。
第一个是PORTA的下降沿中断,用以响应干簧管检测到磁铁。
其次个是PORTD的跳变沿中断,用以响应超声波模块的输出信号。
最终一个是PORTE的下降沿中断,用以响应NRF24L01P模块的相关操作。
数据采集算法传感器是智能车的眼睛,它们给智能车循迹和追踪供应了必不行少的信息。
因此,在智能车软件设计中必需保证数据采集算法的稳定性,同时兼顾其快速性。
本车竞赛,我们的智能车主要采集以下传感器的数据:电感传感器电路板、编码器、超声波、干簧管。
下面主要详述超声波模块、电感传感器电路板的数据采集。
1 .超声波模块数据采集我们使用的超声波模块的DO引脚输出50Hz的矩形波信号,通过高电平的时间向单片机传递数据。
本超声波传感器的高电平常间为声波单程传输的时间,通过这个时间可计算出两车之间的距离。
我们使用外部中断和计时器结合的方式测量高电平常间。
首先配置PORTD11为跳变沿中断。
中断被触发时,假如PORTD11为高电平则开头计时,假如PORTD11为低电平则停止计时并记录时间间隔。
2. 电感传感器电路板的数据采集电感传感器电路板通过输出电压的大小反应响应位置和方向的磁场强度。
本次竞赛中,我们使用了10个电感分布在6个不同位置,因此每个周期都要采集10路ADC数据,每路ADC数据采集32次进行平均滤波。
K60芯片中有两路ADC模块,为了最大程度的削减采集数据的时间,我们采纳两个ADC模块并行采集的方法。
首先,将10路ADC分为两组,第一组6个使用ADC0模块采集,其次组4个使用ADC1模块采集,两个ADC模块同时采集数据。
以第一组为例,依次采集6路ADC数据,循环32次。
当两个ADC模块都完成任务时,ADC转换结束。
最终进行平均滤波。
掌握算法1. 定位算法A.两个电感定位算法在电磁组算法设计中,“差比和”(即用连个电感数据的差除以它们的和)是一个简洁易用的定位算法,但是我们测量发觉“差比和”算法得出的偏差距离用着较大非线性。
如下图所示,其横轴为实际偏差(单位mm),其纵轴为“差比和”得出的偏差。
可以发觉,在实际偏差较小时,“差比和”算出的偏差变化较快,实际偏差较大时“差比和”算出的偏差变化较缓。
“差比和”定位与实际偏差比较图为了使定位具有更好的线性度,我们拟合出一个函数将差比和的值近似转换为离中心线的实际偏差。
如下图所示,其横轴为实际偏差(单位mm),其纵轴为“差比和”得出的偏差,红线表示实测的曲线,蓝线表示用以非线性矫正的一个近似的曲线。
非线性矫正曲线B. 多个电感的定位算法使用上述的两个电感定位算法,可以使两个在同始终线上不同位置的电感两两算出一个距离偏差。
由于两个电感的测距有效范围有限,我们采纳三个横向电感取其中较精确的两个电感计算距离。
记三个横向的电感对应的数值从左到右分别为Left、Mid、Right。
当Left最大时,使用Left和Mid两个电感值计算偏差;当Right最大时,使用Left和Mid两个电感值计算偏差;当Mid最大时,依据Left和Right计算出的偏差来计算Left-Right、Left-Mid、Mid-Right三组偏差E0,E1和E2的比重K0,K1和K2。
最终通过(E0*K0+E1*K1+E2*K2)/(K0+K1+k2)计算出近似的实际偏差,使得三组数据计算值之间平滑过渡。
2 .基于增量式PID的速度掌握A.电机特性的讨论与建模本次竞赛我们使用了B车模,相比于直立车模,B车模对电机的PID 调整要求不是很高。
但为了更好的理解PID掌握算法和电机特性,我们通过电机的特性曲线近似求出电机的传递函数。
首先记录车在给电机20%恒定占空比时的速度和时间曲线,以此作为电机传递函数的阶跃响应,如下图所示。
然后利用MATLAB得出曲线的近似表达式:e = 91.1457 -64.6742*e^(-t/3.4654) -13.6656*e^(-t/3.4654*2) -12.6844*e^(-t/3.4654*3);最终以此函数作为电机传递函数的阶跃响应,求得其传递函数:-0.733 s^3 + 60.96 s^2 + 119.7 s + 45.48----------------------------------------s^3 + 2.276 s^2 + 1.583 s + 0.3276电机传递函数的阶跃响应利用此传递函数和MATLAB的PID调整器,我们很快的得出了快速稳定地掌握车速的PI参数,并未使用D参数。
这个建模的过程并非必要的环节,通过不断的调试与修改完全可以达到这个要求甚至比建模调的更好,但是在这个过程中我们对PID的理解得以加深。
B.增量式PID增量式PID是指数字掌握器的输出只是掌握量的增量Δu(k)。
采纳增量式算法时,计算机输出的掌握量Δu(k)对应的是本次执行机构位置的增量,而不是对应执行机构的实际位置,因此要求执行机构必需具有对掌握量增量的累积功能,才能完成对被控对象的掌握操作。
执行机构的累积功能可以采纳硬件的方法实现;也可以采纳软件来实现,如利用算式u(k)=u(k-1)+Δu(k)程序化来完成。
式中Δe(k)=e(k)-e(k-1)2. 基于位置式PID的舵机掌握A. 位置式PID基本PID掌握器的抱负算式为u(t)——掌握器(也称调整器)的输出;e(t)——掌握器的输入(经常是设定值与被控量之差,即e(t)=r(t)-c(t));Kp——掌握器的比例放大系数;Ti ——掌握器的积分时间;Td——掌握器的微分时间。
设u(k)为第k次采样时刻掌握器的输出值,可得离散的PID算式式中在本次竞赛中我们采纳了位置式PD掌握算法,即积分系数Ki为0。
B. PID参数的计算算法在调试过程中,我们发觉当定位算法做的较好的时候,定值的PD 参数也可以让小车快速稳定的循迹。
为了进一步提高小车的速度和稳定性,我们加入了动态调整PD参数的算法,我们称之为“二维表PD 模糊整定”。
“二维表PD模糊整定”参数表如上图所示,横向由左到右分别表示偏差变化率为{-35,-25,-15,0,15,25,30},纵轴没两行为一组工6组,每组2行分别表示Kp,Kd参数,6组由上至下分别表示偏差{30,60,90,120,150,200}。
通过这种方法得出一个2输入2输出的“PD模糊整定”算法,其输入为偏差和偏差变化率,输出为Kp和Kd参数。
每一组偏差E和偏差变化率Ec对应的输出都可以通过以上二维表来定义,当E、Ec不能精确对应表中某个位置时,算法通过其相邻的参数计算出所要的Kp、Kd参数。
调试程序1. 无线接收上位机参数的程序在调试过程中需要不断的修改参数,尤其是我们使用了二维表后参数的修改幅度急剧增大。
按键调整方案已经不能高效的胜任这么大数量的参数修改了,为此我们编写了无线发送参数的上位机和小车上对应的接收处理程序。
为了让数据精确的无线传输,我们定义了帧格式。
我们采纳的无线通信模块是NRF24L01P,我们定义一帧数据为32字节。
帧格式为:加入起始标志可使得上位机适应蓝牙模块发送。
功能码:功能码用以标志后面数据是什么数据,接收端程序依据功能码处理后面的数据部分。
例如功能码为0x00 0x10时,程序数据部分的前2字节作为无符号整形数据保存到temp变量,temp/100的值赋值给Kp。
这样就实现了对Kp变量的重新赋值。
数据:接收端程序依据功能码处理此部分。
校验码:采纳CRC16校验方式,用以确保数据传输的正确无误。
上位机截图2. 无线发送小车状态量的程序在调试过程中有时靠人眼观看无法精确的知晓小车的运行状态,尤其是程序计算的一些中间状态量。
当我们将这些状态量在电脑上通过曲线显示出来时,就更简单把握小车的运行状态了,这些曲线为整定参数供应了有效的依据。
在这部分我们采纳了是NRF24L01P模块发送数据。
需要发送的数据主要有:电机速度、舵机占空比信号、距中心线偏差等数据。
此部分的帧格式由虚拟示波器给出,我们编写响应的发送代码。
voidmsg_datascope(float data0,float data1,float data2,floatdata3,float data4,float data5,float data6){msg_buff_tx[0]=30;// USB-NRF24L01模块要用的格式msg_buff_tx[1]=0x24;// 上位机要用的格式*(float*)((uint32)msg_buff_tx+2)= data0;*(float*)((uint32)msg_buff_tx+6)= data1;*(float*)((uint32)msg_buff_tx+10)= data2;*(float*)((uint32)msg_buff_tx+14)= data3;*(float*)((uint32)msg_buff_tx+18)= data4;*(float*)((uint32)msg_buff_tx+22)= data5;*(float*)((uint32)msg_buff_tx+26)= data6;msg_buff_tx[30]=29;if(nrf_tx(msg_buff_tx,DATA_PACKET)==1)while(nrf_tx_state()== NRF_TXING);}。