循迹小车设计报告-精华51单片机智能小车.doc

循迹小车设计报告-精华51单片机智能小车.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 设 计 报 告 课程:机器人工程 设计名称:智能循迹小车 小组成员: 学号: 专业: 机械电子工程 日期: 2012/ 指导老师: 成绩: 1.任务及要求 1.1任务 设计一个基于直流电机的自动寻迹小车,使小车能够自动检测地面黑色轨迹,并沿着黑色车轨迹行驶。系统方案方框图如图1-1所示。 检测(黑线) 检测(黑线) 驱动电机 软件控制 控制小车 图1-1 系统方案方框图 2.系统设计方案 2.1小车循迹原理 这里的循迹是指小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。通常采取的方法是红外探测法。 红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。 2.2控制系统总体设计 自动循迹小车控制系统由主控制电路模块、直流电压电源模块、红外检测模块、电机及驱动模块等部分组成,控制系统的结构框图如图2-1 所示。 直流电源模块 直流电 源模块 主控芯片 STC89C52 LG9110 减速电机 光电传感器 图2-1控制系统的结构框图 主控制电路模块:用STC89C52单片机、复位电路,时钟电路 其他模块见表2-1所示。 表2-1 其他模块构成 电机及驱动模块 寻迹传感模块 电源模块 电机 驱动 红外发射/接受头 6V直流电 直流电机 LG9110 5号电池 两个 两个 两对 四个 3.系统方案 3.1 寻迹传感器模块 本寻迹采用简单的红外探头。白色的为红外发射探头,通电后连续的发射红外光线;黑色的为红外接收探头,接受反射回来的红外光线。 当寻迹时,红外接收头接收到黑线反射的红外光,电阻变小,对应P1端变为低电平。将信号送入单片机进行处理。 3.2控制器模块 采用STC89C52单片机作为主控制器。它是一个低功耗,高性能的8 位单片机,片内含32k 空间的可反复擦写100,000 次Flash 只读存储器,具有4K 的随机存取数据存储器(RAM),32 个I/O口,2个8位可编程定时计数器,且可在线编程、调试,方便地实现程序的下载与整机的调试。 时钟电路和复位电路 如图3-2(与单片机构成最小系统) 1)采用外部时钟,晶振频率为12MHZ 2)采用按键复位 图3-2 时钟电路和复位电路 3.3电源模块 电源采用直流电源,为四节五号电池供电。为电机驱动电路板、传感器模块板和单片机主控制板提供能源,满足寻迹要求。 3.4电机及驱动模块 3.4.1电机 车体采用四轮结构,前轮驱动;为三级减速机构,有一级蜗轮蜗杆传动,两级直齿轮传动。电机采用直流减速电机,直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。 3.4.2驱动 驱动模块采用专用芯片LG9110 作为电机驱动芯片,以下为L298N的引脚图和输入输出关系表。 图3-3 LG9110外部引脚 表2 LG9110管脚定义 驱动电路的设计如图3-4 所示: 图3-4 LG9110电机驱动电路 4.软件设计 智能小车通过前端的红外传感器,识别寻迹的效果。当左指示灯探到白色道路时,说明小车往左跑偏,应该左轮比右轮转速快。此处设为左轮正转,右轮停转,从而实现寻线功能。 单片机控制端口初始化定义如下: sbit LeftLed=P2^0; //定义前方左侧指示灯端口 sbit RightLed=P0^7; //定义前方右侧指示灯端口 sbit LeftIR=P3^5; //定义前方左侧红外探头端口 sbit RightIR=P3^6; //定义前方右侧红外探头端口 sbit M1B=P0^0; //定义左侧电机驱动A端 sbit M1A=P0^1; //定义左侧电机驱动B端 sbit M2B=P0^2; //定义右侧电机驱动A端 sbit M2A=P0^3;

文档评论(0)

好老师 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档