毕业论文参考模板1

本科生毕业论文(设计)

题目:基于K60单片机的CCD传感器

智能车设计

学院电子信息工程学院

学科门类工学

专业电子信息工程

学号1108421118

姓名包然

指导教师鲁世斌/沈杰

2015年05月06日

摘要

本篇文章主要介绍了基于线性CCD的飞思卡尔智能小车控制系统的软件和硬件设计要点。智能车系统的简单工作原理是线性CCD传感器采集的光信号所反映的赛道信息经过MK60的相应的算法处理,主要先对数字的信号进行滤波以做到滤除杂波的效果,再通过黑线提取的算法,从而识别赛道。接着软件判断赛道信息是否正确,结合控制的算法控制舵机给出合理的舵机转角值,然后单片机再给出相符的PWM波占空比用来控制电机的转速。控制速度方面主要是采用一个500线增量式光电编码器来实时反馈脉冲,利用单片机的FTM功能采集速度的脉冲值。最后通过蓝牙和OLED显示屏反映即时信息,用以调试具体参数。经过场地的多次测试,小车的智能系统可以通过复杂的赛道,且运行的十分平稳。

关键词:滤波;线性CCD;MK60DN512ZVLL10;蓝牙

Abstract

The paper mainly introduced the software and hardware design of Freescale intelligent car control system which based on linear CCD. The simple working principle of intelligent vehicle system is that the light of the linear CCD sensor signal reflects the track information throught MK60 corresponding algorithm processing which achieve the effect of filtering clutter by filt black line extraction algorithm. Then the software judges whether the track information is correct and in combination with control algorithm to control the steering Angle of steering gear is given reasonable value, and then MCU gives consistent wave PWM duty cycle which is used to control the speed of the machine. Control speed mainly uses a 500 line incremental photo electric encoder to real-time feedback pulse, and the FTM function of microcontroller pulse value of the acquisition speed. Finally reflecting the real-time information through Bluetooth and OLED display and debugging the concrete parameters. After field testing for many times, the intelligent system of the car can pass through the circuit of complexity and run very smoothly. KeyWords: wave filtering; linear CCD; MK60DN512ZVLL10; Bluetooth

目录

摘要............................................................................................................... I Abstract .......................................................................................................... II 目录............................................................................................................ I II 1. 引言 . (1)

1.1概述 (1)

1.2滤波器介绍 (1)

1.3研究智能车辆的目的和意义 (2)

2. 方案设计 (2)

2.1 选定合适的系统总体方案 (3)

2.2系统总体方案的设计 (3)

2.3小结 (4)

3. 调整和优化机械结构 (4)

3.1智能汽车车体机械建模 (5)

3.2智能汽车传感器的安装 (5)

3.2.1速度传感器的安装 (5)

3.2.2安装线性CCD (6)

3.2.3 车模红外对管传感器 (7)

3.3重心高度调整 (7)

3.3.1电路板的安装 (7)

3.3.2电池安装 (7)

3.4 其他机械结构的调整 (7)

3.5 小结 (7)

4. 智能汽车硬件电路设计 (7)

4.1 智能车主控板设计 (8)

4.1.1电源管理模块 (8)

4.1.2电机驱动模块 (9)

4.1.3接口模块 (10)

4.2 智能汽车传感器 (12)

4.2.1 线性CCD传感器 (12)

4.2.2编码器 (12)

4.3 液晶屏 (13)

4.4 小结 (13)

5. 智能汽车控制软件设计 (13)

5.1控制流程图 (13)

5.2线性CCD传感器路径精确识别技术 (13)

5.2.1分析线性CCD路径识别 (14)

5.2.2线性CCD传感器路径识别算法 (15)

5.3弯道处理 (16)

5.4PID算法 (16)

5.5障碍以及人字弯处理 (16)

5.6软件开发、调试 (17)

结束语 (18)

参考文献 (19)

附录 (20)

致谢 (25)

1. 引言

1.1概述

当今智能交通系统中的一个重要构成成分就是智能车自动化系统,它已慢慢成为车辆领域的一个研究的重要方向。智能车控制系统可以利用环境感知能力,通过电脑系统的决策规划达到可以自行驾驶和辅助司机驾驶的目的。随着现代各种高科技技术的快速发展,计算机对信息和数据的处理能力的大大提高,所以在现实的生活中会非常广泛的应用到利用传感器采集信号,然后进行处理,最后进行识别的控制系统,尤其在交通领域和机械制造领域应用的非常多。整个控制系统最核心的两部分其中一个就是怎么用“眼睛”即传感器清晰的看见道路的具体情况并传回计算机进行相应的识别和处理,另一个怎么控制“行走”即发动机的运行速度可以根据当前的道路的实际情况调整速度。在实际中经常使用检测道路情况的传感器就是光电传感器和CCD图像传感器。

1.2智能车辆的发展与现状

智能交通系统的最不可或缺的技术就是智能车技术,没有智能车技术的交通系统也只是一个无用的空壳,根本无法为人类生活的快捷和舒服提供有利的条件,而智能车是各种高科技技术通过相互嵌套相互协作构成的一个整体,是这个智能车领域的通用语言,意思就是可以在智能车的驾驶过程中可以为行驶至少承担一项任务以上的技术。想必我们在生活中已经渐渐接触到室内的机器人,那么用通俗的语言来说,智能车就是室外版的机器人而已,这样的比喻能使我们更加容易地理解智能车这个新颖的概念。只要车辆可以自己探视和判断当前车辆前方的道路具体情况,可以相应的发出警告声提醒驾驶员或者可以自己控制方向和速度以达到避免危险的行为,便可认为该车辆具有智能性。

当今科技的发展,各个学科领域如果单独去研究开发已渐渐满足不了时代的需求,所以慢慢产生了交叉学科,而智能车辆技术正是这个领域的产物。没有其他领域提供的新技术、新思想和新理论的支持,智能车也无法发展起来,这其中包括通信技术、汽车电子、图像识别和处理等一系列领域。

智能车辆(Intelligent Vehicle,IV)技术的研究,自从1950初美国Electronics公司研究开发的一个相当于移动机器人的车辆—世界上首次开发的可以自动引导驾驶的车辆(Automated Guided Vehicle,AGV)[1]。从第一辆智能汽车的出现之后,欧洲的德国和英国、美洲的美国以及亚洲的日东都开始投身于智能导航技术的研究和开发。一直到今

天,世界各国一直为智能车辆技术的研究付出巨大的人力、物力和财力,但也换成了巨大的收获,像JUTIV系列由吉林大学研究开发的、CITAVT系列由国防科技大学研究开发的。

1.3研究智能车辆的目的和意义

1950年以来,人类文明的不断发展也推动汽车行业的快速发展。汽车是现代交通中非常重要的一个工具,它给现代人类出行提供了便利,从而使人类社会的发展越来越快,因为其不可磨灭的重大作用,国家和社会的高度关注,使其发展的速度达到令人叹为观止的地步。不仅仅在产量和规模上的不断增加,汽车制造业已成为我国乃至世界经济的一个重要支柱,而且还不断提高了汽车技术,使之成为一个技术水平越来越高的技术密集型和资金密集型相结合的产业。因为当前不管是发展中国家还是发达国家的汽车的行驶的数量都在不断增加,每年的交通事故一直居高不下,有无数的生命付出了献血的代价,所以为了减少人类操作失误或者反应迟钝导致的交通事故,社会乃至国家都大力发展汽车科技技术,以达到智能避免危险的目的。

现在高科技的快速发展已经成为时代发展的烙印了,特别在国家实力方面凸显的越来越重要的位置,它代表着科技文明的进步。智能车辆作为一个新起的研究领域,它包含着各种关于模式识别、信息化发展、传感器检测和图像处理的技术和思想,对于人类社会的进步有着非常重要的研究价值,同样也代表着一个国家的先进的科研能力,这将对整个科技研究领域都有非常大的推动作用。

智能车现在还没有应用到实际生活中的技术储备和技术能力,但汽车作为国家的重要的国民经济来源,并与人类出行息息相关。它不仅仅对科技研究具有良好的促进作用,而且对于国民经济的发展也有潜移默化的影响,甚至对其他行业的发展起到领导作用,没有汽车的行业的飞速发展就不会有整个经济社会的繁荣兴旺,所以其研究工作仍然显得十分必要和迫切。其实各个国家很早就开始进行智能车的研究和开发,因为这是未来汽车的发展趋势。智能家居的发展就是智能化应用到现实生活中的一个非常典型的例子。“飞思卡尔”智能汽车的比赛就是为了实际的智能汽车的研发做好实际的经验和创新的思路,虽然可能“飞思卡尔”比赛的智能汽车循迹不符合实际情况中的循迹要求,但是这为实际生活中的3D视觉的智能汽车的控制提供了一些技术上的借鉴。

2.方案设计

选定合适的总体方案,拥有新颖的系统设计方案,这些对系统的研究方向起到绝对

的领导作用,本部分就主要针对实际情况和功能需求考虑几种方案并在其中找到切实可行的方案,智能汽车系统的其余部分将在后面的章节进行具体介绍。

2.1 选定合适的系统总体方案

本设计要满足“飞思卡尔”智能汽车大赛光电组比赛对传感器的严格规定,比赛时候必须只在线性CCD和LED光学传感器中选用一种,往届光电组使用的激光传感器是不允许使用的,这对本设计是一个全新的挑战。接下来对这两种光学传感器的优缺点进行比较,LED光学传感器对近距离的赛道采集返回来的信号很稳定,这对提取黑线和赛道识别非常有利,但由于本届光电组的比赛采用的是四轮车的模型,这对车速的要求就会较高,而LED对远距离道路采集根本无法胜任。线性CCD可以做到远距离采集赛道信息的功能,但也有其缺点,就是静电干扰比较严重,对赛道的识别处理起来会比较麻烦[2]。线性CCD实物图如图2-1所示。综上比较分析,为了提高车子的竞赛速度,选择采用信号较不稳定的线性CCD。

图2-1 线性CCD实物图

2.2系统总体方案的设计

对于整个智能车系统,采用线性CCD作为赛道黑白信息的模块,线性CCD采集回来的AD电压值通过主控芯片32位的MK60DN512ZVLL10单片机进行黑线提取运算,然后将行驶的车身偏差的数据传给舵机。而舵机采取PD控制算法,舵机PD控制算法是在图像采集稳定后又一重要的模块,好的PD控制直接影响着四轮光电车的速度,在PD 控制中我们尝试了各种的方法比如分段PD,二次函数的PD控制,三次函数的PD控制和一次函数的PD控制。

根据以上系统方案的设计,赛车共包括六大模块:主控单片机MK60DN512ZVLL10

模块、线性CCD传感器模块、7.2V电源模块、驱动和转向电机模块、编码器速度检测模块和蓝牙、OLED显示屏辅助调试模块。各模块的作用如下:

主控单片机MK60DN512ZVLL10模块,相当于计算机主板上的CPU,可以把线性CCD传感器采集的电信号和500线程光电编码器返回的信号按照事先写好的算法进行计算,然后将计算好的数据给舵机转向和电机驱动;

线性CCD传感器模块,是智能汽车的前方哨兵,通过线性CCD传感器可以提前探测前方赛道的黑白信息,这样主控单片机就可以根据赛道情况控制方向和速度并为后来的转向和速度控制做好准备;

7.2V电源模块,是整个智能汽车系统的动力来源;

驱动和转向电机模块,车尾部的驱动电机通过PID算法实现闭环的加减速和控制车头的伺服电机驱动的舵机通过PD算法实现方向控制;

编码器速度检测模块,利用光电传感器采集电机速度返回单片机为电机的PID速度闭环做准备;

蓝牙和OLED显示屏辅助调试模块,采用OLED液晶显示屏实时显示车速、舵机打角和赛道黑白情况。用蓝牙发送数据到串口和上位机,一方面可以检查程序是否有问题,另一方面通过上位机查看赛道信息二值化的情况。

2.3小结

总体方案对这个系统的实施和运行都是非常重要,而本部分已经对整个智能车系统的六大模块都已经进行了简明的分析和介绍了,这样对于总体设计的方案有一个全面的认识和了解,接下来就是对每个系统模块进行具体的分析和介绍。

3. 调整和优化机械结构

一个智能汽车系统为了能保证各个模块的正常工作,就必须使小车有较好的机械结构。就像一个运动员不仅仅要有强大的毅力和自信而且也必须要有一个强魄的身体。所以在设计整个智能车系统算法和软件时,首先要调整光电车的机械结构,让机械结构具有良好的机械特性并满足算法和软件的设计要求。然后在后期的调试过程中不断的优化和调整汽车的机械,使机械更好的迎合算法要求和使算法完美的驾驭机械。“软件算法设计决定车子的最高速度而机械的优化决定车子能不能达到最高速”。正如这句话所说,机械的好坏对智能车的速度有绝对的影响。本部分就来介绍智能车的机械结构以及优化方案。

图3-1智能车外形图

3.1智能汽车车体机械建模

此次竞赛选用的是东莞市博思电子数码科技有限公司生产的智能车竞赛专用模型车(B型模型车)。这款智能车的车模是采用功率较大的单个电机在后轮驱动,舵机采用的是S-D5的数码舵机,后面的是两个又宽又大的轮子,与之匹配的轮胎是实心的橡胶轮胎(摩擦力不怎么好),还有一个最大的特点就是后轮采用的是单轴的机械差速器。经过不断的尝试组装,搭建合适的一些模块和电路PCB板,最后的智能车的外形大致如图3-1所示。

3.2智能汽车传感器的安装

为了符合本次比赛的竞赛规定和智能车调试过程中实际要求,在车模中安装了光电编码器作为速度检测传感器、用于采集赛道信息的线性CCD光学传感器、用于检测赛道坡道的红外反射壁障传感器和检测起跑线的红外对管传感器。

3.2.1速度传感器的安装

用于速度闭环系统的三相光电编码器安装方法如下:

先用十字扳手套筒这个工具将后轮中心连轴的那个大的五角星的螺丝拧下来,然后根据买回来的配套固定件的尺寸来打孔安装固定件,然后再根据固定件将编码器安装上去,但一定要注意编码器齿轮和电机齿轮一定要接触流畅,不能过紧也不能过松。如图3-2所示的是车模的前轮前束。

在安装完编码器后,然后按照拆卸的步骤将后轮再安装上去。

在固定编码器时最重要的就是编码器的齿轮与电机的齿轮一定要相互咬合合适,因为编码器的齿轮安装对整个智能汽车的驱动速度有很大的影响。既不能两个齿轮咬合的太紧也不能使两个齿轮咬合的太松了。一方面接触太松了的话,齿轮挂不住会影响小车速度的采集情况,从而影响整个车子的速度闭环系统,甚至可能打坏齿轮。另一方面两齿轮接触太紧的话,电机的齿轮转动起来就非常吃力,平白的增加了电机的阻力,浪费电机的动力。调整两个齿轮之间的松紧可以通过转动的声音进行判断,比如说在后轮空转的情况下,齿轮转动时发生尖锐刺耳的声音说明齿轮之间咬合太松,如果声音比较沉闷,则表示齿轮之间咬合的太松了。如果声音清脆有规律则说明两个齿轮之间的咬合得非常合适,这样光电编码器就既不会阻碍电机的旋转而且还可以较为准确的采集到电机的转速反馈给单片机。

图3-2前轮前束图

3.2.2安装线性CCD

线性CCD是用来采集前方赛道的黑白信息的,为了满足车子的竞赛速度,所以一定要有够长的前瞻性。采用碳素管材料架高CCD,因为碳素管质量轻,够稳固。固定线性CCD的器件采用的是铝合金材料,这样既可以很好的固定镜头也可以降低重心。最大的好处是可以方便调整CCD的镜头,以应付赛场的各种特殊的情况。如图3-3所示。

图3-3CCD的安装

3.2.3 车模红外对管传感器

先后将红外对管的模块放在车子的前面和后面取得效果不好,一方面放在车头和车尾在上下坡的时候都会与坡道发生碰撞。另一方面检测的时候会有错误信息反馈回来。所以将共四路红外对管模块放在车模中间的位置,第一方便检测起跑线,第二避免在坡道误判断了。

3.3重心高度调整

为了能够充分保证小车在竞赛场地上的稳定快速的机动能力,对重心高度的把握是必不可少的一个环节。倘若重心过高,对车子的稳定性影响很大,会在高速过弯的时候发生侧翻。所以降低车身的重心是提高小车稳定性的重中之重。

3.3.1电路板的安装

电路板对于整个小车的改装后稳定性的影响很大,所以电路板合理的安装位置将有利于提高车身的稳定性,所以将电路板安装在车身的中间左右,即安装在电机的前面。

3.3.2电池安装

用两个塑料支架固定在舵机后面的车盘上,进而用于固定电池,最大程度的保持了小车的重心在车子的中间。

3.4 其他机械结构的调整

车身的机械调整不仅仅只有上面关于重心的一些调整方案。差速器的调整对小车的行驶也是非常重要的,差速器主要功能是为了使小车能够方便快速的过弯。

在调试中或者比赛中,小车难免会冲出赛道或者与其他小车碰撞,为了有效的保护小车的机械和元件,在小车的前面加了防撞的碳素管和泡沫。

3.5 小结

机械是智能车性能的载体,只有良好的机械性能,那么优秀的算法程序与之匹配才可以使小车在赛道上跑出更高更快更稳的效果。通过大量的安装和调试,将小车的重心固定在车身的中间对小车的稳定性和速度的提高都是非常有利的。接着机械差速器的调整,可以使小车在转弯的时候两个轮子的速度有差别,即靠近弯道外侧的轮子速度较快,靠近弯道内侧的轮子速度较为慢,这样就非常有利于过弯道。对提高整个小车的速度有着至关重要的作用。

4. 智能汽车硬件电路设计

4.1 智能车主控板设计

4.1.1电源管理模块

首先了解一下不同电源的特点,电源分为开关电源和线性电源,所谓的线性电源就是在线性状态下才工作的反馈电路。同理,开关电源其实就是只有在饱和和截止区下才工作的电路,所以线性电源和开关电源模块有着很大的区别[3]。线性电源因为其线性的特性可知,它的工作输出的电压比较稳定,产生的波纹也比较小,就目前的电源使用情况来说,线性电源使用的较多且技术比较成熟。开关电源虽然是可以高效率地使用,利用在智能车小车系统上有点多余,最重要的是开关电源产生的波纹较大,对整个智能车的系统的稳定性的影响是非常大的,所以从稳定性考虑应采用线性来源作为智能车系统的动力来源。

俗话说“人是铁,饭是钢,一顿不吃饿得慌”,同样智能车的电源模块就是对于人类来说的“饭”,没有电源供给的智能车只能算一个模型,就像没了汽油的轿车,一点动力都没有。归根到底,电源模块对整个智能车系统来说是非常重要的。根据大赛的规定,比赛车模统一采用的是7.2V2000mAh的电池供电。但对于整个智能车系统来说是远远不够的,因为智能车的各个模块使用的电压是不相同的,必须要搭建一个适合各个模块运行的电源模块。

图4-1电源管理模块原理图

智能车的核心单片机模块和按键模块采用的3.3V供电的,光学传感器线性CCD、500线程的光电编码器、OLED显示屏、红外对管和红外壁障等模块都是采用5V供电系统供电

的。对于智能车的转向器件舵机来说,因为本届光电组采用的B车模,所以必须使用数字舵机。数字舵机的参数表上要求使用的最佳电压是5.5V,但是舵机的转动力跟电压有关,为了使小车有及时的转向反应速度,给舵机使用的是6V电压。所有智能车各个模块稳压电路示例见图4-1。

正如上图所示,3.3V的电源稳压采用的是LM1117稳压芯片,LM1117稳压芯片具有成本低、使用电路简单的优势,可以有效的减少电源模块在PCB电路板上的空间。5V电源模块采用的是LM2940稳压芯片,LM2940稳压芯片是一个功率较大的串联型稳压芯片,驱动能力较强。舵机的稳压模块采用的是LM2941稳压芯片,LM2941稳压芯片具有线性可调的特性,通过滑动变阻器将电压调至6V给舵机供电。为了使整个稳压模块的稳定性提高,采用隔离芯片74HC244隔离电机的电源线,防止电机对电源波纹的干扰,从而影响整个系统的各个模块的工作。比如会导致线性CCD的采集不稳定,单片机电压不足导致了复位,单片机复位过后那么之前单片机存储的数据就会全部清除,会影响小车的行驶,导致小车跑出赛道,这样整个系统就崩溃了,所以为了保证整个电源系统的稳定性,要从一定程度上减少电源的波纹[4]。

4.1.2电机驱动模块

因为光电组的电机是较大功率的电机,普通的集成芯片组成的驱动模块是不能长期有效的满足电机的需求。比如集成芯片BTS7960,刚开始因为没有合适的关于MOSFET搭建H桥的驱动电路和设计经验,所以在刚开始的调试过程中使用的是BTS7960这款驱动芯片搭成的电路。在实际需要中也可以驱动电机,但绕着赛场跑几圈之后,驱动芯片就会发烫不得不停止调车。这样的驱动对于光电组来说是不合适的,满足不了的,所以就开始查询资料准备搭建MOSFET和相应的驱动芯片组合的驱动模块。经过多次的尝试和实验,最终模仿完成了驱动模块的设计,对于这个模块还是比较满意得。其驱动的能力之强,效率之高是BTS7960芯片远远不能比的,充分的发挥了电机的性能。

MOSFET是N沟道分立式的,所以它的导通电阻非常低,这样电路的回路电阻就会大大减小。为了提高其开关的速度,采用了独特的驱动芯片和电路,这样大大提高了PWM 的调制频率。就其工作电路的可靠性来说,独特的驱动芯片可以减少硬件死区和欠电压保护的可能[5]。

1.MOSFET驱动芯片的选择:

通过查询网上资料可知,IR公司的芯片口碑很好。对其多款产品进行认真的比对检测,初步决定采用IR2184型芯片,这款芯片是一个半桥驱动的芯片,可以直接驱动两个N 沟道MOSFET,且其驱动电流很大,并能提高工作电路的可靠性。因为车模的大电机需要

搭建的是H桥的驱动电路,所以设计采用两块IR2184型芯片正好可以组成H桥式驱动电路,用来驱动直流大电机。

2.逻辑电路控制设计:

IR2184有两个管脚IN和SD用来控制信号。如图4-2所示的是IR2184输入输出信号关系图。

IN

SD

HO

LO

图4-2IR2184输入输出关系图

而当两片IR2184驱动的可逆桥式电路时,其真值表为表4-1。

表4-1可逆桥式电路中IR2184输入输出信号真值表

输入输出

状态

IN1 SD1 IN2SD2HO1LO1HO2LO2

正转H H L H H L L H

反转L H H H L H H L

上桥臂制

H H H H H L H L

下桥臂制

L H L H L H L H

关闭X L X L L L L L

正如图4-3所示就是设计的H桥式电路,整个电路主要用了两个IR2184驱动芯片和四个MOSFET组成的,可以实现PWM从0到100%的控制且长时间运行芯片不发烫。4.1.3接口模块

1.CCD接口

线性CCD光学传感器购买的是蓝宙公司的TSL1401CL模块,因为是成品的模块,所以没有什么外围器件,接口极其简单,直接将信号接口与单片机接口连接。一般的电路

都集成在买来的成品的模块上,为了适应于不同光强环境下的采集,电路中有一个电位器起调节作用。CCD电路如图4-4所示。

图4-3单极性桥式电路

2.编码器接口

编码器在闭环速度控制方面极其重要,编码器的信号采集是采用FTM的正交解码来实现的,通过正交解码可以采集到电机的转速和正反转,反馈到PID闭环系统中。电路如图4-5所示。

图4-4线性CCD接口

4.2智能汽车传感器

为了满足大赛对传感器方面的要求,所以在传感器的选择上没有花费太多的时间。而相对于传感器的优化,也主要是传感器对环境的适应性方面进行优化,即让线性CCD 能在多种光强环境下都能很好的采集到道路信息。

图4-5编码器接口

4.2.1 线性CCD传感器

线性CCD是内部是由光电二极管放大电路构成,光电二极管总共有128个。其基本单元如图4-6所示。

图4-6CCD内部感光单元

光照射到光电二极管上,产生光电流,光电流被积分电路积分。为了满足不同场地光强度的不同,所以CCD的积分时间具有可变性。其可变性的原理是这样的:CCD采样的时候,CCD的输出端跟积分电容是连接在一起的,输出电压积分后是和光照强度和积分时间成正比关系,所以CCD的积分时间是可变的。

4.2.2编码器

编码器的主要功能是为了检测速度,作为整个PID速度闭环系统的速度反馈。在智能车行驶的过程中,对小车速度的监控和调整是必不可少的一个环节,要想小车跑的更快又不能脱离程序的控制范围,必须要加入编码器进行速度反馈,即小车被编码器监控

着,小车的一举一动都在编码器的掌控中,一旦小车超出了预期行驶的速度,编码器就会马上把小车速度反馈给单片机,从而方便单片机对车速进行调整,这样就可以充分保证小车在行驶过程中的速度稳定性。Kinetis单片机的FTM正交解码既可以知道电机是正转还是反转也可以知道电机返回的脉冲值,只需要将接口连接到单片机上相应的接口且外部接上拉电阻就可以了。

4.3 液晶屏

液晶屏相对于数码来说具有显示内容直观,可显示图像和汉字的优点。在车身添加液晶屏模块可以使调试更加方便,因此本次车身上添加了液晶屏模块。由于液晶屏模块是直接购买的成品,直接就可以使用了。

4.4 小结

硬件电路智能车的身体,是各个外部架设器件运行的根本所在。智能车系统不仅仅需要一个很好的算法程序而且需要一个稳定可靠的硬件电路。电路的设计是精细而又严谨的,在电路设计的时候要考虑很多的因素,模拟电路与数字电路要进行隔离。同样电路精简也是设计电路的一个重要原则。

5. 智能汽车控制软件设计

5.1控制流程图

本组所用的软件调试工具为IAR软件和BDM仿真器,IAR这个软件不仅支持C语言编程也支持汇编语言编程。因为自身在大一上过《C语言程序设计》,所以对C语言比较感兴趣,并且C语言简单方便可修改和移植性强,所以大部分程序都使用C语言编写,只有在某些地方加入了汇编语句。智能车的程序对于初学者来说是比较复杂的,为了方便自己思考和编写,整个程序编写上使用的模块封装的方法[6]。整个程序系统主要有传感器采集回来信号的处理、根据计算数据输出PWM利用舵机和电机进行方向和速度控制[7]。系统程序流程图如图5-1所示。

5.2线性CCD传感器路径精确识别技术

在本届比赛还是沿用上届的传感器规则,一方面是使用不了激光传感器,另一方面是为了要有足够的前瞻可以使小车有高速行驶的基础,所以采用了线性CCD作为本次光

电组比赛的传感器。

5.2.1分析线性CCD路径识别

由于今年的赛道大致与去年一样,所以可以继续借鉴黑线提取算法的使用方案。对于这次赛道,CCD的可能状态有:在普通的赛道处、在起点处、十字交叉处、黑色路障处、人字强制调头区。由于道路赛道复杂,传感器采集单一,使得对于赛道识别的工作量变得更加复杂,具有很多重复的特征。特别是今年新加的人字强制调头区,对于前瞻长度、人字识别、人字转向提出了很高的挑战[8]。

上电运行

初始化

CCD采集

提取黑线

判断数据

是否正确

保持上次值

舵机控制

电机控制

图5-1程序运行图

光电智能车仅采用一路CCD对赛道信息进行识别,一个CCD包含128个像素点。当小车处于直道上时,赛道两边的黑线都可以看到,这时候车身差不多是在赛道的正中央。当小车过曲率较小的弯道的时候,一般情况下只能看到一条黑线,小车会根据这条黑线进行车身调整。当小车遇到曲率很大的弯道时候,可能黑线全部丢失,这时候小车按上次的打角继续拐弯直到再次看到黑线为止。当小车是十字弯的时候,也会出现全白,处理的办法是继续让小车保持上次的值打角。

图5-2CCD传感器返回波形图

5.2.2线性CCD传感器路径识别算法

方向打角是根据二值化的黑白跳边沿的位置计算当前的车身位置并与直道上的车身位置进行比较,计算出偏差值给舵机的PD算法,相应的PWM来控制转向。具体算法介绍如下:

(1)利用CCD采集回来的信息,通过动态和静态相结合的办法找出区分黑白的阀值。

(2)根据当前车身原位置跟初始车身位置相比较,求出偏差。

void PickMidLine(unsigned char *ImageData)

{

uint8 i;

for(Black_L=0,i=(uint8)Start_Line;i>2;i--)

{

if(ImageData[i]==128&&ImageData[i-1]==0&&ImageData[i-

2]==0&&ImageData[i-3]==0)

{

Black_L=i-1;

break;

}

}

for(Black_R=127,i=(uint8)Start_Line;i<125;i++)

{

if(ImageData[i]==128&&ImageData[i+1]==0&&ImageData[i+

2]==0&&ImageData[i+3]==0)

{

Black_R=i+1;

break;

}

相关主题
相关文档
最新文档