电气工程与自动化学院
课程设计报告
(嵌入式技术实践一)
题 目:****
专业班级:****
学 号:20
学生姓名:****
指导老师:****
20##年 7 月 31 日
摘 要
本课题是基于P89C51单片机的智能小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶,能够检测周围的障碍物寻找最佳路以免小车在行驶的过程中遭到损坏。小车系统以P89C51单片机为系统控制处理器;
采用红外传感获取赛道的信息,利用超声波测距模块判断障碍物,来对小车的方向和速度进行控制。此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。
关键词:智能循迹避障小车、嵌入式系统。
目 录
第一章 绪论. 4
1.1课题背景. 4
1.2 智能汽车的发展现状. 5
1.2.1 国内发展情况. 5
1.2.2 国外的发展情况. 5
1.2.3 智能车竞赛现状. 6
1.3 实践的目的和意义. 7
第二章 系统方案设计. 8
2.1 系统设计目标. 8
2.2 系统设计思想. 8
2.3 系统的总体结构. 8
2.4 系统硬件设计. 9
2.4.1 小车设计. 9
2.4.2 电源模块设计. 9
2.4.3 驱动模块设计. 10
2.4.4 红外传感模块设计. 10
2.4.5 测距模块设计. 10
2.5 系统软件设计. 11
2.5.1 编程环境的介绍. 11
2.5.2 电机控制程序设计. 12
2.5.3 循迹程序设计. 12
2.5.4 避障程序设计. 12
第三章 系统的调试与分析. 15
3.1系统硬件调试. 15
3.2系统软件调试. 15
附录. 16
第一章 绪论
1.1课题背景
当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。
作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。
为了适应嵌入式自动化在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,从实践中深入了解自动控制理论,获得项目整体设计的能力,并且掌握多通道多样化传感器综合控制的方法。
1.2 智能汽车的发展现状
1.2.1 国内发展情况
我国从上世纪80年代开始着手无人驾驶智能汽车的研制开发,虽与国外相比还有一些距离,但目前也取得了阶段性成果。国内清华大学、国防科技大学、上海交通大学、西安交通大学、吉林大学、同济大学等都有过无人驾驶汽车的研究项目。
1992年,国防科技大学研制成功了我国第一辆真正意义上的无人驾驶汽车。由计算机及其配套的检测传感器和液压控制系统组成的汽车计算机自动驾驶系统,被安装在一辆国产的中型面包车上,使该车既保持了原有的人工驾驶性能,又能够用计算机控制进行自动驾驶行车。20##年6月,国防科技大学研制的第4代无人驾驶汽车试验成功,最高时速达76km,创下国内最高纪录。20##年7月,国防科技大学和中国一汽联合研发的红旗无人驾驶轿车高速公路试验成功,自主驾驶最高稳定时速13Okm,其总体技术性能和指标已经达到世界先进水平。
1.2.2 国外的发展情况
从20世纪70年代,美欧等发达国家开始进行无人驾驶汽车的研究,大致可以分为二个阶段:军事用途、高速公路环境和城市环境。在军事用途方面,早在80年代初期,美国国防部就大规模资助自主陆地车辆ALV (Autonomous LandVehicle)的研究。
进入21世纪,为促进无人驾驶车辆的研发,从20##年起,美国国防部高级研究项目局(DARPA)开始举办机器车挑战大赛(Grand Challenge)。该大赛对促进智能车辆技术交流与创新起到很大激励作用。
在20##年的第二届比赛中,主办方只在赛前2小时提供一张光盘,上面提供了比赛路线上2935个“路点”的方位与海拔等详细资料。整个赛道有急转弯、隧道、路口还有山路,比赛要求参赛车辆能够自主完成全部路程。最终斯坦福大学的“斯坦利”,获得了第1名。具有6个奔腾M处理器的电脑完成“斯坦利”的所有程序的处理。车辆移动时,4个激光传感器、一个雷达系统、一组立体摄像头和一个单眼视觉系统感知周围的环境。
1.2.3 智能车竞赛现状
“飞思卡尔”智能车竞赛是由教育部高等学校自动化专业教学指导分委员会主办,飞思卡尔半导体公司协办的全国性的比赛。智能车竞赛所使用的车模是一款带有差速器的后轮驱动模型赛车,它由大赛组委会统一提供。比赛要求参赛队伍研究并设计一款能够自主辨识路线并能够自主行驶的智能车,在专门设计的封闭跑道上行驶,跑完整个赛程用时越短的参赛队伍成绩越好。智能车的设计要求参赛队伍首先对汽车动力学有一定的研究和了解,从而设计合理的机械结构。同时要求参赛队伍自行设计控制器系统电路、图像采集模块电路、电机驱动电路、电源模块电路等多个部分的电路。在硬件平台搭建完成后,参赛队伍要对智能车系统的路线辨识以及控制算法进行开发和调试,为了后期的调试方便,很多队伍还开发了用于调试的上位机监控程序。
智能车大赛以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的科技创新比赛。随着赛事的逐年开展,不仅使参赛学生自主创新能力的提高,对于高校相关学科领域的学术水平的提升也有一定的帮助。目前,此项赛事己经成为各高校展示科研成果和学生实践能力的重要途径,同时也为社会选拔优秀的创新人才提供了重要平台。
“飞思卡尔”杯智能车竞赛于20##年在韩国首次举办,我国于20##年8月举办第一届“飞思卡尔”杯全国智能车竞赛,当时吸引了来自全国50所高校的112支代表队的参与。在20##年的第二届智能车竞赛中,来自全国26个省(自治区)、直辖市的130余所院校的242支队伍分为5个赛区进行角逐,比赛场面空前激烈。
1.3 实践的目的和意义
通过设计进一步掌握51单片机的应用,特别是在嵌入式系统中的应用。进一步学习51单片机在系统中的控制功能,能够合理设计单片机的外围电路,并使之与单片机构成整个系统。
第二章 系统方案设计
2.1 系统设计目标
制作一辆简易智能小车,智能车采用红外传感器对赛道进行道路检测,超声波测距模块采集周围20cm以内的的障碍物信息,单片机根据采集到的信号的不同状态判断小车当前状态并发出控制命令,通过电机驱动模块控制电机的工作状态以实现对小车姿态的控制。
2.2 系统设计思想
本设计属于嵌入式应用系统。确定整个控制系统的总体方案,是进行系统设计最关键、最重要的一步。总体方案的好坏,直接或间接影响整个控制系统的性能和实施细则。系统总体方案的设计主要是根据被控对象的任务和功能要求而确定的。
2.3 系统的总体结构
根据设计思想可知,智能循迹避障小车是主要是由一个系统主机和3个系统从机组成。系统主机就是也就是主控制器,是智能小车的大脑。从机由电机驱动模块,红外传感模块,测距模块三部分组成,其中电机驱动模块是输出设备,红外传感模块和测距模块是输入设备。
本次设计是我们学习的实践和总结,所以采用NXP公司的P89C51VB2单片机芯片,该芯片具有较大的Flash存储区,具有两个16位定时器,编程简单,功耗低等优点。从机通过接收模块接收指令,并按照指令要求驱动形影的外围设备。这种结构以主机作为中心,形成树形的管理平台,结构简单,易于管理和控制。
附系统结构框图(如下):
2.4 系统硬件设计
2.4.1 小车设计
小车由两个主动轮、一个万向轮、底板、控制系统、电路板及外围设备等组成,主动轮由电机驱动,整个系统由主机控制。
2.4.2 电源模块设计
根据材料我们有选用两节3.6V锂电池串联作为输入电源,由于51单片机要求输入电压为5V,所以采用7805稳压后供电。
附电源模块原理图(如图2-1):
电路中的大小电容分别滤去电路中的高频和低频杂波,7805能够把电压稳定在5V为单片机和红外传感模块供电。
2.4.3 驱动模块设计
驱动模块使用两个继电器和四个三极管为主要部件,构成驱动电路。可以分别控制两个电机的正传、反转和停转。
附驱动模块原理图(如图2-2):
电容器达到
PWM端输入1即高电平时,三极管导通为继电器电源输入端供电,反之不供电,DIR端输入1/0对应继电器吸合和分离,输入1时继电器电磁铁吸合,输入0时电磁铁分离。
2.4.4 红外传感模块设计
红外传感模块主要有四个红外对管,电阻,发光二极管组成。
附红外传感模块原理图(如图2-3):
红外对管由发射管和接收三级管组成,当遇到黑线没有反射时接受三极管不到通,相应输出端输出高电平,其他时刻接受三极管导通,输出端被下拉为低电平。
2.4.5 测距模块设计
测距模块要求更高的精确度和灵敏性,所以我们采用工业成品US100(附成品图2-4)。
图2-4
US-100超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。(其他主要参数见附表)
2.5 系统软件设计
2.5.1 编程环境的介绍
本次系统的程序设计是在TKStudio V4.5.1平台上进行开发的。TKStudio集成开发环境是广州致远电子股份有限公司开发的一个嵌入式芯片级、系统级软件开发平台,是一款内置强大编辑器的多内核编译调试环境,支持Keil C51、SDCC、GCC ARM、ADS、IAR ARM、MDK、RVDS、GCC AVR、WindRiver CCORE、CCoreGcc、RemoteGcc等编译工具链,支持8051、ARM7/ARM9/ARM11、CortexM3/CortexM0、XScale、AVR、CCORE等内核调试,支持Linux bootloader、Linux内核、Linux内核模块、Linux应用程序等的调试。可以完成从工程建立和管理,编译,链接,目标代码的生成,到软件仿真,硬件仿真(挂接TKS系列仿真器的硬件)等完整的开发流程。
TKStudio V4.5.1加入了Liunx调试的支持,包括bootloader调试、Linux内核调试、Linux内核模块调试和Linux应用程序调试,直接通过TKScope系列仿真器进行调试,摒弃了传统的通过KDB、KGBD等补丁进行调试的方式,支持从现有的调试文件直接进行调试,自动创建源代码树,编辑、编译、下载、调试一体化。其操作界面如图2-5
图2-5 TKStudio编程环境
本次系统设计采用C语言开发,它是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。
2.5.2 电机控制程序设计
直流电机驱动比较简单,不像步进电机那样需要给高低电平脉冲,直流电机只要给高低电平就可以转,只要PWM=1即高电平,电机就可以转动,DIR=0/1则控制电机的正反转。
2.5.3 循迹程序设计
循迹其实是对模块输出端口高低点评的读取,只需要提供四个IO口既可以实现所有循迹的读取。当读到1时,表示相应未知的红外对管在黑线上。
2.5.4 避障程序设计
避障部分主要由舵机控制和超声测距模块的读取。每当舵机转动一定的角度,就启动一次距离的读取。
A.舵机工作原理如下:
图2-6舵机实物图
1.舵机有三根线,一般依次是地,电源(5V左右),信号(信号的幅值>=3.3V)。
2.其工作原理是:
控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。
3.舵机的控制:
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
用定时器定时周期20ms,改变PWM值就可以改变舵机转动的角度。
B.测距原理如下:
图2-7:US-100测距时序图
图2-7表明:只需要在Trig/TX管脚输入一个10US以上的高电平,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX管脚输出。
第三章 系统的调试与分析
3.1系统硬件调试
由于本次设计的硬件电路均比较简单,考虑到原材料和成本的因素,我决定采用万能板焊接,这样既可以练习焊接技术,也达到了节约原材料降低成本的目的,可为低碳之选。
系统硬件是否符合要求将直接决定着整套系统的正常运行,是软件调试的基本条件,在本次系统的硬件调试是分模块进行的。先调试5V稳压电源,电压为4.98~5.01V,在正常范围;驱动模块的调试,选择5V和GND作为高低电平的1/0,接一个电机在输出端PWM和DIR,观察电机转动情况符合条件;循迹和测距的调试选择外挂发光二极管,观察其对黑线或障碍物的灵敏度。
3.2系统软件调试
系统的软件是使用模块化编程的,首先完成单元功能模块的调试,然后进行多个模块整合进行系统的调试。
联机调试是最重要的一部分,同时也是本系统成功的关键。有前面的硬件调试和软件的分开调试,系统的联合调试也就显得迎刃而解。