




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.综合能力实训项目设计报告1 避障小车设计说明该设计利用单片机STC89C52RC作为主控芯片,该芯片是一种高速、低功耗、抗干扰能力强的芯片,其最高时钟工作频率为48MHz,用户应用程序空间为8K。能够满足程序空间需要。驱动采用L298N驱动芯片,它是一种双全桥步进电机专用芯片,通过对其输入端的控制可以实现小车的启动、转向、停止等动作。为节省成本,小车由两个直流减速电机加一个万向轮构成,并采用后轮驱动。系统采用单片机为控制核心,利用自制小车或玩具小车进行小车的模拟,采用超声波避障模块进行障碍物的检测。单片机控制避障模块发射和接收,通过相应的程序处理,判断障碍物的位置。根据检测情况单片机控制电机
2、驱动模块,控制小车电机的正反转实现小车的转向,启动等相应动作,来实现避开障碍物。2 总体设计方案2.1设计要求 在小车行驶过程中,50ms启动一次超波模块,对前方路况进行检测,当障碍物小于40cm时,小车自动左转90度,当小车转过90度后,对前方道路再次检测,若无障碍,向前行驶。如果存在障碍物且小于40cm,小车右转180度,并再次检测前方路况,若无障碍物,向前行驶,有障碍物且距离小于40cm,小车向右转90度并向前行驶。2.2系统设计方案 根据设计要求,为了便于调试和改进,采用模块化设计。系统可分为:微控制器、避障模块、驱动模块、小车模块。2.3总体设计 基于单片机STC89C52RC设计的
3、智能避障小车,本设计需提供+5V电源,DC+5CV由蓄电池通过降压模块得到+5V电源,为单片机及其他电路提供工作电压。超声波避障模块,采用购买的现成的超生波发射接收模块,通过单片机控制超声波模块去小车行驶道路上的障碍物进行检测,然后单片机通过处理反馈的信息,判断障碍物的距离,进而发出指令控制驱动模块,控制小车实现转向,达到避障的目的。系统框图总体设计框图2.4功能说明 本设计主控芯片采用51芯片,负责传感器的状态,并向电机驱动模块发出动作指令。复位采用手动复位。电源由蓄电池提供,为单片机及其他模块供电,+5V主要为驱动电机提供电源。避障模块采用购买的成品,该模块在单片机的控制下对小车前方的路况
4、进行检查,并将检测信息反馈给单片机,单片机经过处理反馈回来的信息,发出相应的指令控制驱动模块,从而控制小车做出相应的动作,达到避障的目的。3 硬件的选择与组成3.1单片机的选择采用单片机STC89C52RC为核心,8K的内部程序存储器(ROM),512个内部数据存储器(RAM),4个寄存器区,32个通用I/O端口,2个16位的定时、计数器,有ISP功能,能用于下载线进行的在线编程,设有4个中断源,能够完成设计要求,且该芯片价格便宜,采用该芯片能够达到设计要求。该设计选用STC89C52作为主控芯片。单片机用的是STC89C52RC,该芯片存储容量大,体积小。单片机最小系统:电源部分、晶振部分、
5、复位电路和31号脚接高电平。单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行 接口和中断系统等几个大单元及数据总线地址总线和控制总线等三大总线。9号复位信号脚,时钟电器开始工作,复位端会出现24个时钟周期以上的高电平,系统即初始复位。其复位方式一般为手动复位,VCC断电期间,此引脚可接上备用电源,以保证单片机内部RAM的数据不丢失。31脚程序存储器的内外部选通线,内置有8kb的程序存储器,当EA为高电平并且程序地址小于8kb时,读取内部程序存储器指令数据。所以该设计31脚应该接高电平。51单片机内置最高频率达12MHz的时钟电路,用于产生整个单片机
6、运行的脉冲时序,18、19脚就接电容和晶振电路。单片机40脚接VCC,可以提供电源,20脚接地。3.2避障模块的选择该部分采用购买HC-SR04超声波测距模块,该模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达到3cm,模块包括超生波发射器,接收器与控制电路。 工作原理: (1)采用IO口TRIG触发测距,给至少给10us的高电平 ; (2)模块自动发送8个40khz的方波,自动检测是否有信号返回; (3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340m/s)/2。3.3驱动模块的选择驱动采用L2
7、98N驱动芯片,该芯片是双全桥步进电机专用驱动芯片,内涵4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥驱动器,接收标准TTL逻辑信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信,第1脚和第15脚可与电流侦测用电阻连接来控制负载的电路。OUTPUT1、OUTPUT2和OUTPUT3、OUTPUT4 之间分别接2个直流电机;INPUT1INPUT4输入控制电位来控制电机的正反转;Enable则控制电机停转。电源供电部分使用直流可调稳
8、压电源,提供直流+5V电压,运用三线稳压器件7805,输出+5V电源。由于7805简单易用、价格低廉,在大多电路中充分采用。通过电解电容的隔离滤波作用,电源部分可输出+5V的直流电源。4 软件程序流程图4.1主流程图在程序设计中,为了便于调试,方便找到程序问题的所在,程序采用在主函数中调用各个子函数的形式。当启动一次超声波测距程序时,单片机会根据检测反馈回来的信息进行相应的处理,进而判断是否有障碍物,当障碍物的距离小于设定的安全距离时,单片机会发出相应的指令,控制驱动电路,对小车的行驶方向进行调整。当小车前方无障碍物时,主程序会在一定的时间内自动启动一次超生波测距程序,若无障碍继续按原来的方向
9、行驶。如此循环,达到避障的目的。4.2 模块程序设计说明在程序中我采用了两个计数器溢出中断,其中一个是T0计数器溢出中断,是用来计算障碍物的距离,如果障碍物的距离超出测距范围,利用该中断设置标志位。另一个是T1计数器溢出中断,我利用该中断控制超声波发射的时间间隔,即对路面障碍物检测的时间间隔,来适时判断路面情况,改变小车的行驶方向,达到小车躲避行驶过程中遇到的障碍物。4.3 超声波避障程序只需提供一个10us以上的脉冲信号,该模块内部将发出8个40KHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到接收到回响信号的时间间隔可以计
10、算得到距离。4.4驱动模块程序当在主程序中当计数器T1溢出中断响应时,会首先判断障碍物的距离是否小于设定的安全距离(被设计中为40cm),若大于安全距离,小车继续按原来的方向行驶,若小于安全距离,小车首先左转90度,停下并启动超声波避障程序再次对前方的路况进行障碍有无的检测,若无障碍物或有障碍但大于安全距离,小车沿该方向前进,反之当障碍物的距离小于安全距离时,小车向右旋转180度,停止并再次启动超生波避障程序,对前方的路况进行检测,若无障碍物或有障碍物但距离大于安全距离,小车沿该方向前进,反之当障碍物的距离小于安全距离时。小车向右转90度,沿该方向行驶。如此循环实现避障。5 小车整体程序部分#
11、include /器件配置文件 #include sbit RX=P22; /接受端口 sbit TX=P23; /发射端口 /驱动引脚定义 sbit IN1=P10; /M2 sbit IN2=P11; sbit IN3=P12; /M1 sbit IN4=P13; unsigned int time=0;unsigned long S=0,num=0;bit flag=0; /*- uS延时函数大致延时 长度如下 T=tx2+5 uS -*/ void DelayUs2x(unsigned char t) while(-t); /*-mS延时函数-*/void DelayMs(unsign
12、ed char t) while(t-) /大致延时1mS DelayUs2x(245); DelayUs2x(245); void delay(void)DelayMs(200);DelayMs(200);DelayMs(200);DelayMs(200);DelayMs(200);DelayMs(200);DelayMs(200);DelayMs(200);/*驱动模块*/forword() /前进IN1=1;IN2=0;IN3=1;IN4=0;turn_left() /左拐IN1=1;IN2=0;IN3=0;IN4=0;turn_right() /右拐IN1=0;IN2=0;IN3=1;
13、IN4=0;stop() /停止IN1=0;IN2=0;IN3=0;IN4=0; /*T0中断用来计数器溢出,超过测距范围*/void zd0() interrupt 1flag=1; /中断溢出标志/*启动超生波模块*/void StartModule()TX=1; /启动一次模块DelayUs2x(8); /延时大概20usTX=0;while(!RX); /当RX为零时等待TR0=1; /开启计数while(RX); /当RX为1计数并等待TR0=0; /关闭计数unsigned int count()time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/1
14、00;/算出来是CMif(S=700)|flag=1)/超出测量范围 flag=0;S=700; DelayMs(80); /80MSreturn S; /定时器T1溢出中断一定时间启动一次测距模块void time1()interrupt 3ET1=0;TR1=0;TH1=(65536-15536)/256;TL1=(65536-15536)%256;StartModule();num=count();if(num40) turn_left(); delay();/延时1.6s完成转向 stop(); StartModule();/启动一次模块 num=count();/计算障碍物距离 if(num40) turn_right(); delay();/延时3.2s完成转向 delay(); stop(); StartModule();/启动一次模块 num=count();/计算障碍物距离 if(num40) turn_right(); delay();/延时1.6s完成转向 forword(); else forword(); else forw
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025上海租房合同自由交易版
- 邵阳市毕业考试卷及答案
- 水运市场营销策略研究考核试卷
- 木地板品牌形象与公关策略考核试卷
- 粮食仓储品种改良技术考核试卷
- 纺织品标准与法规考核试卷
- 组织学习与知识管理策略考核试卷
- 电气设备绝缘与接地知识考核试卷
- 粮食加工副产物综合利用考核试卷
- 焊接设备在金属建筑模板制造中的应用考核试卷
- 2025年江苏盐城市射阳县沿海投资有限公司招聘笔试参考题库附带答案详解
- 越出站界调车RAILWAY课件
- 河北武安招聘警务辅助人员笔试真题2024
- 2025届安徽省合肥市高三二模语文试题(解析版)
- 2025年高级插花花艺师(三级)理论考试题(附答案)
- 甲亢病人护理讲课
- 2025年中国铜铝复合母线行业市场运行现状及投资战略研究报告
- (高清版)DB1331∕T 072-2024 《雄安新区高品质饮用水工程技术规程》
- 2025年金丽衢十二校高三语文第二次模拟联考试卷附答案解析
- 广东省深圳市福田区2023-2024学年六年级下学期英语期中试卷(含答案)
- 2023-2024学年广东省广州七中七年级(下)期中数学试卷(含答案)
评论
0/150
提交评论