智能车竞赛技术报告 | 节能信标组 - 华南理工大学 - 华工雨花队

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能车竞赛技术报告 | 节能信标组 - 华南理工大学 - 华工雨花队相关的知识,希望对你有一定的参考价值。

简 介: 本文以第十六届“恩智浦杯”全国大学生智能车竞赛为背景,介绍了华工雨花队在该次比赛节能信标组别的参赛智能车技术成果。本文将从智能车的机械结构设计,硬件电路设计,摄像头寻灯算法,智能车控制算法,无线充电几个部分展开,详细地阐述我们小组的设计思路和创意,体现我们算法和硬件方面的独特想法。
我们小组采用了三轮的方案,自制车模。处理器使用Infineon公司的TC264单片机,采用ADS软件开发环境下开发。智能车赛道信息获取传感器使用灰度摄像头加装红外滤片。由赛道偏差信息配合陀螺仪获取的车辆姿态角速度信息来对整车进行方向控制,由电机编码器获取车辆速度信息来对车辆进行速度控制。方向控制和角度控制均使用位置式PID控制,通过PWN控制三轮车的两个后驱动轮进行差速转向和加减速,实现闭环控制。充电方面使用LCC拓扑进行无线电能的收割,采用5节50法拉的电容组进行电容的存储。调试方面我们设计了人机交互模块,可以更好地调试智能车的参数和检测车辆状态。加入的无线通信模块也可以实时地观察车辆行驶时的状态参数,有助于参数的整定。利用C#编写的图像调试上位机配合SD卡对图像算法进行调试和改进。
疫情期间,尽管困难重重,但我们还是克服万难,让小车可以在赛场上飞驰起来。以此报告,纪念过去一年来备战智能车的青春和努力。

关键词 节能信标无线充电TC264灰度摄像头陀螺仪PID控制

学 校:华 南 理 工 大 学
队伍名称:华 工 雨 花 队  
参赛队员:李 子 锋     
赖 翔     
苏 沛 烁     
带队教师:陈 安     
邓 晓 燕     

 

第一章


  报告将详细讲解我们小组在比赛过程中的智能车系统设计方案。将从智能车的机械结构设计,硬件电路设计,摄像头寻灯算法,智能车控制算法,无线充电几个部分展开,详细地阐述我们小组的设计思路和创意,体现我们算法和硬件方面的独特想法。在准备比赛过程中,我们小组付出了努力,也挥洒了汗水,这份报告将凝聚着我们备赛以来的心血和智慧,希望我们小组的努力可以得到认可,也希望我们可以继续努力,挑战更好的成绩,学到更多新知识。

1.1智能车竞赛简介

  全国大学生智能汽车竞赛是以智能汽车为研究对象的创意性科技竞赛,面向全国大学生的一种具有探索性的工程实践活动,是教育部倡导的科技竞赛之一。竞赛以“立足培养、重在参与、鼓励探索、追求卓越”为指导思想,旨在促进高等学校素质教育。它以设计制作在特定赛道上能自主行驶且具有优越性能的智能模型汽车这类复杂工程问题为任务,鼓励大学生组成团队,综合运用多学科知识,提出、分析、设计、开发并研究智能汽车的机械结构、电子线路、运动控制和开发与调试工具等问题,激发大学生从事工程技术开发和科学研究探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神。

1.2第十六届节能信标组别要求和任务简介

1.2.1车模

  车模允许使用任何比赛中的车模,也可以自行设计制作车模。车模作品尺寸不限。车模上不允许使用任何电池,车模需要通过无线接收线圈获取信标发送的无线电能。信标灯为扁平状,车模可以行驶到信标上面接受无线电能。

1.2.2微控制器与传感器

  车模使用Infineon公司的单片机。允许使用各类电磁、红外光电、摄像头、激光传感器、超声传感器器件进行赛道和环境检测。

1.2.3比赛赛道与任务

  信标在点亮后同时会发送高频无线功率信号(150kHz)和红色、红外灯光用于导引车模前往。发送的高频无线功率信号也可以通过电磁共振耦合为节能车模提供大约72W充电功率。比赛时,车模从第一个信标开始接受电能,自行启动去往下一个信标。当车模运行到信标上之后,信标的灯便切换到下一个信标,但本地的信标依然发送无线电能,直到车模离开本地的信标灯,本地信标停止发送无线电能,下一个信标灯开始发送无线信号。
 

第二章 体框架与方案设计


  章将简要介绍我们小组智能车系统整体的设计思路,对实现的技术方案进行简要的说明。在后面的章节分智能车的机械结构设计,硬件电路设计,摄像头寻灯算法,智能车控制算法等几个部分进行深入介绍分析。

2.1智能车整体方案

  根据16届智能车竞赛的比赛要求和任务,我们小组在车模,处理器,赛道信息获取方案,车辆控制方案都做了相应的选定。此次比赛我们车模为自制车模,使用Solidworks软件对小车进行建模,再由3D打印技术完成车身的制造。处理器使用Infineon公司的TC264单片机,在AURIX Development Studio开发环境下进行嵌入式软件的开发。智能车赛道信息获取传感器使用灰度摄像头,为摄像头安装红外滤镜,获取信标灯的红外信息,以实现对信标灯的准确识别。由信标灯的偏差信息配合陀螺仪获取的车辆姿态角速度信息来对整车进行方向控制,由电机编码器获取车辆速度信息来对车辆进行速度控制。方向控制和角度控制均使用位置式PID控制,通过PWN控制三轮车的两个后驱动轮进行差速转向和加减速,实现闭环控制。同时也设计了人机交互模块,可以更好地调试智能车的参数和检测车辆状态。加入的无线通信模块也可以实时地观察车辆行驶时的状态参数,有助于参数的整定。

2.2智能车各个模块总体介绍

  整车可分为以下几个模块:主控模块,传感器模块,电源管理模块,电机驱动模块,人机交互模块,通信模块。
  1. 主控模块:英飞凌TC264单片机,对采集的传感器信息进行处理和计算,对电机进行控制。
  2. 传感器模块:灰度摄像头,9轴陀螺仪加速度计,电机自带编码器。分别实现各种功能,由以下章节详解。
  3. 电源管理模块:为各个模块提供合适的电压电源。
  4. 电机驱动模块:为处理器控制电机提供接口
  5. 人机交互模块:由IPS屏幕,按键,拨码开关,五向开关,SD卡槽,蜂鸣器组成。
  6. 通信模块:采用NRF无线通讯模块,实现车辆与电脑上位机通信,作为调试阶段辅助模块。

 

第三章 能车机械结构设计


  能车的基础就是车身机械结构,控制程序需要在此基础上才能得到实现,因此智能车机械结构的设计对于整车的性能尤为重要。本章将会对机械结构做一个具体的讲解。

3.1 车模整体结构

  此次节能组与往年的不同,由于信标的任务,让车模需要有了一定的速度要求,所以我们采用了三轮的设计,在保证车速的基础上尽量减轻车模的重量,同时也考虑到了车模重心的问题,在设计时尽量使得重心靠后,落于两个后轮上,提高转向的性能。整体机械结构如下图所示。

▲ 图3.1 车模整体外观图

3.2 传感器的设计安装

  整车传感器包括:灰度摄像头;9轴传感器;电机编码器。

3.2.1灰度摄像头的安装

  使用三角结构,将摄像头架设如图。

▲ 图3.4 摄像头架设图

3.2.2姿态传感器的安装

  姿态传感器使用BMX055传感器,将裸片芯片焊接于主板PCB下方。

▲ 图3.5 BMX055传感器

3.2.3编码器的安装

  编码器使用电机自带编码器,安装于电机后轴,获取电机的旋转信息。

▲ 编码器安装图

3.3电路板的固定及连接

  对于该车模,电路板总共有4个,分别为主控板,电源驱动板,充电板,超级电容板。车身最主要的承重、连接的结构,就是两块电路板构成,上层的主控板和下层的电源驱动板。通过胶柱进行固定连接。超级电容板安装于电机后部,通过结构设计降低了重心。充电板位于车模前部,与充电线圈相连。

3.3.1主控板的安装

  主控板是整个车身最重要的一块电路板,也是在调车过程中最常接触的电路板,集成了开关、IPS、下载接口、拨码开关、指示灯等等功能,所以将此电路板放置于最上层无疑是最好的选择,也会更方便后期的调试、下载。

▲ 主控板安装

3.3.2电源驱动板的安装

  电源驱动板的主要功能是将超级电容的电压升降压至12V供电机使用,通过H桥电路控制电机的快慢,达到对车模速度的控制目的。该板并不需要进行人机交互,故放置于主板下层是合理的。

▲ 电源驱动板安装

3.3.3超级电容板的安装

  由于今年节能信标任务的特殊性,我们采用了5节50法拉的超级电容,重量较重,所以安装于电机后部,设计机械时降低了其重心。

▲ 超级电容板安装

3.3.4充电板的安装

  充电板体积较小,故安装于车模前部,与充电线圈相连接,同时连接后部的超级电容组,充电时为其补充电能。

▲ 充电板安装

3.4车身设计与电机安装

  使用Solidworks对车模进行整体设计,整体设计效果如图。

▲ 整体设计效果图

3.4.1车身设计

  车身使用3D打印技术打造,使用尼龙材料,强度与韧性符合负载强度需求。

▲ 车身设计效果图

3.4.2万向轮设计

  万向轮使用ROTACASTER全向轮的麦克纳姆轮,使用35mm的黑色滚珠,配合7mm内径的轴承,安装于车模前部,安装效果如图。

▲ 万向轮实际安装图

▲ 万向轮效果图

3.4.3电机与后车轮安装

  电机使用M3螺丝与打印件相连接,后轮使用A车车轮,通过电机联轴器与电机出轴相连接,实际效果如图。

▲ 电机与后车轮安装实际图

▲ 电机固定效果图

3.5小结

  整车的机械结构设计贯穿我们小组备赛的整个过程,设计也是一代一代地更新。机械结构的改变,可以影响车模能耗和跑车的整体性能。经过不断的尝试和努力,我们小组在比赛之前得出了这套方案,不过仍然存在提升的空间,车辆的能耗依旧比较大。每次修改机械结构设计,都能在相同软件基础上提升车子的性能,可以看出,机械结构与车子的性能有着密切关系,是我们在设计时重点考虑的内容。

 

第四章 能车硬件电路设计


  能车硬件电路包括主控板、电源驱动板、充电板、超级电容板。主控板包括电源管理,MCU最小系统,模块接口,人机交互等部分;电源驱动板实现电机电源的稳定,控制电机正反转的功能。本章主要介绍我们小组在智能车硬件电路设计方面的方案,展现我们在这方面的想法和创意。

4.1主控芯片简介

4.1.2 TC264主控芯片

  英飞凌TC264为32位微控制器,采用双核Tricore架构,双核200MHz,集成725KB RAM,配套基于官方ILLD库开发的智能车专用库,可以实现快速开发应用。

4.2 主控板设计

▲ 裸板实物图(正)

▲ 裸板实物图(反)

▲ 主板实物图

4.2.1 电源管理模块

▲ 图4.1 电源管理模块原理图

  本次比赛使用超级电容组为车模的硬件系统供电,使用TPS63070芯片将超级电容的电能转换为5V的电能形式为主板供电,该芯片具有高效率,外围电路简单的优点。同时使用两片AMS1117芯片将5V电压转为3.3V为芯片和模块供电。使用船型开关为总开关,控制车模整体功能的开启与关闭。使用分压电阻对超级电容组的电压信息进行采集,从而感知采集电容组的能量状况。

4.2.2 MCU最小系统

▲ MCU最小系统原理图

4.2.2 人机交互模块

▲ 人机交互原理图(1)

▲ 人机交互原理图(2)

  人机交互部分采用了一块IPS屏幕显示信息方便之后的调车,同时还采用了一个蜂鸣器以便在车运行时了解车的状态。另外采用了一个五向开关和一个4位拨码开关实现调参,其原理是当某一个开关被触发时会在对应端口产生一个低电平,再经过74HC148这款八线三线优先编码器编码在单片机的对应端口产生信号,从而被单片机检测到并配合相应程序实现特定功能。通信部分是采用了NRF方案,最后还设计了一个SD卡的接口,方便获取摄像头采集到的数据。

4.2.3 传感器模块接口


4.2.4电机模块接口

▲ 电机模块接口原理图

4.3电源驱动板设计

  电源驱动板方面,分为电机驱动电路,开关电源电路两个部分。其中稳压模块采用的是一片LM25118MHX芯片,对各元件合理取值后即可得到所需的12V电压。驱动方案使用DRV8701E芯片驱动,即通过驱动信号的控制使得H桥中始终只有一条对角线上的两只MOS管导通,实现电机的正转反装控制,同时再配合PWM波信号实现电机的调速。

▲ 电源驱动板裸板图

▲ 电源驱动板板实物图

▲ 电机驱动电路原理图

▲ 12V开关电源稳压电路原理图

4.4充电板设计

  节能组比赛要求选手利用组委会统一提供的无线发射模块为超级电容充电,本次比赛使用的无线发射模块发射频率为150kHz,且发射功率通过刷固件限制在72W(24V3A)。

  对于无线充电部分,初步讨论时有恒功率充电和LCC拓扑电路充电两个方案。恒功率方案能通过调节电路的参数使负载的充电功率大致保持在设定的值,而LCC拓扑电路充电方案,能够使接收端以恒流进行充电。相比于往届无线发射模块,今年节能信标组无线电磁波最大功率增大,而且超过最大功率时发射系统不会停振,继续保持在最大功率进行输出,因此我们小组最终采用基于LCC拓扑电路的“傻充”方案。不过需要注意的是,由于LCC补偿网络的恒流特性,法拉电容充电电压理论上可以非常高,因此,需要在接受的过程中即时观察超级电容上的电压,一旦超过阈值,则需要车模迅速离开充电区域。

4.4.1 无线充电电路

  无线充电电路部分由LCC拓扑电路和全桥整流电路构成。在全桥整流的基础上,通过LCC补偿电流使充电电流达到恒定。

▲ 无线充电电路原理图

▲ 无线充电电路板实物图

4.4.2充电电路元件的选型

  根据无线发射模块的各项参数要求,选择适合的充电电路元件:

  LCC拓扑电路部分的谐振电容采用的是C0G/NPO材质的电容,这类电容是I类陶瓷中温度稳定性最好的,温度特性近似为0。

  接收线圈使用的龙邱科技的砂包线绕制的电感线圈,电感值为13.4𝜇𝐻。

▲ 龙邱科技接收线圈商品图

  串联绕制电感使用的是200Litz线在T106-2磁芯上绕制21匝而成,电感值约为6.1𝜇𝐻。

▲ T106-2磁环(左)及绕制后电感(右)

  整流二极管使用的SK1010C,平均整流电流为10A,直流反向耐压为100V,由于加上LCC拓扑电路,输出电压为几十伏,同时为了保证充电的速度,充电电流在恒流阶段可达8A左右,因此选用耐压耐流为100V,10A的二极管。
  超级电容使用的是5串3V,50F的法拉电容。从0-14V可储存980𝐽的能量。

▲ 5串3V,50F法拉电容实物图

4.4.3充电电路参数的计算与调整

  设接收线圈电感值为𝐿0,输出电感值为𝐿𝑠,并联电容值为𝐶𝑝,串联电容值为𝐶𝑠,LCC基本电抗𝑋0=𝑈0𝐼0,谐振频率𝑓0=150𝑘𝐻𝑧。 通过公式 𝐿𝑠=𝑋02𝜋𝑓0 𝐶𝑝=12𝜋𝑓0𝑋0 𝐶𝑠=1(2𝜋𝑓0)2(𝐿0−𝐿𝑠)

  初步计算得输出串联电感𝐿𝑠=3.5𝜇𝐻,并联电容值为𝐶𝑝=320𝑛𝐹,串联电容值为𝐶𝑠=110𝑛𝐹。

  由于该套参数设计的电流值仅为3A,假设接收效率为50%,即最大接收功率为36W,则需超级电容充到12V才能达到最大功率,充电速度太慢。因此需增大充电电流,在接收线圈不变的情况下,即减小基本电抗𝑋0,由上述公式可得,应减少输出电感值𝐿𝑠,增大并联电容值𝐶𝑝。经过实验,当输出电感值为𝐿𝑠减少,即绕制线圈匝数减少,充电的电流却大大减小,不能达到预期效果,猜想可能是Litz线匝数会影响充电电流上限值,因此最终做了一个均衡,同时增大并联电容值𝐶𝑝和输出电感值𝐿𝑠,虽然偏离谐振参数,牺牲一定的充电效率,但换取更大的充电电流,最终使总体充电功率得到提升。

  经过尝试,最终的充电电路参数分别为输出串联电感𝐿𝑠=6.1𝜇𝐻,并联电容值为𝐶𝑝=469𝑛𝐹,串联电容值为𝐶𝑠=110𝑛𝐹。最大电流输出约为8A,在5V左右便能达到最大功率接收,5串50F超级电容从0V-14V平均充电功率约为37W,充电效率约为50%。

 

第五章 能车控制软件设计


5.1软件系统框架

  控制系统由四个模式组成,每个模式包含主循环部分和中断部分,如下图所示。

▲ 程序框架图

  英飞凌TC264芯片为双核架构,包含两个并行CPU:CPU0和CPU1,各个模式的主循环部分放在CPU1执行,中断部分使用CPU0的资源,以防止中断和主循环发生资源抢占,做到真正的并行。

5.2运行模式

  1. 主模式用于正常灭灯,有三级速度控制,包括启动,加速及减速环节,启动环节避免车模撞击蓝色灯罩,减速环节避免车模冲过信标灯而增加路程,从而有“点灯”效果。
  2. 寻灯模式用于寻灯,根据预测结果决定本次转向。
  3. 停车模式和主模式的减速环节类似,距离信标灯一定距离时开始减速直至看不到灯为止。
  4. 充电模式设定速度给0,使得车模稳稳地停在灯上进行充电。

5.3模式之间的关联和切换

▲ 模式切换图

  1. 电量充足时,系统主要在主模式和寻灯模式之间切换,看到灯则切入主模式,看不到灯切入寻灯模式。
  2. 电量不足且车模接近信标灯时切入停车充电模式,低速接近信标灯直至稳稳地停在灯上充电。
  3. 充满电后自动切回主模式。

5.4图像采集与处理

  我们使用总钻风摄像头作为图像采集的传感器,使用大津法将采集到的灰度图像转为合适的二值化图像,然后进行列扫描和行扫描判断白点数量多寡,从而确定信标灯的坐标centerX和centerY。上半图为灰度图像,下半图为二值化图像。

5.5转向预测

  在寻灯过程中,车模要么是顺时针转向或是逆时针转向,我们发现在不同的环境中,特定的转向可以更加节约时间。
  我们使用BMX055九轴传感器进行位置解算,可实时计算出车模相对初始位置的偏航角,每次接近信标灯时记录一次当前的偏航角,当前车模的转向由当前偏航角与上次灯前偏航角及上次转向决定,经实测,预测结果正确率高达98%以上。

▲ 位置解算示意图

  如上图所示,根据两次近灯处的偏航角及上一次信标灯上车模的转向,我们可以计算出车模按照上一次转向转过了多少度角,若差值超过一定的阈值则反转此次的转向,反之则延续上一次的转向。

5.6电机PID控制

  PID控制是控制工程中应用最为广泛的调节器控制规律。问世至今70多年,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。PID控制主要由比例、积分、微分三个部分组成,单位反馈的PID控制原理框图如下图所示。

▲ 控制框图

  • PID各个参数作用基本介绍

  • 比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。

  • 积分调节作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至达到无差状态,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数,越小,积分作用就越强。反之大则积分作用弱。加入积分调节会使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。

  • 微分调节作用:微分作用反映系统偏差信号变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差没有形成之前,偏差已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适

  • 情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统的抗干扰性能不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。

  • PID调试一般原则

  运用PID控制的关键是调整三个比例系数,即参数整定。PID整定的方法有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。由于智能车整个系统是机电高耦合的分布参数系统,并且要考虑赛道具体环境,要建立精确的智能车运动控制数学模型有一定难度,而且我们对车身机械结构经常进行不断修正,模型参数变化较频繁,可操作性不强;二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单,我们采用了这种方法,同时,我们先后实验了几种动态改变PID参数的控制方法。

  1、在输出不振荡时,增大比例增益

  2、在输出不振荡时,减小积分时间常数

  3、在输出不振荡时,增大微分时间常数

  • 一般步骤

  1)确定比例增益

  确定比例增益时,首先去掉PID的积分项和微分项,一般是令、,使PID为纯比例调节。输入设定为系统允许的最大值的60%70%,由0逐渐加大比例增益,直至系统出现振荡;再反过来,从此时的比例增益逐渐减小,直至系统振荡消失,记录此时的比例增益,设定PID的比例增益为当前值的60%70%。比例增益调试完成。

  2)确定积分时间常数
  比例增益确定后,设定一个较大的积分时间常数的初值,然后逐渐减小,直至系统出现振荡,之后再反过来,逐渐加大,直至系统振荡消失。记录此时的,设定PID的积分时间常数为当前值的150%~180%。积分时间常数调试完成。

  3)确定积分时间常数
  积分时间常数一般不用设定,为0即可。若要设定,与确定和的方法相同,取不振荡时的30%。系统空载、带载联调,再对PID参数进行微调,直至满足要求。

 

第六章 发、调试工具辅助说明


6.1开发工具

  AURIXDevelopmentStudio是一款集成编辑、编译、调试、仿真于一体的集成开发环境,他支持英飞凌32Bit多核芯片,这些芯片主要用于汽车和工业。InfineonTechnologies的TriCore架构提供了业界专业的32位微控制器设计,专门针对汽车和工业应用进行了优化。该架构在一个统一的芯片组中提供了高速微控制器的实时功能,DSP的原始计算能力以及RISC加载/存储架构的性能和价格之间的优化平衡。AURIXDevelopmentStudio软件开发工具集是由Infineon的专家设计的,被视为TriCore体系结构软件的行业标准。该工具集包含用于完整TriCore系列的专用C/C++编译器和汇编器,以及在统一的Eclipse™集成开发环境(IDE)中的多核链接器/定位器和调试器。

▲ AURIXDevelopmentStudio的开发界面

6.2调试过程

6.2.1图像调试上位机

  要分析车模在行驶时的摄像头实时信息,必须采集小车在行驶过程中灰度摄像头的实时数据,我们采用的是用SD卡存储图像数据,然后用电脑图像调试上位机分析。它是调试的必备工具,包括软件和硬件部分。
  1)硬件方面
  硬件上设计SD卡槽,连接单片机的SPI接口。单片机接收传来的实时数据并利用SPI通信写入SD卡。
  2)软件方面
  使用C#编写图下调试上位机界面,对SD卡的摄像头信息进行解析,同时在上位机程序内编写图像处理程序,处理SD卡的图像信息,可以在电脑进行脱机调试,寻找跑车时出现的程序缺陷,达到调试改进图像处理程序的效果。

▲ 图8.3

6.2.2参数调试上位机

  本次备赛我们小组使用匿名科创的匿名上位机来对智能车数据进行可视化,通过波形分析来调整PID参数和观察车模运行信息。如图8.3为匿名上位机的波形界面。

▲ 匿名上位机的波形界面

  连接匿名上位机需要将数据处理成特定协议的数据帧,上位机才能正常地解码,才能显示正常的波形。对此我们在底层程序中写了一个数据传输函数调用库,对数据进行协议处理后再使用UART发送到电脑匿名上位机。其中发送一个数据的子程序如图,发送多个数据的子程序与之类似,可参考源码。

 

第七章 型车主要参数


7.1智能汽车外形参数

  • 长230mm,宽200mm,高330mm

7.2传感器个数以及种类

  • 总钻风灰度摄像头1个
  • 电机编码器2个
  • 9轴传感器1个

7.3赛道信息检测精度、频率

  • 赛道信息检测精度:2mm,频率是50Hz

 

第八章


  路走来磕磕碰碰,殊为不易。

  最后的两天也目睹了许多他人不尽如人意的结局,想着要是换做是自己在那个位置又该当如何,大概也是心有不甘吧。但我们还是被眷恋的,无论临近之际碰到了怎样令人忧心的问题,结局终归还是令人满意的,就算还是有一丝小小的遗憾,但也能够释然了。回顾这一段不算短的时光,我们的付出最后也带来了我们所期望的结果。

  人生在于体验,我们一直希望能这样做,而我们也一直在努力地践行这样的想法,不断地经历,不断地感悟,丰富自己的阅历,拓宽自己的思维和眼界,不该迷失在自我否定与自我满足中。极尽自己所能去探索和积累,找到自己长期热爱的事物。

  智能车给予了我们许多很独特的东西,无论是是物质上的还是精神层面上的,名利有,成长亦有。也让我们学会了当面对新的机遇和挑战之时,应当抛却许多执念和偏见,望见更加广阔的天空,看见真正本质的东西,体验这人世间许许多多的风景,得到新的感悟并持续地发展。

 

考文献


[1]蔡栩嘉,刘海刚,陈冠成,李勇祥,庄越.摄像头智能小车设计与控制算法研究[J].工业控制计算机,2018,31(12):98-101.
[2]颜循进.恩智浦杯全国智能车竞赛之PID调节[J].科技风,2020(10):263.
[3]卓晴,黄开胜,邵贝贝.学做智能车[M].北京:北京航空航天大学出版社.2007.

■ 附录

● CPU0代码:

i

nt core0_main(void) 
{ 
    disableInterrupts();//禁能中断 
 get_clk(); //获取时钟频率,务必保留 
 
// MID_Buzzer_Init(); 
 //总初始化 
    Total_Init(); 
 
//***********测试所用的初始化函数******************************************* 
 
//    Test_Init_1();//编码器电机初始化测试并显示在IPS上 
//    Test_Init_2();//IPS调试界面测试 
//    Test_Init_3();//测时序 
//   Test_Init_4();//摄像头测试 
//    Test_Init_5();//基本能跑 
//   Test_Init_6(); 
//    Test_Init_7();//姿态解算 
//   Test_Init_8();//BMX055陀螺仪测试 
//    Test_Init_9();//充电测试 
//    Test_Init_10();//舵机测试 
//    Test_Init_11();//双核通信-从机 
//    Test_Init_12();//双核通信-主机 
//*************************************************************************** 
 
 enableInterrupts();//使能中断 
 
 while (TRUE) 
 { 
     if(Car_Mode!=Support_Mode) 
     { 
       APP_Buzzer_Task(); 
       MID_ANO_Send_Data4(UART_0, Encoder_L, Encoder_R,Encoder_Real,PWM_SPEED); 
//       MID_ANO_Send_Data4(UART_0, PWM_Left_Uart, PWM_Right_Uart, PWM_SPEED,Encoder_Real); 
//       MID_ANO_Send_Data4(UART_0, middle_error, PWM_Direction, Angel_z_Filter, PWM_Angle); 
//       MID_ANO_Send_Data4(UART_0, Angel_z_Filter,middle_error,PWM_Angle,PWM_SPEED); 
     }  
 
//***********测试所用例程**************************************************** 
 
//     Test_1();//编码器电机初始化测试并显示在IPS上 
//     Test_2();//IPS调试界面测试 
//     Test_3();//测时序 
//     Test_4();//摄像头测试 
//     Test_5();//基本能跑 
//     Test_6();//双核测试 
//      Test_7();//姿态解算 
//     Test_8();//BMX055陀螺仪测试 
//     Test_9(); //充电测试 
//     Test_10();//舵机测试 
//     Test_11();//双核测试-从机 
//      Test_12();//双核测试-主机 
 
//***************************************************************************** 
 
 }//End while 
 
}//End main 
 

● CPU1代码:

void core1_main(void) 
{ 
 disableInterrupts(); 
    IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword()); 
    //用户在此处调用各种初始化函数等 
 
 //等待所有核心初始化完毕 
 IfxCpu_emitEvent(&g_cpuSyncEvent); 
 IfxCpu_waitEvent(&g_cpuSyncEvent, 0xFFFF); 
    enableInterrupts(); 
 
    while (TRUE) 
    { 
  //用户在此处编写任务代码 
        switch(Car_Mode) 
        { 
            case Support_Mode: SUPPORT_MODE(); break; 
 

以上是关于智能车竞赛技术报告 | 节能信标组 - 华南理工大学 - 华工雨花队的主要内容,如果未能解决你的问题,请参考以下文章

智能车竞赛技术报告 | 节能信标组 - 北京科技大学节能信标组

智能车竞赛技术报告 | 节能信标组 - 合肥工业大学 - 烂虾队

智能车竞赛技术报告 | 节能信标组-哈尔滨工业大学紫丁香五队

智能车竞赛技术报告 | 节能信标组 - 宿迁学院 - MAkkaPakka

智能车竞赛技术报告 | 节能信标组 - 兰州交通大学 - 先锋队

智能车竞赛技术报告 | 节能信标组 - 浙江大学 - 浙大三队