版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的智能越障小车设计摘要近年来,伴随着汽车工业的超高速发展,关于智能车的研究越来越受到人们的关注。智能驾驶小车,也可简称为自主移动机器人,是一种集环境感知、规划和决策,自动驾驶和行车等多种功能于一体的大型综合驾驶系统,它主要是运用单片机、传感器、信息、通讯、导航以及汽车自动化控制等各种高新技术,是一个非常典型的多种高科技相结合的产物。本设计是基于STM32F103单片机来实现的,通过红外避障和超声波避障相结合的方式实现自动避障功能,通过红外遥控实现小车的手动遥控器控制功能。STM32系列的微控制器拥有着高速的数据处理能力,它的内部结构集成了丰富的外设接口资源,为广大开发者提供了一个功能十分强大以及具备一定拓展性的硬件平台。本设计所使用的小车是四轮型的,电机驱动芯片采用的是L293D,它是拥有四个通道,每个电机需要用到两个通道,以便实现电机的正反转。本设计使用了四个电机,也就需要两片的L293D芯片。本设计软件部分主要基于KeilMDK开发平台,使用C语言进行模块化设计编程。通过红外避障和超声波避障相结合的形式实现小车的自主避障功能,将超声波避障设置为主要避障手段,红外避障为辅助避障方式,其次使用舵机与超声波模块结合,可以解决超声波检测盲区的问题,提高精准度。利用遥控器和红外光电接收探头实现红外遥控功能,可以手动控制小车前进后退,左转弯右转弯。关键词:STM32;红外遥控;红外避障;超声波避障;目录1引言 12概述 22.1智能小车国内外发展及研究现状 22.2设计采用主要技术 22.3论文主要工作以及章节安排 33总体设计 43.1智能小车车体结构选型 43.2智能小车总体设计方案 43.3智能小车总体设计框图 54硬件设计 64.1硬件开发平台 64.2STM32F103C8T6单片机介绍 64.3电机驱动芯片介绍 84.4超声波传感器HC-SR04介绍 104.5红外模块介绍 144.6LM324介绍 164.7各模块电路介绍 174.7.1单片机最小系统电路 174.7.2程序下载电路 184.7.3电源电路 194.7.4电源开关电路 194.7.5IO口电路 204.7.6对外供电接口电路 204.7.7LED电路 214.7.8红外遥控信号接收管 214.7.9按键电路 224.7.10蜂鸣器电路 224.7.11超声波模块接口 224.7.12小车电源电路 234.7.13电机驱动电路 234.7.14红外避障电路 244.7.15超声波避障电路 265软件设计 275.1软件开发平台介绍 275.2程序下载软件mcuisp软件介绍 275.3系统程序流程图 285.4红外遥控模块 295.5红外避障模块 345.6超声波避障模块 356制作与调试 386.1小车制作 386.2小车调试 387结论与展望 397.1结论 397.2展望 391引言移动机器人作为机器人学中的一个十分重要,十分热门的分支,它在上个世纪06年代便已经出现了。那时斯坦福研究院(SRI)的NilsNilssen和charlesRosen等研究人员,在1966年到1972年这个时间段研制出了名为shakey的自主式移动机器人,他们的目标是将人工智能技术运用在比较复杂的外界环境中,实现机器人系统进行自动推理、自主规划以及自动控制。从此,移动机器人便问世于世间,并且其数量不断增多,其中智能车辆作为移动机器人的一个非常重要而火热的分支也愈发受到人们的关注。什么是智能的小车呢?其实就是一种通过运用一系列各种各样的相关传感器对外部环境信息以及小车自身的运动状态进行感知监测,能够自主地在有障碍物等等复杂情况下实现相应的自主运动,进而完成相应作业功能的能够发挥巨大功效的机器人系统。智能小车主要运用了单片机技术、传感器相关技术、信息通讯技术、自动导航控制技术、人工智能以及自主控制等一系列在当今世界比较先进流行的高新技术。在这个国内国际都在全速发展的背景下,人工智能相关技术也是飞速发展,这些就让移动机器人变得更加的智能化了,甚至在各行各业都有着非常广泛的应用,无论是航天方面的各种卫星探测车,还是生活中十分常见的服务型机器人,又或是一些特殊环境如火灾,地震等严峻条件下的探测机器人,都是移动机器人在人们生产实际生活中的应用。它可以不知疲倦的按照人们的意愿进行工作,它也可以从事一些人类无法自身亲自完成的危险的工作,从这些我们都可以清晰的看到移动机器人真的已经成为人类生活不可分割的一部分,比如无论是医疗应用中的机器人还是生活中的导盲车,都给人类带来了无比巨大的便利和收益。此外,本设计还有助于智能汽车自动驾驶的研究,最新智能车的消息是在2021年4月的上海车展,值得一提的是,全球著名通信企业华为在这次展会上带来了他们的智能驾驶系统,华为ADS自动驾驶系统在复杂的城市道路中精准无误的表现,顿时让大家眼前一亮,其中智能安全技术更是提起了大家对自动驾驶的信心,包括4D成像雷达、AR-HUD和TMS智能汽车热管理系统。当然,也不只是华为,大疆,苹果,小米等等都加入了智能车研究的领域中。在这个智能时代中,万物智能化必定是浪潮,而智能车也必定是这次浪潮的宠儿。2概述2.1智能小车国内外发展及研究现状在国外关于智能小车的研究很早就开始了,上世纪50年代,美国便开始了他们的智能小车相关技术的研究,他们是全世界最早开始致力于智能小车系统研究的国家。全球第一个自动导车系统是巴雷特电子公司研发出来的,也是全世界首个固定路线运行的智能小车系统,而巴雷特电子公司正是美国公司。自此,有关智能小车的研究和发展也就开始迅速的发展,国外很多大公司都开始加入到智能小车研究的队伍中,比如微软、谷歌以及IBM这些国外科技巨头,都推出了自己公司的智能小车。对于国内来说,相较于国外,我国关于智能小车的研究比较迟,是近年来才慢慢开始跨入智能小车研究的队伍。在国内,目前主要是研究所、高校等拥有丰富资源的机构在进行智能小车的研究,关于智能小车课题设计的比赛也是愈来愈流行,无论是全国智能车比赛还是全国电子设计大赛,又或是挑战杯,都有很多设计是关于智能小车的研究的。虽然国内起步比较晚,但理论研究和实际应用也取得了令人瞩目的成就,其中一些领域还处于世界领先水平。例如,上海交通大学自制的Frontier-ITM,获得国家863高技术计划的专项支持,并在中外相关竞赛中多次夺冠。说到智能车,那星球探测车一定是非常有话题度的。无论是国外还是国内,都在积极进行宇宙其它星体的探索,对于这种人类自身不可能完成的任务,星球探测车便发挥出不可替代的作用。值得一提的是,2021年5月15日,我国自主研制火星车成功地在火星乌托邦平原着陆了,成为全世界第二个把火星探测车送到火星表面并安全着陆的国家,这无疑是一个令全中国人为之振奋骄傲的成果。在此之前,只有美国成功将火星探测车送到火星表面安全着陆,好奇号、勇气号和毅力号都是美国曾经成功发送到火星的星球探测车,苏联也曾尝试过,不过只有22秒便失去了信号,以失败告终。2.2设计采用主要技术采用的技术主要有:
(1)通过编程(PWM调制)来控制小车的速度;(2)红外传感器的有效应用;(3)超声波模块测距技术;(4)单片机STM32F103C8T6的应用;2.3论文主要工作以及章节安排本设计是基于STM32F103C8T6微控制器的智能避障小车的设计,本设计的小车运用超声波避障和红外避障相结合的方式实现避障功能,能够大大提高自主避障的精准度,其次使用红外接收探头和相关遥控设备实现智能小车的红外遥控功能,能通过遥控器手动控制实现小车进行向前进和向后退的操作,也能够实现小车的停止以及向左转运动和向右转运动。本论文各章节的主要内容如下:第一章是引言,对移动机器人进行了简单的介绍,以及智能车的一些介绍。第二章是概述,对智能车研究的一些背景以及国内外研究现状进行了介绍,对设计运用的主要技术进行了介绍以及全文各章节内容的一个概述。第三章主要完成了对整个系统的设计方案第四章是对本设计的硬件部分进行了详细的讲解,包括使用到的一些重要的电子器件以及各个模块的硬件电路设计。第五章是对本设计的软件部分进行了阐述,包括一些主要的程序代码以及实现思路。第六章是整个设计的制作与调试了。第七章是本设计的一些总结以及对后续的一些展望。最后就是致谢与参考文献了。
3总体设计近年来,国内外电子技术高速发展,基于嵌入式系统技术的产品越来越多,智能小车的发展也呈现蓬勃发展的态势,这种智能小车具有非常多的优点,多功能、低成本而且结构灵巧,能够在复杂的工业场景、危险的灾害现场、航天探索以及军事活动中得到广泛的应用。3.1智能小车车体结构选型就当前来看,国内外常用的移动机器人运行机构的选型有轮型、履带型、腿型和多种方式结合型。轮型和履带型更适用于路面相对较平坦的环境,而腿型就更加的灵活,可以像人一样步行,能够用于更加复杂恶劣的环境。而为了使移动机器人能够适用于多种多样的路面环境,可以采用多种型的结合,这样移动机器人能够更具有效益。智能小车多选用轮型,究其原因是因为这样的结构在相关设计历史中更加的成熟,更加的长久,有着很多成功实用的例子,而轮型的智能小车中最常用的是三轮和四轮。考虑到四轮小车比三轮小车更加稳定,本设计选用四轮结构,小车主体由车板、可充电锂电池、直流电机、车轮等构成。轮式移动机器人一般通过两种转向装置来进行转向运动,其中一种是使用舵机来控制小车进行转向操作,这种方式是将前轮设计为自由运动轮,将小车后轮设计为转向驱动轮,实现转向的关键是通过舵机控制转向驱动轮实现;而另外一种方式是差动控制转向,通过设置两轮之间的电机工作状态来实现小车的转向,考虑到智能小车转向的精准度,本设计采用差动转向式。3.2智能小车总体设计方案智能小车,其实就是一种通过运用一系列各种各样的相关传感器对外部环境信息以及小车自身的运动状态进行感知监测,能够自主地在有障碍物等等复杂情况下实现相应的自主运动,进而完成相应作业功能的能够发挥巨大功效的机器人系统。而本设计的系统组成主要包括STM32F103微控制器、电源相关模块、超声波避障相关模块、红外避障相关模块、红外遥控装置以及电机驱动模块。主控芯片选用STM32F103单片机,超声波传感器选用HC-SR04模块,红外接收管选用HS0038B,红外传感器选用RPR220,电机驱动芯片选用L293D。本设计主要通过超声波避障来实现避障功能,红外避障起辅助功能,能够提高小车避障的精准度,超声波能够检测到的小车距离前方障碍物的距离,而红外探测也能也能检测到小车距离前方障碍物的距离,将通过超声波检测距离触发小车进行自动避障的距离设置地比通过红外检测距离触发小车进行自动避障的距离更大也就能更精准的实现自动避障功能,如果超声波没有检测到也没有关系,因为红外检测也能触发小车进行自动避障,而为了使小车能够精准的进行转向,本设计还在车体上运用舵机,将超声波模块安装在舵机上,每当检测到障碍物时舵机便进行左右转,这时便有了两个距离,运用左右轮差动转向原理使小车向距离小车距离更远的一方进行转向,这样便能精准地实现小车的自动精准避障。3.3智能小车总体设计框图复位电路电源模块复位电路电源模块红外模块超声波模块STM红外模块超声波模块STM32微控制器舵机装置遥控装置舵机装置遥控装置电机驱动模块电机驱动模块图3-1系统总体结构框图
4硬件设计4.1硬件开发平台本设计主要是通过AltiumDesigner16来进行硬件相关电路模块设计的。硬件设计工作首先是绘制硬件电路原理图,然后检查封装库里有没有各元器件有没有相应的封装,如果没有,就自己绘制元器件的封装,其次在图纸引导下制定PCB电路板。AltiumDesigner16常用三部分内容,包括原理符号、仿真模型以及像元器件库和封装库这种集成库,使用起来非常的方便,能够很大程度地提高开发效率,减少开发所用时间。4.2STM32F103C8T6单片机介绍二十一世纪初,ARM公司发布了以ARMv7架构为基础,旨在满足各种技术性能要求的Cortex系列的标准体系结构,有A、R、M、三个分工明确的系列。A系列是用于更复杂的更尖端的应用处理,运行开放并且复杂的操作系统。R系列主要用于实时操作系统。M系列则是专门用于成本比较低的微控制相关领域的产品。同一时期,ARM公司的合作方之一的ST公司率先推出了基于Coetex-M3内核的STM32系列的MCU。STM32系列微控制器主要分为两个系列,一种是STM32F101标准型系列,工作在36MHz,另一种则是STM32F103增强型系列,工作在72MHz,具有更多的片内RAM以及更丰富的外设。STM32系列微控制器有着不少的优势。STM32F103具有先进的内核结构,使用了ARM最新的、先进架构的Cortex-M3内核;高性能意味着高耗电,本处理器针对市场上主要能耗要求进行了优化:在运行模式时采用了较高效率的动态能耗机制,代码以中以全速方式动行,如果外部时钟未被打开,处理器只会消耗一个电流,并且在等待状态下仍然会保持很小的电能消耗,典型情况下的电池能耗平均值仅是协在使用一个电池进行供电时,提供一的低电压的工作能力;高度的集成整合,它内部安装了一个嵌入式电源监控器,带有上电复位、低电压检测、掉电检查以及一个自带时钟的看门狗定时器;超丰富的国际外设资源,处理器内部芯片主要是由USART控制器、DMA控制器、A/D转换器以及多种接口所组成;实时性好。采用了很前卫甚至革命性的设计理念,使它能极速地响应中断,而且响应中断所需的周期数是确定的。单片机是通过内部总线把计算机的各个主要部件接为一体,其内部包括:ICode总线:该总线将CortexTM-M3内核的指令与闪存指令接口相连接,指令预取在此总线上完成;DCcode总线:该总线将CortexTM-M3内核的DCcode总线与闪存存储器的数据接口相连接(常量加载和调试访问);系统总线:该总线连接CortexTM-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问;DMA总线:此总线将DMA和AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到SRAM、闪存和外设的访问。总线矩阵:在使用轮换算法后,对内核系统总线以及DMA主控总线进行访问和仲裁。总线矩阵包含四个驱动部件和四个被动部件。AHB外设和系统总线之间由总线矩阵将它们连结,允许DMA进行访问。AHB/APB桥(APB):两个AHB/APB桥在AHB和2个APB总线间提供同步连接。APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。存储器组织:软件存储、数据存储、寄存器、输入端口、输入端口包含在主机线性空间4GB中。数据字节以较小的形式存储在内存中。单词中最小的字节是最有效的字节。单片机功能单元一般中有:定时器/计数器、串行端口、中断系统AD/DA、SPI、I2C总线等。图4-1单片机结构组成图本设计采用的STM32F103C8T6主要特点如下:(1)工作电压:电压-电源(Vcc/Vdd):2V~3.6V。
(2)工作频率范围:72MHz。
(3)总线宽度:32位。(4)程序存储器的容量:64KB(64Kx8)。(5)RAM容量:20Kx8。
(6)通用I/O口(输入/输出数:37个)。它的管脚分配图为:图4-2STM32F103C8T6管脚分配图4.3电机驱动芯片介绍智能小车常用的电机驱动芯片是L293D模块和L298N模块,本设计采用的是L293D芯片,该器件是四路高电流半H驱动器,用于在4.5V至36V的电压下提供高达600mA的双向驱动电流,用于驱动电感性负载,例如继电器,螺线管,DC和双极步进电机,以及在正电源应用中的其他大电流/高压负载。部件全是输入和输出TTL,都是推进式的工作机会。每一个出口都是一个完整的图腾驱动电路,它装有一个达灵顿晶体管和一个假的达灵顿圆。驱动程序双双启动,驱动程序1和2的1,2、驱动程序3和4的3,4。L293D具有如下特性:(1)、它的每个通道的电流输出能够达600mA(2)、它的每个通道的峰值输出电流能够达到1.2A(非重复)(3)、便于使能(4)、L293D具有过温保护(5)、低电平输入电压能够高达1.5V(高抗噪性)(6)、内置箝位二极管它的真值表为:表4-1真值表输入输出YAENHHHLHLXLZ它的管脚图以及逻辑结构图分别为:图4-3L293D管脚图图4-4逻辑结构图L293D每个频道都安装了自动输入设备。这条电路由于有独立的供电收入,可以在更低的电压下运行。表4-2L293D的工作条件表最小值最大值单位电源电压4.5736高电平输入电压2.32.37低电平输出电压-0.31.5温度070℃4.4超声波传感器HC-SR04介绍HC-SR04的特点:(1)典型工作用电压:5V(2)超小静态工作电流:小于5mA(3)感应角度,这取决于电阻R3的大小,随其增大而增大:R3电阻为392,不大于15度R3电阻为472,不大于30度(4)探测距离,这取决于R3的大小,因为这样可以调节增益:R3电阻为3922cm-450cmR3电阻为4722cm-700cm(5)高精度:可达0.3cm(6)盲区(2cm)超近模块实物图:图4-5顶部试图图4-6底部视图当R3电阻为392时,探测距离最大为4.5m左右,探测角度小于15度;当R3电阻为472时,探测距离最大为7m左右,探测角度小于30度;出厂默认392,即最大探测距离4.5m左右。R3电阻越大,接收部分增益越高,检测距离更大,但检测角度也会相应变大,容易检测到前方旁边的物体。当然,客户在不要求很高的测试距离的条件下,可以改小R3来减小探测角度,这时最大探测距离会减小。控制口发一个10US以上的高电平,便可以在接收口等待高电平输出.只要一有输出就可以打开定时器计时,当此口变为低电平时便可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以确定移动测量的值了。HC-SR04测距原理如下:(1)采用IO触发测距,给至少10us的高电平信号;;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间;(4)测试距离=(高电平时间*声速(340M/S))/2;图4-7时序图HC-SR04模块的使用相关注意事项如下:(1)此模块不宜带电连接,如果要带电连接,则先让模块的Gnd端先连接。否则会影响模块工作。(2)测距时,被测物体的面积不少于0.5平方米且要尽量平整。否则会影响测试结果。HC-SR04模块内部线路图:图4-8线路图4.5红外模块介绍在可视范围内遥控设备最廉价的方式是通过红外线。目前几乎所有的视频和音频设备都可以通过这种方式遥控。由于该技术应用广泛,相应的应用器件都十分廉价,因此红外遥控是我们日常设备控制的理想方式。红外光实际上就是一种特殊颜色的普通光。我们不能看到这种特殊的颜色是因为它的波长大于950nm,位于可见光谱之下。这就是我们使用红外光遥控的目地之一:我们要利用它,但是我们不希望能看到它。另一个原因就红外LED(发光二极管)十分容易制作,制作成本很低。红外接收探头HS0038B是由红外监测二极管、前置放大器、限幅器、滤波器、比较器和积分电路等组装引线框架,其属于环氧包装设计的IR过滤器。是标准IR遥控接收器系列,支持几乎所有主要的传输码。其有三个引脚,包括供电脚、接地脚和信号输出脚。图4-9HS0038B实物图其工作方式如下:红外监测二极管在监测到红外信号后,便把所监测到的信号送到放大器和限幅器,而限幅器则把脉冲幅度控制在一定的水平,不管红外发射器和接收器的距离是远还是近,信号通过带通滤波器,30Khz到60Khz的负载波便可以通过,然后经过解调电路以及积分电路进入比较器,而比较器输出高低电平,还原出发射信号的信号波形。值得一提的是,为了提高接收到的灵敏度,输出的高低电平必须和发射端信号是反相的。红外线遥控器目前已经被广泛应用在各种各样的家电设备上,它给非常多的电器提供了便利。红外遥控系统是由发射装置和红外接收探头两部分所组成。红外发射装置是由键盘电路、红外编码芯片、电源以及红外发射电路组成。通常为了使信号能够更好的被调制为脉冲信号,通过红外发射管发射,通常有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串们之间的时间间隔来完成信号信号调制的脉时调制(PPM)两种方式。本设计使用的是HS-021遥控器,其规格特点如下表:表4-3HS-021规格表项目规格1.外形尺寸长(mm):84(-0.15)宽(mm):39(-0.15)2.电池门卡糟尺寸长(mm):23(-0.15)宽(mm):45(-0.15)3.外观长方形,机身为黑色。4.电池3V扣式锂锰电池5.距离8m~10mHS-021相应的码值图为:图4-10码值图PRP220是红外光电传感器,具有一个红外发射管和一个红外接收管,当发射管发射出的红外信号经过反射后被接收管接收后,接收管的电阻便会发生相应的变化,一般在电路中是以电压的变化所体现出来,然后经过ADC转换或者是LM324等电路整形后得到相应处理后的相应输出结果。电阻变化的大小完全取决于接收到反射红外信号的强度,通常能够表现在反射面的颜色和反射面与接收管之间的距离两个方面。于是常常利用此来进行红外循迹以及红外避障电路的设计,但是需要加电压比较器后才能够输出高低电平信号。本设计就是利用此原理进行红外避障电路的设计的,红外光线具有反射特性,红外发射管发出红外信号,经物体反射后被红外接收管接收。但距离不同的物体反射量是不一样的。对距离近的物体,红外光线的反射量就会多一点,红外接收管的电压输出就会高一点;而对距离远的物体,红外反射量减少,红外接收管的电压输出也低。红外接收管的输出电压信号输入到LM324与电位器的电压输出进行比较(这个电压的大小可以通过调节电位器来调整),并输出高或低的电平值。这样,我们只要将电位器调节到合适的范围,就可以规定一个特定的距离,在这个距离之内LM324输出低电平,对应发光二极管亮;在这个距离之外LM324输出高电平,对应发光二极管灭;单片机根据LM324输出的电平状态,就能实时判断智能小车前方或后方是否有障碍物。如果检测到智能小车前方或后方有障碍物,智能小车作出规避动作,就能实现智能小车的避障运动了。4.6LM324介绍集成运算放大器是能够实现高增益放大功能的一种集成电子器件,早期主要用来实现对模拟量进行数学运算的功能,目前随着器件性能的改进,它已成为通用的增益器件,应用范围非常广泛。从电特性来看,集成运放接近理想的电压放大器件,它不仅有很大的输入电阻和很小的输出电阻,而且还有很高的电压增益,此外,静态工作时,它的输入和输出电位均为零,这样,在与其它集成运放连接时,就不需要考虑它们之间的电平配置问题。LM324是四通道的低功耗运算放大器,它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立,其性能参数有以下几个方面:(1)单电源工作方式,工作电平3V~30V(2)低消耗电流:约0.8mA(3)低输入偏移:输入电压偏移:3mv(Typ);输入电流偏移:2nA(Typ)(4)开环增益:100V/mv=100dB(Typ)(5)宽响应频带图4-11运算放大器电路图放大器电路如图4-2所示。它由两级结构相同的同相放大器组成,集成放大器选用LM324(图4-1)。信号经隔直流电容C1从第一级放大器的正端“+”输入,经过放大后输出,再经过级间耦合电容C2输入第二级放大器的正端。前级的放大倍数,后级的放大倍数,和为输入匹配电阻。4.7各模块电路介绍4.7.1单片机最小系统电路我们想要单片机能工作起来,首先应具备一些最基本的条件,那么这些基本的条件我们便称之为单片机的最小系统。(1)电源:这当然是必不可少的了。STM32F103C8T6单片机使用的是3.3V电源。(2)振蒎电路:STM32F103C8T6单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接5、6脚。只要买来晶振,电容,连上就可以了,按下图接上即可。(3)复位引脚:按下图画法连好。(4)模式选择:J10和J14是模式选择跳线,烧写程序时需要将跳线帽BOOT0取下,工作时需要将跳线帽BOOT0插上。至此,一个单片机的最小系统,也就是单片机能工作的必要条件就接好,通上电,下载好程序,单片机就开始工作了。下图就是智能小车的单片机最小系统电路图。图4-12单片机最小系统图4.7.2程序下载电路程序下载芯片使用CH340,CH340芯片将USB口转换成串口。给单片机烧写程序的时候用一条USB线就可以了。ch340是一个usb总线的转接处理器芯片,实现了usb转串口或者usb为转打印口。ch340是国产的芯片,应用领域和场合较多,市场占有率也非常高。常见的usb转串口芯片也包括cp2102、pl2303、ft232等,相比之下ch340性价比最高。通过ch340转串口将其与单片机mcu的片上uart连接起来就可以完成对该程序进行一键烧写。ch340具有以下几种特征:(1)全速USB设备接口,兼容USBV2.0。(2)计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。(3)硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。(4)支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。(5)软件兼容CH341,可以直接使用CH341的驱动程序。(6)支持5V电源电压和3.3V电源电压甚至3V电源电压。图4-13程序下载电路图4.7.3电源电路3.3V电源芯片为1117-3.3V芯片。图4-14电源电路图4.7.4电源开关电路J2为USB插座,S6为电源开关。当S6被按下后就接通了,这时VCC_5V的被接通到5V。图4-15电源开关电路图4.7.5IO口电路J1、J3和J13是IO口插座,将处理器部分IO管脚引出。图4-16IO电路图4.7.6对外供电接口电路对外供电接口分为5V和3.3V对外供电接口,可以对外提供5V和3.3V电源。图4-17对外供电接口电路图4.7.7LED电路控制板上有4个LED。分别用单片机的PB12,PB13,PB14,PB15管脚控制,当要LED亮时,将相关的控制管脚设置为低电平。图4-18LED电路图4.7.8红外遥控信号接收管红外接收管用于接收红外遥控器的遥控信号。图4-19红外接收管电路图4.7.9按键电路控制板上有4个按键,按键状态的读取管脚为单片机的PA8,PA11,PA12,PA15管脚。按键被按下的时候,相关管脚上是低电平。图4-20按键电路图4.7.10蜂鸣器电路蜂鸣器的控制管脚是PB5管脚,当要蜂鸣器发声时,将PB5管脚设置为低电平。图4-21蜂鸣器电路图4.7.11超声波模块接口超声波模块接口用来接超声波模块,超声波模块的trig和echo分别接PB0和PB1管脚。图4-22超声波电路图4.7.12小车电源电路智能小车采用锂离子电池供电。因为本设计使用的器件需要5V电源供电,因而需要将电池电压输出转换成5V电压,在这里使用电源芯片7805进行电源电压的转换。电源部分接线图如图所示。图4-23小车电源电路图BT1是两节可以充电的锂离子电池,为智能小车提供动力。S1是电源开关,按下的时候电源接通,松开的时候电源切断。7805是电源芯片,将锂离子电池电压转换成5V。发光二极管D1,D10是电源指示灯,当电源开关接通时,发光二极管发光。电源部分中用到的电容起滤波的作用。4.7.13电机驱动电路智能小车电机的驱动芯片采用L293D。L293D是一款单片集成的高电压、高电流、4通道电机驱动,设计用于连接标准DTL或TTL逻辑电平,驱动电感负载(诸如继电线圈、DC和步进电机)和开关功率晶体管等等。L293D有4个通道,每个电机需要用到两个通道,以实现电机的正反转。4个电机就需要用到8个通道。本设计小车需要2片L293D电机驱动芯片。图4-24电机驱动电路图智能小车采用脉宽调制(PWM)的办法来控制电机的转速,从而控制智能小车的速度。在此种情况下,电池电源并非连续地向直流电机供电,而是在一个特定的频率下为直流电机提供电能。不同占空比的方波信号,调节对直流电机的通断电,能起到对直流电机调速作用。这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上。这样,改变L293D始能端EN1和EN2上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了直流电机转速。4.7.14红外避障电路红外避障电路由电位器R17,R28;发光二极管D8,D9;红外发射管D2,D4和红外接收管D3,D5和芯片LM324等组成,LM234用于信号的比较,并产生比较结果输出给单片机进行处理。图4-25红外避障电路图红外光线具有反射特性,红外发射管发出红外信号,经物体反射后被红外接收管接收。但距离不同的物体反射量是不一样的。对距离近的物体,红外光线的反射量就会多一些,红外接收管的电压输出就会高一点;而对距离远的物体,红外反射量减少,红外接收管的电压输出也低。红外接收管的输出电压信号输入到LM324与电位器的电压输出进行比较(这个电压的大小可以通过调节电位器来调整),并输出高或低的电平值。这样,我们只要将电位器调节到合适的范围,就可以规定一个特定的距离,在这个距离之内LM324输出低电平,对应发光二极管亮;在这个距离之外LM324输出高电平,对应发光二极管灭;单片机根据LM324输出的电平状态,就能实时判断智能小车前方或后方是否有障碍物。如果检测到智能小车前方或后方有障碍物,智能小车作出规避动作,就能实现智能小车的避障运动了。电位器R28为左红外信号强度调节顺时钟调节电位器是增加检测距离,反时钟调节电位器是减少检测距离。没有接收到红外反射信号时,发光二极管D8不亮;接收到红外反射信号时,发光二极管D8亮。滑阻R17是右边红外信号强度调节顺时钟调节电位器是增加检测距离,反时钟调节电位器是减少检测距离。没有接收到红外反射信号时,发光二极管D9不亮;接收到红外反射信号时,发光二极管D9亮。4.7.15超声波避障电路对于超声波避障电路呢,则采用型号为HC-SR04的超声波测距。HC-SR04超声波测距模块可提供两厘米到四百厘米的非必要接触式的距离感测功能,探测距离的精准度可以达到三毫米;模块主要包括超声波发射器、超声波接收器以及相应的控制电路。其相关测距原理在上文已经阐述,所以这里不再赘述。5软件设计5.1软件开发平台介绍本设计的软件部分是在KeilMDK平台上进行开发。Keil是KeilSoftware公司推出的基于单片机的嵌入式软件开发平台,采用的是C语言,进行程序的编写。相较于汇编语言,C语言在各方面都有着非常明显的优势。Keil向开发者提供了C编译器。其次,还有宏汇编,连接器。当然不可忽视的还提供了库管理和一个功能十分齐全的仿真调试器等等的完整开发方案,非常的便利好用。Keil制定的目标代码效率很高,多数编辑代码十分紧凑,更加易于我们使用者理解。相较于汇编,C语言功能更加强大,其结构性,可读性都有着更好的地方,其次,C语言也更加的容易维护,真的是又易学又易用。Keil开发环境界面图:图5.1Keil开发平台图5.2程序下载软件mcuisp软件介绍MCUISP是一款程序下载软件,主要将编译好的程序文件烧录到硬件电路板中运行,使用十分的简便,现如今已经愈发流行,有很多的开发者都会选择使用。MCUISP软件操作界面如下:图5.2MCUISP操作界面图5.3系统程序流程图本设计总体是计划将小车设计拥有三个模式,越障模式、避障模式和遥控模式,通过按键进行模式切换,进入相应模式执行相应子程序完成对应越障,避障和遥控功能。图5.3总体程序图5.4红外遥控模块按下遥控器的2键,智能小车前进;按下遥控器的4键,智能小车左转;按下遥控器的5键,智能小车停止;按下遥控器的6键,智能小车右转。按下遥控器的8键,智能小车后退。主要程序:while(1){ if(Remote_Rdy)//如果接收到红外遥控信号{key=Remote_Process();//读取遥控信号值BEEP=0;delay_ms(50);BEEP=1;switch(key){case0x68://按下0 {;}break; case0x30://按下1 {;}break; case0x18://按下2 {forward();}break;//控制智能小车前进 case0x7A://按下3 {;}break; case0x10://按下4 {left_turn();}break;//控制智能小车向左 case0x38://按下5 {stop();}break;//控制智能小车停止 case0x5A://按下6 {right_turn();}break;//控制智能小车向右 case0x42://按下7 {;}break;case0x4A://按下8{back();}break;//控制智能小车后退 case0x52://按下9 {;}break;}}}}其中相关的一些具体函数:voidBeep_Init(void){RCC->APB2ENR|=1<<3;//使能PORTB时钟GPIOB->CRL&=0XFF0FFFFF;GPIOB->CRL|=0X00300000;//PB5推挽输出GPIOB->ODR|=1<<5;//PB5输出高 }voidMotor_Init(void){RCC->APB2ENR|=1<<2;//使能PORTA接口时钟GPIOA->CRL&=0XFFFFF0FF;GPIOA->CRL|=0X00000300;//PA2推挽输出GPIOA->ODR|=1<<2;//PA2输出高电平 GPIOA->CRL&=0XFFFF0FFF;GPIOA->CRL|=0X00003000;//PA3推挽输出GPIOA->ODR|=1<<3;//PA3输出高电平 GPIOA->CRL&=0XFFF0FFFF;GPIOA->CRL|=0X00030000;//PA4推挽输出GPIOA->ODR|=1<<4;//PA4输出高电平GPIOA->CRL&=0XFF0FFFFF;GPIOA->CRL|=0X00300000;//PA5推挽输出GPIOA->ODR|=1<<5;//PA5输出高电平GPIOA->CRL&=0XF0FFFFFF;GPIOA->CRL|=0X03000000;//PA6推挽输出GPIOA->ODR|=1<<6;//PA6输出高电平 GPIOA->CRL&=0X0FFFFFFF;GPIOA->CRL|=0X30000000;//PA7推挽输出GPIOA->ODR|=1<<7;//PA7输出高电平}voidforward(void)//小车前进控制函数{IN1=1;IN2=0;IN3=1;IN4=0;}voidback(void) //小车后退控制函数{IN1=0;IN2=1;IN3=0;IN4=1;}voidleft_turn(void) //向左转{IN1=1;IN2=0;IN3=0;IN4=0;}voidright_turn(void) //向右转{IN1=0;IN2=0;IN3=1;IN4=0;}voidstop(void) //停车{IN1=0;IN2=0;IN3=0;IN4=0;}voidcircle_left(void) //原地向左转圈{IN1=1;IN2=0;IN3=0;IN4=1;}voidcircle_right(void) //原地向右转圈{IN1=0;IN2=1;IN3=1;IN4=0;}voidleft_moto(void)//左电机调速函数{if(left_pwm){if(pwmval_left<=pwmval_left_init){EN1=1;}else{EN1=0;}if(pwmval_left>=20){pwmval_left=0;}}else{EN1=0;}}voidright_moto(void)//右电机调速函数{if(right_pwm){if(pwmval_right<=pwmval_right_init) {EN2=1;}elseif(pwmval_right>pwmval_right_init){EN2=0;}if(pwmval_right>=20){pwmval_right=0;}}else{EN2=0;}}voidRemote_Init(void){ RCC->APB2ENR|=1<<2;//PA时钟使能 GPIOA->CRL&=0XFFFFFF0F;GPIOA->CRL|=0X00000080; //PA1输入 GPIOA->ODR|=1<<1; //PA.1上拉Ex_NVIC_Config(GPIO_A,1,FTIR);//将line1映射到PA.1,下降沿触发.MY_NVIC_Init(2,1,EXTI1_IRQChannel,2);}u8Pulse_Width_Check(void){u8t=0; while(RDATA){ t++;delay_us(20); if(t==250)returnt;//超时溢出}returnt;} voidEXTI1_IRQHandler(void){u8res=0;u8OK=0;u8RODATA=0;}可以看出当遥控器的2键被按下时,智能小车接到的码值是0x18,智能小车前进;当遥控器的4键被按下时,智能小车接到的码值是0x10,智能小车左转;当遥控器的5键被按下时,智能小车接到的码值是0x38,智能小车停止;当遥控器的6键被按下时,智能小车接到的码值是0x5a,智能小车右转;当遥控器的8键被按下时,智能小车接到的码值是0x4A,智能小车后退。5.5红外避障模块用螺丝刀对电位器进行调节,当电位器被调到比较合适的范围时,我们便可以设定一个特定的距离,只要在这个特定距离之内,LM324放大电路就会反馈0(低电平),从而与之对应的灯就会亮起来;反之只要在这个特定距离之外,LM324就会反馈高电平,这时对应的小灯就会熄灭;然后单片机就会根据反馈的LM324输出的电平状态,实时的判断智能小车周围有没有出现障碍物。如果检测到智能小车前方或后方有障碍物,智能小车作出规避动作,就能实现智能小车的避障运动了。while(1) {if((BZ_LEFT==1)&&(BZ_RIGHT==1))//两边都没有感应到障碍物{forward();}//前进 if((BZ_LEFT==1)&&(BZ_RIGHT==0)) //右边感应到障碍物{delay_ms(3);if((BZ_LEFT==1)&&(BZ_RIGHT==0)){left_turn();} //左转 } if((BZ_RIGHT==1)&&(BZ_LEFT==0))//左边感应到障碍物{delay_ms(3);if((BZ_RIGHT==1)&&(BZ_LEFT==0)){right_turn();} //右转 } } }当BZ_LEFT=1和BZ_RIGHT=1,表明规定的范围内没有障碍物,智能小车继续前进;当BZ_LEFT=1和BZ_RIGHT=0,表明规定的范围内右边检测到障碍物,智能小车向左转进行规避;当BZ_RIGHT=1和BZ_LEFT=0,表明规定的范围内左边检测到障碍物,智能小车向右转进行规避。5.6超声波避障模块超声波的避障功能模块,是本设计实现小车自主避障的主要方式,红外避障模块主要起着辅助避障的功能。因为无论是超声波避障还是红外避障都有着一些缺陷,红外避障受环境光线以及障碍物形状影响太大,而超声波避障又不可避免有盲区以及受环境温度有所影响,综合考虑,本设计为了加大超声波传感器检测范围,加入了一个舵机控制,同时将超声波的避障和红外的避障相结合,以减少外界影响,使避障更加的精准。避障的流图:图5.4避障流图整个设计思路是进入避障模式后,按下电源启动键后小车开始前进,如果前方出现障碍物,小车先后退再停下来,超声波传感器进行检测,探测到前方障碍物距离s,舵机向左转向,检测出前方障碍物距离d1,舵机右转向,检测到前方障碍物距离d2,然后对d1和d2的大小进行比较,当d1大于d2时,小车向左转进行避障,反之向右转进行避障,整个过程红外避障同时进行,只是将触发红外避障的距离设置得比超声波避障的距离小,所以红外避障起着辅助避障的效果。voidprocess(void)//避障处理函数{u8j;u8p; u32S1_temp=0;u32S2_temp=0; LeftOrRight=Left;//舵机转到左边TimeOutCounter=0;for(j=0;j<=9;j++){delay_ms(1000);}Oled_Show();//显示障碍物距离信息S1_temp=JuLi;//小车左边障碍物距离存在变量S1_temp中LeftOrRight=Right;//舵机转到右边TimeOutCounter=0;for(j=0;j<=13;j++){delay_ms(1000);}Oled_Show();//显示障碍物距离信息S2_temp=JuLi; //小车右边障碍物距离存在变量S2_temp中 LeftOrRight=Stop;//舵机回到中间TimeOutCounter=0;for(j=0;j<=9;j++){delay_ms(1000);}if((S1_temp<=200)||(S2_temp<=200))//如果超声波模块监测测得小车左边或小车右边障碍物的距离小于20厘米{back(); //小车后退for(p=0;p<=10;p++){delay_ms(1000);}}else{back(); //小车后退for(p=0;p<=8;p++){delay_ms(1000);}}stop();//小车停下for(p=0;p<=2;p++){delay_ms(1000);} if(S1_temp>S2_temp) //如果左边障碍物离小车远{circle_l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供应链核心劳务派遣合同
- 供应链跨境审计合同
- 文化传媒整体审计合同
- 浙江工业大学之江学院《海洋地质学B》2026-2027学年第一学期期末试卷含解析
- 2027年环保营地垃圾处理长期合同三篇
- 2026年家长学校家长测试题及答案
- 2026年晶体常识测试题及答案
- 2026年爱不爱一个人的测试题及答案
- 吉林省吉林市龙潭区吉化第六中学校2025-2026学年下学期期末质量检测 七年级 生物试题(文字版含答案)
- 甘肃省临洮中学2025年-2026年高二下学期期末考试英语试题(二)(文字版含答案)
- DB51∕T 2431-2017 汽车客运站建设规程
- 模型34 旋转-费马点模型-原卷版
- JGJ6-2011 高层建筑筏形与箱形基础技术规范
- 四等水准测量自动生成表格
- 2023年中国中医科学院广安门医院专项招聘医学类人员及高层次卫技人才考试历年高频考点试题含答案解析
- 工作场所安全使用化学品规定
- 9 日月明公开课一等奖市优质课赛课获奖课件
- DiGiCo-SD-系列软件说明书
- 《大道之行也》比较阅读12篇(历年中考语文文言文阅读试题汇编)(含答案与翻译)(截至2020年)
- GA 1815.8-2023交通运输系统反恐怖防范要求第8部分:公路隧道
- 化工设计概论第八章向非工艺专业提供设计条件
评论
0/150
提交评论