河南科技大学-变形金刚三轮组-技术报告_第1页
河南科技大学-变形金刚三轮组-技术报告_第2页
河南科技大学-变形金刚三轮组-技术报告_第3页
河南科技大学-变形金刚三轮组-技术报告_第4页
河南科技大学-变形金刚三轮组-技术报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、 第十四届“恩智浦”杯全国大学生智能汽车竞赛技术报告学校:河南科技大学队伍名称:JARVIC王亚宇参赛队员:张玉东潘爽爽带队教师:王新勇叶宇程 目录第一章第二章 引言4总体方案52.1 主控芯片的选择52.2 传感器的选择52.3 车模的选择5第三章结构设计63.1 万向轮的选取63.2 电路板的安装63.3 电池的安装63.4 电磁传感器的安装7第四章 硬件设计84.1 电源电路设计84.2 电机驱动电路84.3 单片机系统94.4 红外传感器104.5 电磁传感器11第五章 软件设计135.1 开发及辅助工具135.2 控制算法13参考文献15附录 程序源代码16 第一章 引言 全国大学生

2、智能汽车竞赛是以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛 之一。本竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨 在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力 和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。竞速 赛以统一规范的标准硬软件为技术平台,制作一部能够自主识别道路的模型汽车, 按照规定路线行进,并符合预先公布的其他规则,以完成时间最短者为优胜。竞赛过程包括理论设计、实际制作、整车调试、

3、现场比赛等环节,要求学生组成团 队,协同工作,初步体会一个工程性的研究开发项目从设计到实现的全过程。该竞赛融科学性、趣味性和观赏性为一体,是以迅猛发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械与汽车 等多学科专业的创意性比赛。该竞赛规则透明,评价标准客观,坚持公开、公平、 公正的原则,保证竞赛向健康、普及,持续的方向发展。 变形三轮组赛道包含十字交叉路口、坡道、环岛、横断路障、断路赛道 等元素。车模出发时需要保持两轮着地平衡状态出发,直到遇到第一个断路赛道元素车模改为水平三轮着地运行状态,遇到第二个断路赛道元素时车模需要重新恢复两轮着地运行状态,并最

4、终通过终点线。允许使用各类电磁、光电传感器、摄像头、超声传感器器件进行赛道和环境检测。 本文主要通过介绍车模的结构设计、硬件设计及软件设计,阐述我们小组在参与比赛中的设计思路和独特想法。 第二章 总体方案 2.1 主控芯片的选择 由于今年的规则对竞速组处理器的型号没有限制只要是恩智浦公司的即可,而三轮组由 于比赛任务的要求需要兼具电磁和光电类的传感器,需要较快的处理速度。因此我们比较了 市场上常见的几种恩智浦芯片,最终选择了具有 600M 主频的 i.MX RT1052 作为核心主控 制器。 2.2 传感器的选择 起初传感器的方案是水平运行为摄像头,直立运行为电磁传感器;后来发现光线对摄像 头

5、有较大影响,同时当车模运行状态为直立时,摄像头的倾角就不再适用,这时想要使用摄 像头识别直立状态的断路等元素就变得难以实现。总体实验效果摄像头没有电磁传感器稳定, 因此最终确定使用电磁传感器来检测横断和断路以外的赛道元素,加上漫反射激光传感器和 红外传感器来辅助识别横断及断路。 2.3 车模的选择 变形三轮组要求车模能够实现水平和直立两个状态的运行及切换,今年的规则允许 使用D、E 车模改装成三轮车;传统的三轮车模F 车模前轮太过笨重加上后面驱动的两个于D、E 车模,因此主要考虑D、E 车模。D 车模的底盘过短,在不加长的前提下 不满足改装三轮车最小前后轮距的要求。因此选择E 车模。 轮距小

6、第三章 结构设计 3.1 万向轮的选取 为了避免前面重量过重让车模重心集中,我们选用重量较轻的万向轮。 图 1 万向轮3.2 电路板的安装 为了使重心尽量集中在轮轴上,电路板主要安装在电机上方。 图 2 电路板的安装3.3 电池的安装 电池是车模上除电机以外最重的一块器件,为了使车模同时具有良好的两轮性能和三轮 性能,我们将电池安装在靠近电机的位置;同时在车模上安装了一块用于改变电池角度的舵 机,通过改变电池角度达到改变车模重心的效果,从而使车模同时具备良好的水平和直立性 能。 3.4 电磁传感器的安装 为了使电磁传感器能够准确地识别赛道信息我们采用双排电感的结构,即下面一排电 感用于直立识别

7、赛道信息,上面一排电感用于水平状态识别赛道信息。相较于仅使用单排 电感,水平状态时不会因为电感离地较近而失去良好的线性度电感值变化。 图 3 车模总体结构效果图 第四章 硬件设计 4.1 电源电路设计 电源模块对于一个控制系统来说极其重要,关系到整个系统能否正常工作,因此在设计 控制系统时应选好合适的电源。 车模供电主要有三种电压大小:7.2V、5V、3.3V,其中 7.2V 为电池电压,主要供给电机电源,5V 主要提供给核心板、舵机、摄像头、测速模块,3.3V 负责对陀螺仪、电磁传感器、以及调试用的无线模块等进行供电。经过测试,5V/3.3V 系统需要的总电流约为 200- 300mA,故我

8、们使用低成本、外围电路简单、占用 PCB 空间较少高效线性稳压器的AMS1117 作为 5V 以及 3.3V 电源芯片,且控制部分和执行部分分开供电,可以有效的防止各器件之间发生干扰,以及电流不足的问题。 电路图如图: 图 4 电压转化电路4.2 电机驱动电路 电机是车模的主动力机构,驱动的设计尤为重要。常用的电机驱动有两种方式:一:采 用电机驱动芯片;二:采用 N 沟道 MOSFET 和专用栅极驱动芯片。因为第一种方法电路简单且功率足够,满足比赛要求;第二种方法电路复杂,所以我们选择第一种方案。 电机驱动板为一个由分立元件制作的直流电动机可逆双极型桥式驱动器, 其功率元件由两个 BTN797

9、1 组成其应用非常简单,只需要向芯片第 2 引脚输入 PWM 波就能控制。当系统中只需要单向控制时,只需要让电机一端接地,另一端接 BTS7971 第 4 引脚。如果需要电机双向旋转控制,则需要另一片BTS7971共同组成全桥。由于小车使用双电机,所以我们使用4 片BTS7971 构成两个全桥分别控制两个电机。集成度高,电路简单。 该驱动电路,可以让电机处于多种模式下工作,经过在赛道上对赛车进行试验,电机的 加减速效 果很好,完全可以满足赛车对不同赛道加减速的要求。驱动部分原理图如下所示: 图 5 驱动部分图4.3 单片机系统 单片机是整个智能车系统的核心部分。I. MX RT1052 是NX

10、P 推出的 M7 内核的跨界处理器,主频高达 600MHz 具备高性价比。高性能 Arm Cortex-M7 芯片采用六级流水线,集成双精度浮点计算单元 DPFPU 和 DSP指令、实时响应延迟低至 20ns,为程序的高速运行提 供保障。 图 6 核心板部分原理图4.4 红外传感器 我们采用了红外传感器辅助车模识别断路,该传感器对环境光线适应能力强,其具有一 对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时, 红外线反射回来被接收管接收,经过比较器电路处理之后,红色指示灯会亮起,同时信号输 出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,

11、有效距离范围230cm,工作电压为 3.3V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点。 原理图如下: 图 7 红外对管传感器4.5 电磁传感器 使用电感作为检测导线的传感器,但是其感应信号较微弱,且混有杂波,所以要进行信 号处理。通常要进行以下三个步骤才能得到较为理想的信号:信号的滤波,信号的放大,信 号的检波。 1)信号的滤波 比赛选择 20kHz 的交变磁场作为路径导航信号,在频谱上可以有效地避开周围其它磁场的干扰,因此信号放大需要进行选频放大,使得 20kHz 的信号能够有效的放大,并且去除其它干扰信号的影响。使用 LC 并联谐振电路来实现选频电路(带

12、通电路),其中, L 是 感应线圈的电感值 C 是并联谐振电容。电路谐振频率为: f= 1 2 已知感应电动势的频率 = 20kHz,感应线圈电感为 L =10mH,可以计算出谐振电容的容量为: C=6.33109F 通常在市场上可以购买到的标称电容与上述容值最为接近的电容为 6.8nF, 所以在实际电路中我们选用 6.8nF 的电容作为谐振电容。 2)信号的放大 由第一步处理后的电压波形已经是较为规整的 20kHz 正弦波,但是幅值较小,随着距 离衰减很快,不利于电压采样,所以要进行放大,集成运放放大电路有同相比例运算电路和 反相比例运算电路,我们在实际中使用反相比例运算电路。由于运放使用单

13、电源供电,因此 在同相端加 vcc/2 的基准电位,基准电位由电阻分压得到。 3)信号的检波 测量放大后的感应电动势的幅值 E 可以有多种方法。最简单的方法就是使用二极管检波电路将交变的电压信号检波形成直流信号,然后再通过单片机的 AD 采集获得正比于感应电压幅值的数值。 部分原理图如下: 图 8 电磁传感器原理图 第五章 软件设计 5.1 开发及辅助工具 开发工具选用 Keil,Keil 是美国 Keil Software 公司出品的C 语言软件开发系统,Keil 提供了包括C 编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)

14、将这些部分组合在一起。Kei 具有方便易用的集成环境、强大的软件仿真调试工具,这些对车模的调试和程序的编写都具有很大帮助。 常用的辅助工具有地面站,地面站是由科创设计的一款上位机,单片机通过 蓝牙将数据发送至上位机,可通过上位机软件实时观察数据波形,极大提高了调试的效率。 图 9 上位机5.2 控制算法 1)姿态控制 姿态控制方面我们采用位置式 PID 对系统进行反馈控制。通过 MPU6050 对角度信息进行采集,并作为PID 的系统反馈从而对车模姿态进行控制。 位置式PID 公式: 车模姿态控制中通过内环角速度环、外环角度环串级 PID 调节使车模姿态更加稳定、增强车模的适应能力和抗干扰能力

15、。 期望角速度 (角度环输出)PWM 波姿态角速度 环 PID 控 制器 期望角度反馈角速度 反馈角度图 10 姿态控制流程图 2)方向控制 方向控制使用左右两个电感的 AD 值差值作为反馈量,使用 PD 控制来控制车模行进方向。 图 11 PID 控制过程3)速度控制 编码器的速度值作为速度控制的反馈量,使用 PI 控制来控制车模速度。 期望速度 PWM 波反馈速度 图 12 速度控制过程 速度环PID 控制器 车模电机编码器 角度环PID 控制器 车模电机陀螺仪 参考文献 1 童诗白,华成英. 模拟电子技术基础M. 北京. 高等教育, 2006 2 卓晴, 黄开胜, 邵贝贝等. 学做智能车

16、. 北京. 北京航空航天大学, 2007 3 何立民. 单片机应用系统设计. 北京. 北京航天航空大学, 1997 4 阎石. 数字电子电路基础. 北京. 高等教育, 2005 5 谭浩强. C 程序设计(第二版). 北京. 清华大学, 2001 6 张义和. AltiumDesigner 完全电路设计. 北械工业, 2007 附录 程序源代码 int main(void) MPU_Memory_Protection(); /初始化 MPU RT1052_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);/ 中断优先级分组 4 RT1052_Cloc

17、k_Init(); /配置系统时钟 /延时函数初始化 DELAY_Init(600); LED_Init(); OLED_Init(); /初始化 OLED LPUART3_Init(115200); Motor_Init(); MY_ADC1_Init(); /初始化 ADC1 /初始化编码器外设 ENC MY_ENC_Init(); IIC_Init(); MPU6050_initialize(); / 陀 螺 仪 初 始 化DMP_Init(); /DMP 初 始 化KEY_Init(); / 初 始 化 按 键 SDRAM_Init(); / 初 始 化 SDRAM for(int i

18、=100;i0;i-) MY_ADC1_GetOnce();/mySensor 电感值 QTMR1_NvicInit(0, 0);/定时器 QTMR1 中断配置初始化 /定时器 1 通道 0 初始化 QTMR1_CH0_Int_Init(1); OLED_P8x16Str(0,1,OK); delay_ms(500); OLED_CLS(); while(1) run(); /TMR1 中断服务函数 void TMR1_IRQHandler(void) /判断是不是 TMR1 通道 0 的比较中断if(QTMR_GetStatus(TMR1,kQTMR_Channel_0)&kQTMR_Com

19、pareFlag)=kQTMR_Comp areFlag) QTMR_ClearStatusFlags(TMR1,kQTMR_Channel_0,kQTMR_CompareFlag); / 清除中断标志位 timer+; /1ms 中断一次 if(stopProFlag != 1) speed=speed_AIM; Stop_count+; if(Infrared2=0 & Stop_count10000) stop(); carChange(); MY_ADC1_GetOnce(); DG_stopPro(); if(stateFlag = TWO_WHEEL) Ring_Entry_cou

20、nt+; Out_Ring+; Angle_count+; Dev_count+; G_Val=(int)(Get_Gyro_Y()/10)*0.1f+G_Val_Last*0.9f; G_Val_Last = G_Val; Dev=(int)( mySensor.Fifer_ADC_1- mySensor.Fifer_ADC_2); Dev_True = Dev; Dev_ACC=(int)Get_Gyro_X()*0.3f+Dev_ACC_Last*0.7f; Dev_ACC_Last=Dev_ACC; Turn_P = 11; Turn_D = 0.5; twoWheelCir(); t

21、woWheelObsta(); if(Roadblock_Start=0) Turn_OUT = Turn_PID(Dev_True,Dev_ACC); else if(Roadblock_Start = 1) Turn_OUT=Turn_Angle_PID(Roadblock_ANGLE- Roadblock_Angle_AIM,Dev_ACC); else Turn_OUT =Turn_PID(Dev_True,Dev_ACC); if(Angle_count = 5) A_Val=Get_Angle(1)*10; CORE_OUT=Angle_PID(int)A_Val,(int)G_V

22、al); Angle_count=0; if(Dev_count = 10) /10ms Get_Speed(&Speed_now, &Acc_now); if(abs(Acc_now)200) Speed_now=Speed_Last; Speed_Last=Speed_now; Dev_PID(Speed_now-2000, Acc_now); Dev_count=0; Angle_OUT=Gyro_PID(int)(G_Val+CORE_OUT),(int)G_Val_ACC); if(Turn_OUT1000)Turn_OUT=1000; if(Turn_OUT100) Turn_OUT=100; if(Turn_OUT 20) S = (myEncoder.speed_2 + myEncoder.speed_1) / 2; else if(Roadblock_Start = 1) Turn_OUT=Turn_Angle_PID(Roadblock_ANGLE- Roadblock_Angle_AIM,Dev_ACC); else Turn_OUT =Turn_PID(Dev_True,Dev_ACC); if(Speed_count20) if(speedS) S+=1; else S=speed; S

温馨提示

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

评论

0/150

提交评论