智能小车论文单片机循迹测速避障液晶显示
基于单片机的全智能小车(遥控_避障_循迹_液晶)

基于P89V51RB2单片机智能寻迹小车目录第1章绪论 (1)1.1 引言 (1)1.2 课题的来源及现状 (1)1.2.1 课题的来源 (1)1.2.2 智能汽车国外发展情况 (1)1.2.3 智能汽车国内发展情况 (1)1.3 本论文研究的内容 (2)第2章系统总体设计 (3)2.1 小车的总体构造....................................................................... 错误!未定义书签。
2.2 智能小车寻迹基本原理 (3)2.3 智能小车测速基本原理 (3)2.4 智能小车舵机控制原理 (3)2.4.1 舵机构造 (3)2.4.2 舵机工作原理 (3)2.4.3 舵机控制时序 (3)2.5 智能小车壁障基本原理 (3)2.5.1 超声波测距模快介绍 (3)2.5.2 超声波引脚功能...................................................................................... (3)2.5.3 超声波工作原理 (3)2.5.4 超声测距时序....................................... (3)2.6 智能小车遥控基本原理 (3)2.7 智能小车液晶显示原理 (3)第3章系统硬件设计 (10)3.1 控制器的选择 (10)3.1.1 概述 (10)3.1.2 P89V51RB2开发工具特性 (10)3.2 硬件电路设计 (10)3.2.1 系统电源电路 (10)3.2.2 电机驱动模块 (11)3.2.3 光电编码器 (12)3.2.4 红外线检测电路 (13)3.2.5 键盘显示设计 (14)3.2.6 避障模块设计 (10)3.2.7 液晶显示设计 (10)第4章系统软件设计 (17)4.1 编译环境 (17)4.2 模块的驱动 (17)4.2.1 红外线传感器模块 (17)4.2.2 电机模块的驱动 (18)4.2.3 转速捕获 (21)4.2.4 键盘显示模块 (22)4.2.5 按键模块 (23)4.2.6 遥控模块 (23)4.2.7 壁障模块 (23)4.2.8 液晶模块 (23)第5章系统调试分析 (25)5.1 系统设计中的注意事项 (30)5.1.1 外部因素 (30)5.1.2 内部因素 (30)5.2 硬软件总体调试 (31)第6章结束语 (32)附录 (24)第1章绪论1.1 引言我们所处的这个时代是信息革命的时代,各种新技术、新思想层出不穷,纵观世界范围内智能汽车技术的发展,每一次新的进步无不是受新技术新思想的推动。
智能循迹避障小车-论文设计

单片机的应用与开发智能循迹避障小车作者:***摘要:利用红外对管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。
其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM波控制。
关键词:智能小车STC89C52单片机 L298N 红外对管第一章绪论1.1单片机的简介一.微型计算机(Single Chip Microcomputer)微型计算机的主要特点:CPU集成于一个芯片中。
单片机(Micro Controller Unit)是把组成微型计算机的各功能部件:CPU、RAM、ROM、定时/计数器、中断控制器、并行和串行接口均集成在一个芯片中。
其一个芯片就构成了一个比较完整的计算机系统。
微型计算机与单片机是微电子领域的两个分支。
微型计算机的特点是运算速度快、存储容量大,适合于信息管理、科学计算等领域;而单片机的特点为体积小、价格低,适合于仪器、设备的控制,常常嵌入到仪器、设备中。
故单片机也称作微控制器(Microcontroller)。
二.单片机的生产与发展(1).单片机的生产:目前世界上单片机的生产公司有上百家,如Intel、Philips、Microchip、Motorola、Siemens、NEC、AMD、Zilog、TI、Atmel等。
但在国内广泛应用的只有Intel 系列和Microchip PIC系列,(2).单片机的发展:第1阶段(1976~1980):单片机发展初级阶段。
集成了8位CPU、RAM、ROM、定时器、并行口(无串行口)等部件,但性能低,寻址范围小(≤4KB),中断系统、定时器也简单。
典型机型:Intel MCS-48系列。
第2阶段(1980~1983):高性能单片机阶段。
此阶段的单片机普遍带有串行口,有多级中断处理系统,多个16位定时/计数器,片内ROM、RAM的容量加大,寻址范围达64KB。
典型机型:Intel MCS-51系列。
智能小车(单片机格式)循迹 遥控 避障

西安科技大学自动寻迹及避障小车学院:电气与控制工程学院专业:测控技术与仪器学生:潘富强袁鑫朱明指导老师:侯媛彬陈毅静王建1西安科技大学摘要单片机应用技术飞速发展,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
单片机是集CPU,RAM,ROM ,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
本文是基于单片机的智能小车设计,通过红外遥控、躲避障碍物功能,寻迹功能和测速功能来诠释智能小车的冰山一角,向大家展示智能小车的强大功能。
关键词:单片机,智能小车,红外遥控,躲避障碍物,寻迹,测速。
AbstractSCM application technology is developing rapidly from the missile's navigation devices, to the aircraft instrument control, computer network communications and data transmission, industrial automation process real-time control and data processing, as well as the widely used in a variety of intelligent life IC card, electronic pets, which are inseparable from the microcontroller. SCM is a set of the CPU, RAM, ROM, timing, counting and a variety of interfaces in one of the microcontroller. Its small size, low cost, functional, widely used in smart industries and industrial automation.Microcontroller-based intelligent car design, infrared remote control, to avoid obstacles feature, look for the trace function and speed function to interpret the tip of the iceberg of the smart car, to show a strong function of the smart car.Keywords:microcontroller, smart car, infrared remote control to avoid obstacles, tracing velocimetry.2西安科技大学目录第1章绪论 (4)1.1 智能小车成果 (4)1.2 智能小车发展 (4)1.3 本次智能小车设计 (4)第2章智能小车设计及器件介绍 (6)2.1 设计思路 (6)2.2 器件介绍 (7)2.2.1 主芯片STC89C52 (7)2.2.2 马达控制驱动芯片L9110 (8)2.2.3 MAX232 (9)2.2.4 OPTC光断续器 (9)2.2.5 液晶显示LM016L (9)第3章单元模块设计 (11)3.1 红外遥控及避障模块设计 (11)3.1.1 功能 (11)3.1.2 电路结构 (11)3.1.3 程序流程图 (11)3.1.4 实现效果 (13)3.2 寻迹模块设计 (13)3.2.1 功能 (13)3.2.2 电路结构 (13)3.2.3 程序流程图 (14)3.2.4 实现效果 (14)3.3 测速模块设计 (15)3.3.1 功能 (15)3.3.2 电路设计 (15)3.3.3 程序流程图 (16)3.3.4 实现功能 (16)小车附加功能 (17)设计总结 (18)参考文献 (19)附录一红外遥控及避障编程 (20)附录二寻迹编程 (28)附录三测速编程 (31)附录四元件清单 (39)附录五实物图 (40)3西安科技大学第1章绪论1.1 智能小车成果系统运用多重传感器与控制器良好的结合,系统可分为传感器检测部分,智能控制部分和电源模块。
智能循迹小车 毕业论文

智能循迹小车毕业论文一、前言随着科技的发展,智能机器人已经成为人们关注的热门话题。
智能机器人的出现和应用,不仅可以提高生产效率,减少劳动强度,并且可以创造出很多新的应用领域。
其中,智能循迹小车作为一种基于仿生学和机器人学的新型机器人,已经逐渐应用到许多领域,如环境监测、病毒检测等。
本文着重介绍智能循迹小车的设计和实现,以期为相关研究提供参考。
二、智能循迹小车的需求分析智能循迹小车主要用于环境监测和物品巡检。
为了保证循迹小车的运转效果,需要进行以下需求分析:1.循迹精度高:循迹小车的自主导航是基于视觉和控制系统完成的,因此需要保证循迹精度高,以便更准确地定位目标位置。
2.交通状况适应性强:循迹小车需适用于不同的路况和环境,如转向直接性、弯道安全性、山地路段行驶性等。
3.控制系统稳定性高:为了确保循迹小车的运转稳定,控制系统需稳定、耐用。
4.多功能性:循迹小车需具备多种传感器和设备,以实现环境监测和物品巡检等多项功能。
三、智能循迹小车的设计方案1.硬件设计智能循迹小车由四个电动轮驱动,需要具备以下硬件配置:1) 微型处理器:采用单片机实现控制、通信等功能。
2) 直流电机:用于驱动小车前进和后退。
3) 舵机:控制小车方向。
4) 金属质量传感器:检测循迹目标的位置,并对小车进行控制。
5) 视觉传感器:采集路面图像,并进行图像处理。
6) 电源模块:提供小车稳定的电力来源。
2.软件设计1) 系统设计:采用嵌入式系统,将设备的物理特性和功能与程序环境相结合,实现对小车的控制和行为规划。
2) 控制算法设计:采用视觉处理和运动控制算法实现对小车的控制,并对其交通状况和循迹精度进行优化。
3) 通信协议设计:采用串口通信协议实现与上位机的数据传输。
四、智能循迹小车的实现演示智能循迹小车的实现演示中,需要注意以下几点:1. 使用电源模块为小车提供稳定的电力来源。
2. 通过视觉传感器采集并处理路面的图像信息。
3. 通过金属质量传感器检测循迹目标的位置。
基于单片机控制的智能循迹避障小车

理论创新◆LilunChuangxin基于单片机控制的智能循迹避障小车姚培1张李坚1周晶香2(1.西南交通大学,四川成都611756;2.宿迁学院,江苏宿迁223800)摘要:根据小车各部分功能,模块化硬件电路,并调试电路。
将调试成功的各个模块逐个地“融合”成整体,再进行软件编程调试,直到完成小车,使小车智能地循迹、避障、声光显示、检测铁片、寻光。
关键词:传感器;单片机;电机驱动;电源1 概述 2.2 循迹模块此智能车素材来源于2003年全国大学生电子设计大赛,采用元件:采用反射式红外光电传感器ST188。
AT89S52单片机作为小车的控制中心,将各传感器的信号传至单原理:由于光线照到路面产生反射,且黑色与白色反射系数不片机分析处理,从而控制L293D电机驱动,控制小车和数码显示管同,可以根据传感器接收到的光判断车是否超出黑线。
ST188电路的显示和蜂鸣器鸣叫。
利用红外传感器检测黑线,接近式开关传感检测到黑色或白色的时候可以产生高低电平信号的变化,并将信器检测薄铁片,集成红外线传感器即光电开关进行避障。
此车不仅号送至单片机,从而控制左右电机转动,实现小车沿黑线运动。
是往届全国大学生电子设计大赛题目,而且与“飞思卡尔”全国智 ST188原理:一体化红外发射接收IRT 中的发射二极管导通,能车大赛光电组命题雷同,可见其意义不同之处!2003年电子竞赛发出红外光线反射到光敏接收管上,使光敏接收管的集电极发射跑道示意图:小车从起跑线开始启动,循黑迹经过直道区,并且检极间电阻变小,输入端电平变低,输出端为高电平,9013导通,集电测相应的铁片(方框代表),发出声光;然后进入BC弯道区,在C 极为低电平,输入单片机。
点检测铁片停留5s,同时声光显示;此后启动避障,寻找车库中的当检测到黑色条纹时,反射到IRT中接收管上的光减少,接收灯光,进入车库,并且停放。
如图1所示。
管的集电极与发射极间电阻变大,9013截止,集电极C为高电平,将此信号输入到单片机中进行判断。
智能避障小车论文

“神戎”杯山东大学信息学院光电设计大赛基于光电导航的智能移动测量小车简介竞赛说明:设计一辆具有光电导航功能的智能车,要求从线路的指定点出发,沿轨道上铺设的“8”字形导航条走完全程。
在行走过程中,利用光电技术测量、记录沿途所通过隧道的数目、各段隧道的长度及沿途路边树木的棵数。
目录第1章引言 (4)第2章总体方案 (5)2.1 需求分析 (5)2.2 总体分析 (5)2.3 方案确定 (5)第3章硬件方案 (7)3.1 车体设计 (7)3.2 主控制器模块 (7)3.3 电源模块 (7)3.4 电机驱动模块 (7)3.5 电机模块 (8)3.6 循迹模块 (8)3.7 测量显示 (8)3.7 最终方案 (8)第4章硬件实现及单元电路设计 (9)4.1 主控模块 (9)4.2 电源设计 (9)4.3 驱动电路 (9)4.2 循迹设计 (10)4.2 测量显示 (10)第5章系统软件设计方案 (11)第6章系统的安装及调试 (12)6.1 安装步骤 (12)6.2电路的调试 (12)第7章心得与总结 (12)经费预算 (14)附录 (15)第一章引言随着汽车工业的快速发展,关于汽车的研究也越来越受到人们的关注。
智能汽车概念的提出给汽车产业带来机遇也带了挑战。
汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波和红外线的智能小车的避障研究。
针对一种基于红外传感器的循迹小车,通过对整体方案、电路、算法、调试、车辆参数的介绍,详尽地阐述小车通过传感器系统感知外界环境和自身状态, 在复杂的环境中自主移动并完成相应的任务。
红外传感器以其独有的特征而被青睐。
该智能小车系统涉及直流电机控制技术、路径识别、传感技术、电子设计、程序设计等多个学科,磨练我们的知识融合和实践动手能力的培养。
摘要:智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探用途。
智能循迹避障小车论文

自动化专业导论智能循迹避障小车学生姓名:学号:指导教师:目录摘要引言第一章绪论1.1智能小车的背景1.2智能小车的现状第二章设计方案2.1设计任务2.2方案及轨道选择2.3智能小车元件介绍第三章硬件设计3.1总体设计3.2驱动电路3.3信号检测模块3.4主控线路第四章软件设计4.1主程序模块4.2电机驱动程序4.3循迹模块4.4避障模块第五章制作安装与调试作品总结致谢摘要利用红外对管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。
其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM波控制。
关键词:智能小车;STC89C52单片机;L298N;红外对管引言2004年1月3日和1月24日肩负着人类探测火星使命的“勇气”号和“机遇”号在火星不同区域着陆,并于2004年4月5日和2004年4月26 日相继通过所有“考核标准”。
火星车能够在火星上自主行驶:当火星车发现值得探测的目标,它会驱动六个轮子向目标行驶;在检测到前进方向上的障碍后,火星车会去寻找可能的最佳路径。
据悉,中国的登月计划分三步进行:第一步,发射太空实验室和寻找贵重元素的月球轨道飞行器;第二步,实现太空机器人登月;第三步,载人登月。
随着“神舟”系列飞船和“嫦娥”月球探测卫星的成功发射,第一步接近成熟;第二步中太空机器人登月计划中的太空机器人应该能在月球上自主行驶,进行相关探测。
因此对于我国来说,类似于美国“勇气”号和“机遇”号火星车的智能车技术研究也显得迫在眉睫。
目前,城市交通的安全问题己引起各国政府有关部门的高度重视和全民的关注,专家、学者在分析城市交通事故的原因时,普遍认为事故原因主要包括:人员素质、运输车辆、道路环境和管理法规等四个方面,而车辆性能的提高即研发高性能的智能汽车是其中很重要的一个环节。
美国研究认为,包括智能汽车研究在内的智能运输系统对国家社会经济和交通运输有着巨大的影响,其意义和价值在于:大量减少公路交通堵塞和拥挤,降低汽车的油耗,可使城市交通堵塞和拥挤造成的损失分别减少25%-40%左右,大大提高了公路交通的安全性及运输效率,促进了交通运输业的繁荣发展。
基于单片机的智能小车设计(红外避障及循迹)

轮式移动机器人的设计报告单片机系统课程设计智能小车(避障及循迹)的设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“好帮手”电子设计竞赛题目:智能小车参赛者:指导老师:摘要近年来,随着我国经济建设的高速发展,机动车辆拥有量也在急剧增长,交通事故也日益增多,车辆超速成为了越来越严重的问题。
而我国生产的汽车、摩托车电机转速测量系统大多使用动圈式模拟测速。
这种测量系统存在精度差、过载能力弱等缺点。
本次的智能仪表综合训练的主要任务是设计一个智能小车,要求实现小车能够直走、通过光电传感器进行测速、通过PWM电路模块进行调速以及通过LCD12864液晶模块进行小车速度、路程、距离的显示。
控制板的设计以8位的STC89C52单片机为控制核心,驱动板则以L289N驱动芯片为核心,应用光电传感器和LCD液晶模块,成功的实现了小车的测速、显示功能、超声波测距、无线电控制等功能。
关键词:智能小车;光电传感器;驱动芯片;LCD液晶模块;无线电控制目录第一章绪论 (4)1.1 问题的提出 (4)第二章智能小车原理 (5)2.1设计思路 (5)2.2 STC89C52RC单片机简介 (6)2.3 小车驱动板简介 (7)2.4 小车驱动方式选择 (8)2.5 光电测速原理 (9)2.6 LCD12864显示模块 (9)2.7 无线电原理 (10)第三章系统硬件设计 (11)3.1车体结构及其驱动电路 (11)3.2循迹功能 (11)3.3 测速模块的设计 (12)3.3 PWM调速模块的设计 (13)3.4 无线电模块 (13)3.5 超声波测距 (14)3.6 LCD12864显示 (15)第四章系统软件的设计 (15)4.1 循迹与无线电接收功能单片机程序 (15)4.2 LCD12864液晶显示程序 (27)总结 (42)附录1 PCB原理图 (43)附录1-1 电机原理图 (43)附录1-5 LCD12864显示PCB图 (46)附录2 实物图 (47)第一章绪论1.1 问题的提出当今世界,科学技术日新月异。
传感器技术和自动控制正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。
作为机械行业的代表产品——汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整体(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很可能成为依托整车制造业和用车提升配置而快速成为新的增长点:二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时具有交通、娱乐、办公和通讯等多种功能。
勿容置疑,机电一体化人才的培养不论是在国外还是在国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对机电一体化的兴趣与强化机电一体化的相关知识。
所以作为机电一体化学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。
这项设计是以采购的小车为基础,采用8位STC89C52RC单片机作为控制核心,逐步实现测速、调速、显示这三大功能。
第二章智能小车原理2.1设计思路本次小车设计的硬件框图如2-1图所示;利用两块STC89C52单片机在小车上进行智能控制。
我们的智能小车是基于51单片机的智能小车系统。
功能如下: 1、通过光电传感器小车循迹。
2、测速传感器为光电测速传感器,在单位时间内计算脉冲的次数,然后再进行转换和处理即得到所测量的速度。
3、通过PWM 调速模块结合软件进行调速。
4、通过LCD12864液晶屏显示速度、路程、距离。
5、通过超声波测距测量小车前面障碍物距离。
6、通过无线电控制小车行驶方向。
2.2 STC89C52RC 单片机简介单片机STC89C52如下2-2图所示2-2图单片机STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、非常有效的解决方案。
具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
2.3 小车驱动板简介小车驱动板如2-4图所示2-4图小车驱动板L289N模块输入输出关系如下表所示ENA IN1 IN2 电机运转情况H H L 正转H L H 反转H IN1 IN2 快速停止L X X 停止2-1表2.4 小车驱动方式选择采用由集成了双极性管组成的H桥电路芯片L298N。
用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高;H桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术。
2.5 光电测速原理小车速度检测方案的设计是个不可忽视的问题。
只有选择好测速方案,才能省时、省力、省线地去做设计。
原理是传感器开孔圆盘的转轴与减速电机转轴相连,光源的光通过开孔盘的孔和缝隙反射到光敏元件上,开孔盘旋转体转一周,光敏元件上照到光的次数等于盘上的开孔数,从而测出旋转体旋转速度。
灵敏度较高,但容易受外界光源的影响。
虽然光电传感器受外界光源影响很大,但是它使用方便、安装简单,还有本设计要求的准确度不是很高,因此就选择了光电测速传感器。
光电测速传感器的原理图如下图所示光电测速模块如2-5图所示2.6 LCD12864显示模块系统采用12864液晶显示,它不仅节省了单片机的资源,相比较数码管液晶显示更加直观、节能,同时可以直接显示中文汉字、字符等,具有灵活易操作的特性。
故采用LCD显示。
2.7 无线电原理XL24L01P-D01是采用挪威NORDIC公司的nrf24L01p 2.4G无线收发IC设计的一款高性能2.4G无线收发模块,采用GFSK调制,工作在2400-2483M的国际通用ISM频段,最高调制速率可达2MBPS。
XL24L01P-D01集成了所有与RF协议相关的高速信号处理部分,如:自动重发丢失数据包和自动产生应答信号等,模块的SPI接口可以利用单片机的硬件SPI口连接或用单片机的I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机第三章系统硬件设计3.1车体结构及其驱动电路硬件部分则在采购的小车基础上进行,小车的实物图如图3-1所示。
3-1图3.2循迹功能智能小车利用的光电传感器进行循迹功能。
如图3-2所示。
光电循迹3.3 测速模块的设计光电传感器是通过把光强度的变化转换成电信号的变化来实现控制的。
光电传感器在一般情况下,有三部分构成,它们分为:发送器、接收器和检测电路。
其安装在小车上如图所示。
光电测速3-3图安装图3.3 PWM调速模块的设计调速模块决定了小车的调速功能,本次设计使用PWM进行调速。
脉冲宽度调制(PWM)是英文“Pulse Width Modulation”的缩写,简称脉宽调制。
它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。
一种模拟控制方式,根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定。
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。
电压或电流源是以一种通(ON) 或断(OFF)的重复脉序列被加到模拟负载上去的。
通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。
只要带宽足够,任何模拟值都可以使用PWM进行编码。
3.4 无线电模块利用无线电XL24L01P-D01进行控制小车在非循迹状态的前走、后退、左转、右转、暂停的功能。
并控制小车进入循迹状态。
3.5 超声波测距超声波测距采用IO口TRIG触发测距,给至少10us高电平信号;模块自动发送8个40KHZ的方波,自动检测是否有信号返回;有信号返回,通过IO口ECHO输出以后高电平,高电平持续时间就是方波从发射到返回的时间。
如图所示:3.6 LCD12864显示用LCD12864显示“小车路程、小车左轮速度、小车右伦速度、小车前方障碍物距离”的具体信息。
如图所示:第四章系统软件的设计4.1 循迹与无线电接收功能单片机程序#include <reg52.h>#include <intrins.h>//#include<12864cusu.c>#include <XUNJIG.c>typedef unsigned char uchar;typedef unsigned char uint;//****************************************IO端口定义***************************************sbit CE =P1^5; //工作模式控制,在CSN为低的情况下,CE协同NRF24L01的CONFIG寄存器共同决定NRF24L01的状态sbit CSN =P1^0; //SPI片选使能,低电平使能sbit SCK =P1^4; //SPI时钟sbit MOSI=P1^1; //SPI串行输入sbit MISO=P1^3; //SPI串行输出sbit IRQ =P1^2; //中断,低电平使能*///***********************************数码管0-9编码*******************************************uchar seg[10]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //0~~9段码////************************************按键**********************************************sbit KEY1=P3^2;sbit KEY2=P3^3;sbit KEY3=P3^4;sbit KEY4=P3^5;//***********************************数码管位选**************************************************sbit led1=P0^7;sbit led0=P0^6;//*********************************************NRF24L01******************************* ******#define TX_ADR_WIDTH 5 // 5字节发射地址宽度#define RX_ADR_WIDTH 5 // 5字节接收地址宽度#define TX_PLOAD_WIDTH 32 // 20 uints TX payload#define RX_PLOAD_WIDTH 32 // 20 uints TX payloaduint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址//***************************************NRF24L01寄存器指令*******************************************************#define READ_REG 0x00 // 读寄存器指令,读操作的寄存器的地址,设置地址AAAAA = 00000,以后要变更地址只需在该数值上加即可#define WRITE_REG 0x20 // 写寄存器指令,写操作的寄存器的地址,设置地址AAAAA = 00000,以后要变更地址只需在该数值上加即可#define RD_RX_PLOAD 0x61 // 读取接收数据指令(即读RX有效数据)#define WR_TX_PLOAD 0xA0 // 写待发数据指令(即写TX有效数据)#define FLUSH_TX 0xE1 // 冲洗发送FIFO指令,(清除TX FIFO 寄存器)#define FLUSH_RX 0xE2 // 冲洗接收FIFO指令,(清除RX FIFO 寄存器)#define REUSE_TX_PL 0xE3 // 定义重复装载数据指令#define NOP 0xFF // 保留(空操作)//*************************************SPI(nRF24L01)寄存器地址****************************************************#define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式#define EN_AA 0x01 // 自动应答功能设置#define EN_RXADDR 0x02 // 可用信道设置#define SETUP_AW 0x03 // 收发地址宽度设置#define SETUP_RETR 0x04 // 自动重发功能设置#define RF_CH 0x05 // 工作频率设置#define RF_SETUP 0x06 // 发射速率、功耗功能设置#define STATUS 0x07 // 状态寄存器#define OBSERVE_TX 0x08 // 发送监测功能#define CD 0x09 // 地址检测#define RX_ADDR_P0 0x0A // 频道0接收数据地址#define RX_ADDR_P1 0x0B // 频道1接收数据地址#define RX_ADDR_P2 0x0C // 频道2接收数据地址#define RX_ADDR_P3 0x0D // 频道3接收数据地址#define RX_ADDR_P4 0x0E // 频道4接收数据地址#define RX_ADDR_P5 0x0F // 频道5接收数据地址#define TX_ADDR 0x10 // 发送地址寄存器#define RX_PW_P0 0x11 // 接收频道0接收数据长度#define RX_PW_P1 0x12 // 接收频道0接收数据长度#define RX_PW_P2 0x13 // 接收频道0接收数据长度#define RX_PW_P3 0x14 // 接收频道0接收数据长度#define RX_PW_P4 0x15 // 接收频道0接收数据长度#define RX_PW_P5 0x16 // 接收频道0接收数据长度#define FIFO_STATUS 0x17 // FIFO栈入栈出状态寄存器设置//************************************************************************************* *void Delay(unsigned int s);void inerDelay_us(unsigned char n);void init_NRF24L01(void);uint SPI_RW(uint uchar);uchar SPI_Read(uchar reg);void SetRX_Mode(void);uint SPI_RW_Reg(uchar reg, uchar value);uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);void nRF24L01_TxPacket(unsigned char * tx_buf);//*****************************************长延时*****************************************void Delay(unsigned int s){unsigned int i;for(i=0; i<s; i++);for(i=0; i<s; i++);}//************************************************************************************* *****uint bdata sta; //状态标志sbit RX_DR =sta^6;sbit TX_DS =sta^5;sbit MAX_RT =sta^4;/************************************************************************************** ****/*延时函数/************************************************************************************** ****/void inerDelay_us(unsigned char n){for(;n>0;n--)_nop_();}//************************************************************************************* ***/*NRF24L01初始化//************************************************************************************* **/void init_NRF24L01(void){inerDelay_us(100);CE=0; // CE 为低,处于待机模式ICSN=1; // 不使能SPI片选信号SCK=0; // Spi clock line init highSPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 写本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 频道0自动ACK应答允许SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允许接收地址只有频道0,如果需要多频道可以参考Page21SPI_RW_Reg(WRITE_REG + RF_CH, 0); // 设置信道工作为2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为32字节SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dBSPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ收发完成中断响应,16位CRC,主发送}/************************************************************************************** **************/*函数:uint SPI_RW(uint uchar)/*功能:NRF24L01的SPI写时序/************************************************************************************** **************/uint SPI_RW(uint uchar){uint bit_ctr;for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit{MOSI = (uchar & 0x80); // 将数据uchar 的最高位赋值给SPI数据输出脚uchar = (uchar << 1); // 数据uchar 左移一位SCK = 1; /* MOSI上的数据在时钟上升沿发送,注意:时钟上升沿到来时,将数据uchar的最高位移入MOSI,同时,从设备的寄存器也将其当前存放的数据的最高位移入MISO,紧接着在SCK的下降沿的时候从设备的MOSI 接收到了主机发送过来的数据,同时主机也接收到了从设备发送过来的数据.*/uchar |= MISO; // 将MISO中的数据保存到数据uchar 的最低位SCK = 0; // 时钟下降沿的时候将MISO 上的电平存放到数据uchar 的最低位}return(uchar); // 将从机寄存器中的数据返回}/************************************************************************************** **************/*函数:uchar SPI_Read(uchar reg)/*功能:NRF24L01的SPI读时序/************************************************************************************** **************/uchar SPI_Read(uchar reg){uchar reg_val;CSN = 0; // SPI片选信号,低电平使能,开启SPI数据传输 SPI_RW(reg); // 通过地址reg 选择所要读的寄存器reg_val = SPI_RW(0); // 读取所选寄存器当前存储的数据,将读到的值赋值给变量reg_val 。