【毕业论文】基于单片机的自动驾驶小车模型.doc

【毕业论文】基于单片机的自动驾驶小车模型.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告 课题:基于单片机的自动驾驶小车模型 摘要:该设计采用单片机( ATmega16)作为智能小车的检测和控制核心。由L298控制驱动电机正反转的快速切换,控制小车的运动速度及运动方向,达到控制小车运动的路径和转角,以实现汽车模型依循特定路径自动驾驶的目的。 一 设计: 在现实生活中,由于GPS导航定位系统的普及及应用,自动驾驶技术 硬件单元1 车体框架在设计车体框架时,我们有两套起始方案,自己制作和直接购买玩具电动车。 方案一:自己设计制作车架 自己制作小车底盘,用两个直流减速电机作为主动轮,利用两电机的转速差完成直行、左转、右转、左后转、右后转、倒车等动作但自己制作小车设计制作周期较长,且费用较高,因而我们放弃这一方案。 方案二:购买玩具电动车 玩具电动车价格低廉,有完整的驱动、传动和控制单元,其中传动装置是我们所需的,缩短了开发周期。 考虑到利用玩具电动小车做车架开发周期短,所以我们买了一电动小车,自己再稍作调整作为小车底盘,而动力则由两个直流电机提供。 2 电源及稳压模块方案一:采用交流电经直流稳压处理后供电采用交流电提供直流稳压电源,电流驱动能力及电压稳定性最好,且负载对电源影响也最小。但由于需要电线对小车供电,极大影响了小车行动的灵活性及地形的适应能力。故我们放弃了这一方案。方案二:采用蓄电池供电蓄电池具有较强的电流驱动能力和较好的电压稳定性能,且成本低廉。可采用蓄电池经7812芯片稳压后给电机供电,再经过降压接7805芯片给单片机及其他逻辑单元供电。但蓄电池体积相对庞大,且重量过大,造成电机负载过大,不适合我们采用的小车车架。故我们放弃了这一方案。方案三:采用干电池组进行供电采用四节干电池降压至5V后给单片机及其他逻辑单元供电,另取六节干电池为电机供电。这样电机启动及制动时的短暂电压干扰不会影响到逻辑单元和单片机的工作。干电池用电池盒封装,体积和重量较小。在稳压方面,起始时考虑使用7805芯片对6V的电池电压进行降压稳压。但考虑到这样使得7805芯片消耗大量能量,降低电池寿命;同时,由于mega16、小车电机对于供电电压要求并不苛刻,故我们将6V电池电压接一个二极管降压后直接给单片机及其他逻辑单元供电。而电机的电源不做稳压处理。 3 在选择芯片时我们直接选用了课程主要介绍的,Atmel公司的ATmaga16L单片机作为主控模块。Mega16是高性能、低功耗的 8 位AVR 微处理器,具有先进的RISC结构,内部集成两个具有独立预分频器和比较器功能的8 位定时器/ 计数器和一个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器。可通过JTAG对MCU进行程序烧写及仿真。内置晶振,使用方便。 4 电机驱动 我们使用L298N芯片驱动电机,L298N是一个具有高电压大电流的全桥驱动芯片,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号,而且带有使能端,方便PWM调速,电路简单,性能稳定,使用比较方便。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,正好符合我们小车两个二相电机的驱动要求。 电机有三种运动方式:电机正转、电机反转、电机急停。单片机控制信号通过高低电平的转换可以控制L298对电机的正反向供电,结合PWM程序可以实现对电机的调速,经过调试取值达到比较合适的行车速度。为了使小车能够顺利转弯,我们采用电机一正一反的方 5 程序设计及调试,在调试过程中输出信号可由外接按键控制。 八个按键接单片机的PORTD的八个口进行按键输入: 图二:按键输入电路图 四、软件设计思想及流程cx来控制各个运动函数的执行时间,一个c3控制总行驶函数的执行,每个运动函数先把总行驶函数对应的cx调为0,之后执行自身,到点执行完毕后会自动把该运动函数对应的cx调为0来停止执行并把总行驶函数对应的cx调为1。之后总行驶函数执行下一个运动函数。在各运动函数中用c来代表cx。具体的各运动函数的执行时间则通过形参int i从距离数组wlongth[i]传递给各个运动函数,各个运动函数用v=(wlongth[i]/velocity)来控制执行时间。 运动函数 Drive-on函数 至于地图输入部分,则大致可以分为两小部分,地图的指向部分和数值部分。指向部分用3,4,5,6,分别在方向地图中代表forward,backward,turnleft,turnright各个运动函数, mapinput函数 数值部分独立为shift函数,统一从llongth[m2]数组来键入数值,分别enter2/3 /2angle函数,向长度数组wlongth[12]角度数组wangle[12]存入最后总值 shift函数 总体上,先

文档评论(0)

精品资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档