第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告(光电组)大连海事大学 逆袭二号

上传人:小** 文档编号:57141632 上传时间:2018-10-19 格式:DOCX 页数:54 大小:17.07MB
返回 下载 相关 举报
第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告(光电组)大连海事大学  逆袭二号_第1页
第1页 / 共54页
第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告(光电组)大连海事大学  逆袭二号_第2页
第2页 / 共54页
第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告(光电组)大连海事大学  逆袭二号_第3页
第3页 / 共54页
第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告(光电组)大连海事大学  逆袭二号_第4页
第4页 / 共54页
第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告(光电组)大连海事大学  逆袭二号_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告(光电组)大连海事大学 逆袭二号》由会员分享,可在线阅读,更多相关《第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告(光电组)大连海事大学 逆袭二号(54页珍藏版)》请在金锄头文库上搜索。

1、第十届“飞思卡尔”杯全国大学生智能汽车竞赛技技 术术 报报 告告自平衡小车自动巡线运行控制的研究学 校: 大连海事大学队伍名称: 逆袭二号参赛队员: 黄翊峰 东东 汪星带队教师: 滕国库 陈鹏 关于技术报告和研究论文使用授权的说明本人完全了解第十届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名: 黄翊峰 东东 汪星带队教师签名: 滕国库陈鹏日 期: 2015/8/18

2、引 言第十届全国大学生“飞思卡尔”杯智能汽车竞赛是以“立足培养、重在参与、鼓励探索、追求卓越”为宗旨,鼓励创新的移向科技竞赛活动,竞赛分为光电直立组、摄像头组、电磁组三组,光电直立组要求在规定的汽车模型平台上,使用飞思卡尔半导体公司的微控制器作为核心控制模块,通过增加姿态传感器、道路识别传感器、电机驱动模块以及编写相应的控制程序,制作完成一个可以保持两轮直立姿态,能够自主识别道路的平衡车。智能汽车竞赛的赛道路面为宽度不小于 45cm 的白色面板,赛道两侧边沿有宽度为 25mm 的连续黑线作为引导线,参赛队员的目标是模型汽车需要按照规则以最短的时间完成单圈赛道。本次比赛中,我们使用大赛组委会统一

3、提供的 E 车模,采用飞思卡尔 MK60FX512VLQ15 单片机为核心控制器,采用 BTN7971 驱动车模电机,L3G4200D 和 MMA8452 作为姿态传感器,TSL1401 线性 CCD 作为道路识别传感器,自主构思姿态控制,速度控制和转向控制方案,引导车模按照规定路线识别行进。在报告中,我们通过对整体方案、机械、硬件、算法等方面的介绍,详细阐述了我们在此次只能汽车竞赛中的思想和创新。包括电路设计、算法及辅助调试模块、机械结构等等。第一章 机械结构对于平衡车,要想实现高速稳定的运行,机械结构应当做到使重心尽可能的低,以减少电机在维持直立时的输出量,使直立控制抗干扰能力更强,同时,

4、要想转弯灵活,机械结构应当使重心尽可能的集中,以减少车模转动惯量。车模运行速度需要车模维持一定向前的倾角以获得加速度,车模运行也需要考虑坡道的影响,为了上下坡不挂底盘,在降低重心的同时需要保持一定离地间隙。本章介绍了平衡车机械结构,包括电池安装位置,线性 CCD 安装位置,姿态传感器安装位置等。1.1 电池位置、整体结构为了使重心降低,我们采用了经典的”V”型机械结构,将电池放置在了紧贴车模前方的位置,和车的底盘和电机质量关于车轴对称,并将大部分的器件集中在车模前方,让车模的平衡位置尽量躺倒,这样可以使车模运行时重心更低,更稳定。同时使用不锈钢制作了电池支架,在保证强度的同时进一步降低了重心,

5、我们将车模原有的连接两个传动架的连接杆去掉,使用电机驱动板连接,保证了强度的同时也降低了重心,还使电池可以紧贴车模,保证了转动惯量不会太大,而为了进一步降低转动惯量和让车模平衡位置更靠后,我们还将车模头部笑脸位置锯掉。车模结构、电池安装如下图:1.3 传感器位置1.3.1 线性 CCD 安装线性 CCD 是小车获取路径星系的传感器,需要一个稳定的安装方式以获得更稳定的图像质量,我们 3D 打印了线性 CCD 支架,并用空心碳纤维杆做支撑,以尽可能减小轴上方的重量。为了在车模转弯时 CCD 部分不产生额外的转动惯量和保证图像的稳定,杆子的角度应当尽量保证在车模行驶时与地面垂直。下图是 CCD 支

6、架特写图和渲染图,同时它也承担了固定加速度计和陀螺仪的任务:对于光电组直立车,在比赛时如果设定了不同的速度档位,转弯前瞻一定是不一样的,所以对于 CCD 的固定,我们使用 3D 打印和铝合金结合的方法,设计了一款带有刻度尺的 CCD 支架,安装时可用小刀在支架上划上一些刻度,可在比赛变速时精确调整需要的前瞻,如下图:1.3.2 陀螺仪int zhijiao=0; int Into_zhijiao_right=0; int Into_zhijiao_left=0; int zhijiaoqian=0; /int guanbizhijiao=0; int d=0; int shutdown_zhi

7、jiao=0; int shutdown_zhijiao2=0; int zhijiao_bai=0;int danxian_check_sum=0; int danxian=0;int danxian_zhi=0; /本次单线的值int danxian_zhi22=0; /上次单线的值int danxian_ccd2=0; /CCD2 所看单线的值int danxian_get=0; /CCD2 是否检测到单线标志位int danxian_get1=0; /* 直角 */int zhijiao_allow = 1; /允许红外,防单线int zhijiao_hei=0;int zhijiao

8、_line_left=0; int zhijiao_line_right=0; int zhijiao_turning=0; int zhijiao_CCD3_chu=0; int zhijiao_chu=0; int zhijiao_chu_time=0; extern int zhijiao_hei_time; int targe_error3=15; int zhijiao_chu_shu=0; int zhijiao_turning_time=1; int zhijiao_heheda=0; int zhijiao_hei_error=25; int po=0;/*二值化*/int t

9、arge_error2=15; int16 targe_error=40; /下降沿阀值int danxian_error=40; /单线下降沿阀值int32 ccd_sum=0,ccd_avg=0; /CCD 数值的和、平均值uint8 ccd_max=0,ccd_min=0; /CCD 最大值、最小值int16 ccd_target; /上次左右黑线的中间值,即中点int16 ccd_target1; int Ccd_getline_flag=0; int Turning1=0;uint8 B_flog=0,H_flog=0; /全白标志位,即十字int16 line_right3=90;

10、 /右黑线位置存放数组,最近 3次的int16 line_left3=30; /左黑线位置存放数组,最近 3次的int line_right1=90; /最新一次的右黑线位置int line_left1=30; /最新一次的右黑线位置int line_right2=90; /最新一次的右黑线位置int line_left2=30; /最新一次的右黑线位置/* 障碍 */int zhangai_hei=0; int zhangai_hei_zuo=0; int zhangai_hei_you=0; int zhangai_time=0; int zhangai_time1=7; int B_fl

11、og_wangxing=0;int Coner=1; /* ccd2 */void ccd_deal(uint8 ch) /求数组 ch,即 ccd 的平均值、最大值、最小值uint8 i;int8 max=1,min=1;for(i=5;ichi) min=i;ccd_sum+=chi;ccd_max=max;ccd_min=min;ccd_avg=ccd_sum/118;ccd_sum=0;/这里没清零平均值会飞起。 。 。void ccd3_work() int i=0;/* 弯道检测 */Coner=1;for(i=30;itarge_error3) Coner=0;break;/*

12、出直角检测 */zhijiao_CCD3_chu=0;if(zhijiao_line_right=1 | zhijiao_line_left=1) zhijiao_CCD3_chu=1;for(i=10;itarge_error3) zhijiao_CCD3_chu=0;break;void ccd2_work() uint8 i=0;/ int16 error; /error=Pixe2i-Pixe2i-4,用于判断是否大于阀值/uint8 no_left_line=0,no_right_line=0; /是否寻到左右线的标志位if(danxian=1) /若入单线,CCD2 开始搜单线da

13、nxian_get=0; /标志位清 0for(i=10; itarge_error2 /单线所在的点danxian_get=1; /检测到单线标志位break; /* *下面搜索 CCD2 的左右黑线* */ / if(danxian_ccd2126) danxian_ccd2=126; /如果中间值大于 126,则默认为 126/单线为搜线的中心值if(danxian_get=0)danxian=0;danxian_ccd2=0;zhijiao_allow = 1;zhijiao_hei=0; void ccd_getline() /求 CCD 的左右黑线uint8 i=0;int16 error; /error=Pixe2i-Pixe2i-4,用于判断是否大于阀值uint8 no_left_line=0,no_right_line=0; /是否寻到左右线的标志位ccd_deal(Pixe2);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号