基于PIC单片机的智能小车.docx
- 文档编号:10486709
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:76
- 大小:239.24KB
基于PIC单片机的智能小车.docx
《基于PIC单片机的智能小车.docx》由会员分享,可在线阅读,更多相关《基于PIC单片机的智能小车.docx(76页珍藏版)》请在冰豆网上搜索。
基于PIC单片机的智能小车
摘要
PIC16F877A单片机是MicroChip公司生产一款八位单片机,它的易用性和多功能性受到了广大使用者的好评,它的丰富的外围功能模块为我们的设计提供了便利。
这里介绍的是如何用红外线传感器采集信号并通过单片机控制来实现避障寻线小车功能的设计,该设计是结合科研项目而确定的设计类课题。
本系统以设计题目的要求为目的,并进行了小车功能的拓展。
小车采用PIC16F877A单片机为控制核心,实现智能小车的智能控制,包括智能避障、路面寻线、PWM调速、测速并实时显示速度等功能。
整个系统的电路结构简单,可靠性能高。
实验测试结果满足要求,本文着重介绍了该系统的方案论证、硬件设计方法及测试结果分析。
关键词:
PIC16F877A;红外线传感器;避障寻线系统;PWM调速;智能小车
ABSTRACT
PIC16F877Amicrocontrollerisan8bitMCUmadebyMicroChipcompany,itseaseofuseandversatilityarethemajorityofuserspraise,itsrichperipheralfunctionmodulesforourdesignprovidesconvenience.HereishowtocapturethesignalusinginfraredsensorsandthroughMCUcontroltoachieveobstacleavoidancefunctionofline-trackingcardesign,thedesignisacombinationofscientificresearchandtodeterminethedesignofclasstopics.Thesystemdesignrequirementsforthepurposeofthesubjectandhadacarfunctionexpansion.PIC16F877Amicrocontrollertocontrolthecarusingthecore,intelligentcaroftheintelligentcontrol,includingtheSmartobstacleavoidance,roadhunting,PWMspeedcontrol,speedandreal-timedisplayspeedandotherfunctions.Asimplecircuitstructureofthesystemreliabilitycanbehigh.Experimentaltestresultsmeettherequirements,thisarticlehighlightstheprogramdemonstrationofthesystem,hardwaredesignmethodsandtestresultsanalysis.
Keywords:
PIC16F877Asinglechipcomputer;Infraredsensors;Obstacleavoidanceseeking
linesystem;PWMspeed;Smartcar
目录
前言1
1方案设计与论证2
1.1总体方案选择2
1.2各模块方案选择与论证2
1.2.1控制器模块2
1.2.2避障模块3
1.2.3寻线模块3
1.2.4直流调速模块6
1.2.5车速检测模块7
1.2.6电机驱动模块8
1.2.7电源模块8
1.3系统各模块最终方案8
2硬件系统的设计与实现9
2.1电源电路设计9
2.2检测电路设计9
2.3电机控制电路设计10
2.4PWM调速设计11
2.5舵机方向控制设计12
3软件系统的设计与实现13
3.1系统软件设计与调试13
3.2软件抗干扰技术13
3.2.1数字滤波技术14
3.2.2开关量的软件抗干扰技术14
3.2.3指令冗余技术14
3.2.4软件陷阱技术15
4系统测试与调整16
4.1电路硬件测试16
4.2系统实现功能测试16
4.3整车测试16
总结17
致谢18
参考文献19
附录20
前言
当今社会,科学技术日新月异,时代前进的步伐越迈越宽,应用自动化设备,计算机处理,现代化通讯,数字化信息,现代化显示设备等高新技术而建立的现代化智能,监控等系统已经得到充分的发展与应用,智能机器人也就应运而生。
同时,在建设以人为本的和谐社会的过程中,智能服务机器人能够完成考古发掘,海底揭密,宇宙探索等危险作业,以保证人身安全。
《国家中长期科学和技术发展规划纲要》一文指出:
智能服务机器人是在非结构环境下为人类提供必要服务的多种高技术集成的智能化装备。
以服务机器人和危险作业机器人应用需求为重点,研究设计方法、制造工艺、智能控制和应用系统集成等共性基础技术。
重点研究低成本的自组织网络,个性化的智能机器人和人机交互系统、高柔性免受攻击的数据网络和先进的信息安全系统。
由于单片机具有多功能、低价位及小型化等优势,它们已被广泛地应用在消费电子、汽车电子、办公室自动化、通信及一般工业产品上。
近些年来,单片机技术的发展已达到了相当高的水平,一些新型单片机层出不穷,技术日新月异。
传统单片机(MCU)主要由外围部件、微控制器和存储器构成。
新型单片机为了更好灵活地适应不同领域的应用,除了具有这些传统的数字功能外,还提供模拟功能,甚至射频功能,它们不仅是可编程的,而且是可动态重构的。
它们是具有PsoC或SoPC特性的、真正的单片机。
做单片机项目开发,首先应该关注的是项目的功能和性能要求,即做需求分析.通过需求分析,明确实现这些功能和性能指标所需芯片的功能和结构资源、综合成本核算和产品集成度等要求,才能从琳琅满目、特色各异的芯片中选择合适的货架产品。
2006━2020年,既是国家中长期技术发展计划实现阶段,也是我们最具有活力和最激情洋溢的时段。
于是,我们五个人认识到自己的位置,都对智能机器人的研发和制作有着强烈的好奇心,有着共同爱好和理想,想用自己的青春和智慧挥写这段焕发青春活力的乐谱。
随着生产自动化的发展,机器人已经越来越广泛地应用到生产自动化上,随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。
视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。
视觉传感器的核心器件是摄像管或CCD,但其价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。
机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。
故对机器人的研究已成为必要。
智能循线和避障是基于智能导引小车系统,采用红外传感器实现小车速度检测,判断并检测障碍物。
本文对智能小车的循线,避障以及速度的采集进行了研究。
第一章方案设计与论证
1.1总体方案选择
本设计的小车具有自动避障,路面寻线的功能,小车在运行过程中,能够显示当前的运行模式(避障模式和寻线模式),小车设有0~9档共十个档位的速度调节并能显示当前的档位,并且在运行过程中能够实时显示速度,而且本小车还设有两种模式自动切换的功能。
由题目分析可得:
本设计需要一个由控制器模块、寻线前进模块、红外避障模块、电机驱动模块、电源模块等几部分组成的系统来实现题目要求。
为实现本系统的功能,下面分别对几种不同的设计方案进行了具体的分析论证。
方案一:
避障模式时,使用超声波进行避障。
把超声波模块装在小车上,通过超声波接收到的信号,判断出障碍物的位置情况来进行多个方向的避障,在行进过程中,小车对前方障碍物进行检测并根据障碍物情况进行相应转弯,进行相应方向转弯重复前边的行进过程,寻线模式时,通过光电传感器传回的信息,判断小车是否偏离轨迹,再作出相应的处理,在轨迹上行走中。
小车采用双电机驱动,根据速度差实现小车的前进和转弯。
方案二:
避障模式时,在小车左前、前、右前、左后、后、右后各安装一个红外传感器,当小车处于前进状态时,对前方3个红外传感器传送的信号进行检测分析,当有传感器检查到信号时,进行停车处理并根据检测到的信号情况进行相应的转弯后退,后退3S后自动前进,在后退的过程中对后3个红外线传感器进行信号检测,若检测到信号,就立即刹停后前进。
寻线模式时,单片机根据两排寻线的红外线传感器采集的信号情况进行相应的转弯使小车保持在黑线中央行进。
寻线过程中打开前面的红外传感器,时时检测,防止小车碰到附近的墙壁。
两个方案比较,方案一的超声波传感器受环境的影响较大,故放弃了此种方案。
而方案二,采用普遍应用的传感器采集信号,且舵机控制方向精准、反映速度快、转弯平缓灵活等优点,故选择了方案二。
这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
1.2各模块方案选择与论证
1.2.1控制器模块
单片机控制模块在本系统中处于核心地位,其工作包括采集传感器的信号,进行数据处理,控制执行机构的运行等。
对单片机控制模块的基本要求是具有较高的速度、资源配置满足要求。
方案一:
采用传统的8位89C51单片机作为运动物体的控制核心。
经典51单片机具有价格低廉,使用简单等特点,但其运算速度低,功能单一,外围模块少等缺点。
若采用51单片机,将增加软件的设计难度。
方案二:
采用8位单片机PIC16F877A作为小车运动的控制中心。
PIC16F877A具有丰富的硬件资源:
RAM,ROM空间大、指令周期短、运算速度快、低功耗、低电压、外围功能模块多,单片机PIC16F877A的晶振频率为4MHz,最高运算速度可达20MHz;有8K的FLASH,5V供电,两个8位和一个16位的可编程定时/计数器,可以自动设置预设处置,具有运行/睡眠方式,并且芯片自带看门狗维护功能。
程序具有易于编写和调试等优点。
综合考虑,采用方案二。
1.2.2避障系统
方案一:
采用超声波避障,超声波受环境影响较大,电路复杂,而且墙壁对超声波的反射,会影响系统对障碍物的判断。
方案二:
采用红外传感器避障(包括发射管和接收管),红外线发射管发射信号,发射出的红外线遇到障碍物反射,红外线接受管对反射回的信号处理,经高低电平转换电路转换成相应的电压信号送入单片机进行处理,完成避障功能。
外界对红外信号的干扰较小,易于实现,故采用方案二。
1.2.3寻线系统
红外检测模块用以实现小车沿着场地上标出的黑色路线运动。
题目中路径和周围场地黑白对比明显,可用传感器来感知前进轨迹。
方案一:
可见光发光二极管与光敏二极管组成得发射—接收电路。
这种方案的缺点在于其他环境光源会对光敏二极管工作产生很大干扰,环境要求比较高。
外界环境条件改变,很可能造成误判和漏判,因此没有采用这个方案。
方案二:
采用红外线传感器。
当红外线照射到下方的场地会发生反射,由于黑色胶皮和白色胶皮的反射系数不同,红外线传感器可根据接收到的反射光强弱判断是否有黑线。
可使用双排反射式红外线传感器控制,达到更高的控制精度。
综合考虑,选择了抗干扰能力强且易于实现的红外线电传感器,即确定方案二。
本系统采用双排传感器作为寻线系统的信号采集,目前,大多数智能车采用单排传感器的道路检测方式,这种方式获得的道路信息少,对智能车的状态和道路的状况都不能很好地区别,造成控制上的麻烦。
为了弥补不足,形成了大前瞻的单排传感器的道路检测方式,这种方式检测的距离更远,能够更早地判断出道路的走向,在一定程度上弥补了检测精度低的缺点,但也无法有效地区分智能车状态与道路状况。
比赛的车模可选用摄像头或传感器的方式进行道路信息检测,我们的车模采用的是双排红外的循迹方式,采用大前瞻双排传感器可以得到更多的赛道信息,更早地采取策略处理,形成更好的行车轨迹。
是采用复杂的摄像头方案的一种替代方式。
可以在直道中实现稳定控制,加速顺畅的能力;在S弯中以小曲线的方式前进,减少行进路线和舵机调整次数。
在大弯中实现提前转弯,切内弯的效果。
尤其是在转弯方面,通过前后排共同对弯道的预测,达到延伸物理识别距离的能力,从而做出提前的动作,减少由于检测距离近而带来的负面影响,达到上述效果。
传感器阵列布局如图1-1所示,图中仅以接受管示意传感器位置。
图1-1传感器阵列布局
布局方式说明:
前排传感器伸出距离较远,小车中心偏离黑线后,会在前排传感器上产生较大偏移量。
后排传感器伸出距离较近,小车中心偏离黑线后,会在后排传感器上产生较小偏移量。
利用前后排传感器对小车偏移时不同的敏感度对小车进行控制。
为了使前后排体现出更明确的分工和采集到更远处的信息,我们把前排传感器倾斜约45°角,使前排的前瞻距离更大,更能体现出前排的优势和特点。
直道识别方式、控制策略:
采用此种方式布局双排红外,对于直道的判别方法可有以下5种物理方式,每种方式应用的时机列于后。
图1-2第一种直道情况
在左转大弯后,出弯时最可能出现的前后排传感器检测到黑线时的组合情况。
适用于左转90°弯、180°弯。
提前得到出弯信息,舵机向左转动较小角度,并在此时采取加速动作,起到弥补前瞻不足的作用。
此情况在赛道的s弯出现时,不满足直道的第二种识别方式,故不会加速。
图1-3第二种直道情况
此情况是对第一种情况的再确认,左转大弯并经过第一种情况后,再经历此种情况,可确认无误前方为直道,继续提升小车的加速能力。
控制程序由弯道程序切换到直线稳定程序。
图1-4第三种直道情况
此时采取直线稳定控制。
由于前两种情况已经明确识别为直道,此种情况只是增加直道识别的成功率。
图1-5第四种直道情况
与第二种情况类似,对第五种情况的再确认,右转转大弯并经过第五种情况后,再经历此种情况,可确认无误前方为直道,继续提升小车的加速能力。
控制程序由弯道程序切换到直线稳定程序。
图1-6第五种直道情况
在右转大弯后,出弯时最可能出现的前后排传感器检测到黑线时的组合情况。
适用于右转转90°弯、180°弯。
提前得到出弯信息,舵机向右转动较小角度,并在此时采取加速动作,起到弥补前瞻不足的作用。
在赛道的s弯出现时,不满足直道的第二种识别方式,故不会加速。
直道识别,程序辅助确认:
进入弯道后,随着小车的行进,会发生振荡,致使出弯时不一定满足上述5种情况。
为了提高直道的识别成功率,增加第二种直道判别方法。
两者同时起作用,满足第一种后经过最多15ms确认是直道。
程序是循环执行,我们的程序执行频率是2KHz。
采用定时中断(15ms)的方式,对前排中间3个传感器(编号为3、4、5)使用3个计数器分别计数,每次执行程序若是其中一个检测到黑线,相对应的计数器加1。
经过计算,15ms内所能计数的最大值为31。
我们设定计数的最大值,若在15ms内达到所要求的计数值,就认为是直道,切换直道程序并将计数器清零;若15ms内没有达到所要求的计数值,计数器清零,重新计数。
例如小车为2m/s的速度,小车行进3cm。
我们只要判断2~2.5cm内为直道即可。
所以设最大计数值为20~25即认为是直道,跳出弯道程序。
当然也可以采用更严格的方法来判断,只需调整定时中断的时间和计数值即可。
此条件在进入直道后总能满足,所以作为第一种直道判别方式的补充,保证直道的稳定可靠识别。
直线稳定控制策略:
小车出弯后,由于舵机的反应不灵敏,智能车会发生振荡,随后才能达到稳定,为了尽早减小振荡,采用如下方式控制小车出弯后的动作:
在弯道策略中设置标志位,进入直线程序后,识别标志位,对控制舵机转向的公式采取修正设置。
公式为:
q=K1q1+K2q2;其中q为最终送给舵机的控制量,q1为前排光电传感器的返回转角值,q2为后排红外返回转角值。
K1、K2分别为前后排传感器的加权比例值。
当小车从弯道进入直道并成功识别出直道后,减小K1的值,由于后排传感器距离小车的前轮(转向轮)很近,小车中心偏离黑线时,不会在后排传感器横向位置产生很大位移(相对于前排传感器),故小车在直线上舵机调整的次数就会明显减少,直线的稳定性会好。
同时,根据前后排不同传感器的组合,给出不同的转角策略(在程序中以列表的方式体现),近一步提高直线的稳定控制能力。
1.2.4直流调速系统
方案一:
串电阻调速系统:
旋转变流系统由交流发电机拖动直流电动机实现变流,由发电机给需要调速的直流电动机供电,调节发电机的励磁电流即可改变其输出电压,从而调节电动机的转速。
改变励磁电流的方向则输出电压的极性和电动机的转向都随着改变,所以G-M系统的可逆运行是很容易实现的。
该系统需要旋转变流机组,至少包含两台与调速电动机容量相当的旋转电机,还要一台励磁发电机,设备多、体积大、费用高、效率低、维护不方便等缺点。
且技术落后,因此搁置不用。
方案二:
静止可控整流器。
简称V-M系统:
V-M系统是当今直流调速系统的主要形式。
它可以是单相、三相或更多相数,半波、全波、半控、全控等类型,可实现平滑调速。
V-M系统的缺点是晶闸管的单向导电性,它不允许电流反向,给系统的可逆运行造成困难。
它的另一个缺点是运行条件要求高,维护运行麻烦。
最后,当系统处于低速运行时,系统的功率因数很低,并产生较大的谐波电流危害附近的用电设备。
采用晶闸管的直流斩波器基本原理与整流电路不同的是,在这里晶闸管不受相位控制,而是工作在开关状态。
当晶闸管被触发导通时,电源电压加到电动机上,当晶闸管关断时,直流电源与电动机断开,电动机经二极管续流,两端电压接近于零。
脉冲宽度调制(PulseWidthModulation),简称PWM。
脉冲周期不变,只改变晶闸管的导通时间,即通过改变脉冲宽度来进行直流调速。
方案三:
脉宽调速系统:
与V-M系统相比,PWM调速系统有下列优点:
(1)由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可以获得脉动很小的直流
电流,电枢电流容易连续,系统的低速运行平稳,调速范围较宽,可达1:
10000左右。
由于电流波形比V-M系统好,在相同的平均电流下,电动机的损耗和发热都比较小。
(2)同样由于开关频率高,若与快速响应的电机相配合,系统可以获得很宽的频带,因此快速响应性能好,动态抗扰能力强。
(3)由于电力电子器件只工作在开关状态,主电路损耗较小,装置效率较高。
根据以上综合比较,以及本设计中受控电机的容量和直流电机调速的发展方向,本设计采用了H型单极型可逆PWM变换器进行调速。
脉宽调速系统的主电路采用脉宽调制式变换器,简称PWM变换器。
脉宽调速也可通过单片机控制继电器的闭合来实现,但是驱动能力有限。
为顺利实现电动小汽车的前行与倒车,本设计采用了可逆PWM变换器。
可逆PWM变换器主电路的结构式有H型、T型等类型。
我们在设计中采用了常用的双极式H型变换器,它是由4个三极电力晶体管和4各续流二极管组成的桥式电路。
1.2.5车速检测系统
由于红外检测具有反应速度快、定位精度高,可靠性强以及可见光传感器所不能比拟的优点,故采用红外光电码盘测速方案。
具体电路同图1-7所示。
图1-1-7行车速度检测电路
红外测速由测速轮,遮光盘,红外光电耦合器及凹槽型支架组成的。
测长轮的周长为记数的单位,最好取有效值为单一的数值(如0.1米),精度根据电动车控制的需要确定。
测距轮安装在车轮上,这样能使记数值准确一些。
遮光盘有一缺口,盘下方的凹形物为槽型光电耦合器,其两端高出部分的里面分别装有红外发射管和红外接收管。
遮光盘在凹槽中转动时,缺口进入凹槽时,红外线可以通过,缺口离开凹槽红外线被阻挡。
由此可见,测距轮每转一周,红外光接收管均能接收到一个脉冲信号经过整形器后送入计数器或直接送入单片机中。
为实现可逆记数功能,我们在测距仪中并列放置了两个槽型光电耦合器,遮光盘先后通过凹槽可产生两个脉冲信号。
根据两个脉冲信号发生的先后顺序与两个光电耦合器的位置关系,即可计算出玩具车的行驶方向(前进或后退)。
遮光盘及槽型光电耦合器均安装在不透光的盒子里,以避免外界光线的干扰,使电路不能正常工作。
测速原理:
将光栅安装在电机轴上,当电机转动时,光栅也随之转动,同时安装在光栅一侧的红外发光二极管点亮,在光栅的另一侧设有红外三极管,用于接收红外发光二极管发出的红外线信号。
由于光栅随电机高速转动,则红外线三极管接收到的就是一系列脉冲信号。
将该信号传输到PIC16F877A单片机的内部计数器计数,根据预先实测的数据换算关系即可计算出小车的行车速度。
1.2.6电机驱动模块
小车电机驱动模块是本系统的执行机构,用于控制小车的运行。
方案一:
采用舵机和直流电机分别控制小车转向和驱动。
舵机控制两个前轮的转向,不能为小车提供前进的动力,为使小车前进,在后轮装了个驱动马达,从而使小车既能前进又能转弯。
方案二:
小车采用双电机实现驱动和转向。
利用电机差速原理控制小车转向,能够实现原地任意角度的转向。
首先在小车的后方安装一万向轮,两侧为双动力电机。
由于舵机控制具有灵活、灵敏度高、反映速度快等优点,极易实现小车的快速而精确转弯,在寻线模式时优势更加明显。
基于上述分析,采用了方案一。
1.2.7电源模块
方案一:
采用普通电池,选用7节电池给直流电机供电,经7805稳压管对单片机、光电传感器、金属接触传感器等供电,但对直流电机影响很大,电机转速变化大,对任务的完成极为不利。
方案二:
采用10节可充电式镍氢电池组共12V给直流电机供电,经7805电压转换为单片机、红外线传感器等额定电压为5V器件供电。
单片机和传感器工作正常,直流电机转速变化不大且平稳行进,且电池体积较小,重量较轻,能够满足系统要求。
上述论证可知,电池组可保持系统稳定,选取方案二。
1.3系统各模块的最终方案
经过论证,得到各个模块的最终应用方案,方案如下:
(1)控制器模块:
采用MicroChip公司单片机PIC16F877A作为小车运动的控制核心;
(2)寻线前进和障碍物检测躲避模块:
采用ST168型红外线传感器来进行信号采集;
(3)小车电机驱动模块:
采用了L298N电机驱动芯片控制电机;
(4)小车方向调整模块:
采用舵机的PWM波控制;
(5)电源模块:
采用12V电池组经7805稳压后作为单片机、红外传感器、舵机等的电源,12V电池组直接作为直流电机的电源;
(6)直流调速系统:
由单片机的CCP模块产生的PWM波控制电机的速度。
第二章硬件系统的设计与实现
2.1电源电路的设计
本系统所有芯片都需要+5V的工作电压,而一节电池只能提供的电压为1.2V的倍数的电压,10节电池电压为12V,则需要7805稳压芯片。
L7805能提供小于1.5A的电流,足以满足芯片供电的要求。
虽然微处理器和微控制器不需要支持电路,功耗也很低,但必须要加以考虑。
由于直流电机的额定电压大且额定电流大,可直接由12V而不经降压为其供电,电机驱动电源由它来提供的。
图2-1为12V电压经7805稳压后得到5V电压的稳压电路。
图2-1电源稳压电路
2.2检测电路设计
智能小车速度检测的传感器采用红外对射式,寻路避障用的传感器采用红外反射式。
ST
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PIC 单片机 智能 小车
![提示](https://static.bdocx.com/images/bang_tan.gif)