欢迎来到天天文库
浏览记录
ID:856649
大小:319.03 KB
页数:13页
时间:2017-09-20
《循迹小车设计报告-精华51单片机智能小车》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、设计报告课程:机器人工程设计名称:智能循迹小车小组成员:学号:专业:机械电子工程日期:2012/2/5指导老师:成绩:1.任务及要求1.1任务设计一个基于直流电机的自动寻迹小车,使小车能够自动检测地面黑色轨迹,并沿着黑色车轨迹行驶。系统方案方框图如图1-1所示。检测(黑线)驱动电机软件控制控制小车图1-1系统方案方框图2.系统设计方案2.1小车循迹原理这里的循迹是指小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,
2、在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。2.2控制系统总体设计自动循迹小车控制系统由主控制电路模块、直流电压电源模块、红外检测模块、电机及驱动模块等部分组成,控制系统的结构框图如图2-1所示。直流电源模块主控芯片STC89C52LG9110减速电机光电传感器图2-1控制系统的结构框图主控制电路模块:用STC89C52单片机、复位电路,时钟电路其他模块见表2-1所示。表2-1其
3、他模块构成电机及驱动模块寻迹传感模块电源模块电机驱动红外发射/接受头6V直流电直流电机LG91105号电池两个两个两对四个3.系统方案3.1寻迹传感器模块本寻迹采用简单的红外探头。白色的为红外发射探头,通电后连续的发射红外光线;黑色的为红外接收探头,接受反射回来的红外光线。当寻迹时,红外接收头接收到黑线反射的红外光,电阻变小,对应P1端变为低电平。将信号送入单片机进行处理。3.2控制器模块采用STC89C52单片机作为主控制器。它是一个低功耗,高性能的8位单片机,片内含32k空间的可反复擦写100,000次Flash只读存储器,具有4K的随机存取数据存储器(RAM),32
4、个I/O口,2个8位可编程定时计数器,且可在线编程、调试,方便地实现程序的下载与整机的调试。时钟电路和复位电路如图3-2(与单片机构成最小系统)1)采用外部时钟,晶振频率为12MHZ2)采用按键复位图3-2时钟电路和复位电路3.3电源模块电源采用直流电源,为四节五号电池供电。为电机驱动电路板、传感器模块板和单片机主控制板提供能源,满足寻迹要求。3.4电机及驱动模块3.4.1电机车体采用四轮结构,前轮驱动;为三级减速机构,有一级蜗轮蜗杆传动,两级直齿轮传动。电机采用直流减速电机,直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,
5、带动变速(减速)齿轮组,可以产生较大扭力。3.4.2驱动驱动模块采用专用芯片LG9110作为电机驱动芯片,以下为L298N的引脚图和输入输出关系表。图3-3LG9110外部引脚表2LG9110管脚定义驱动电路的设计如图3-4所示:图3-4LG9110电机驱动电路4.软件设计智能小车通过前端的红外传感器,识别寻迹的效果。当左指示灯探到白色道路时,说明小车往左跑偏,应该左轮比右轮转速快。此处设为左轮正转,右轮停转,从而实现寻线功能。单片机控制端口初始化定义如下:sbitLeftLed=P2^0;//定义前方左侧指示灯端口sbitRightLed=P0^7;//定义前方右侧指示
6、灯端口sbitLeftIR=P3^5;//定义前方左侧红外探头端口sbitRightIR=P3^6;//定义前方右侧红外探头端口sbitM1B=P0^0;//定义左侧电机驱动A端sbitM1A=P0^1;//定义左侧电机驱动B端sbitM2B=P0^2;//定义右侧电机驱动A端sbitM2A=P0^3;//定义右侧电机驱动B端sbitB1=P0^4;//定义语音识别传感器端口sbitSB1=P0^6;//定义蜂鸣器端口……voidControlCar(unsignedcharConType)//定义电机控制子程序{M1A=0;//将M1电机A端初始化为0M1B=0;//将
7、M1电机B端初始化为0M2A=0;//将M2电机A端初始化为0M2B=0;寻迹相关程序段如下:if(LeftIR==0&RightIR==1)//左侧红外探头没有接收到白色道路信号{ControlCar(4);//左侧没有信号时,开始向右转一定的角度Delay();//修改这里进行转弯角度的调整//Delay();//同上//Delay();gotoNextRun;}if(RightIR==0&LeftIR==1){ControlCar(3);//右侧没有信号时,开始向左转一定的角度Delay();//修改这里进行转弯角度的调
此文档下载收益归作者所有