资源描述
毕业设计题 目: 基于单片机的扫地机器人的设计副 标 题:学 生 姓 名:所在系、专业: 班 级:指 导 教 师:日 期:AbstractI摘 要本文主要设计并制作一个简易扫地机器人。本扫地机器人具有自动清扫、自动充电、防撞、防跌落的功能。本文介绍了扫地机器人系统的总体的设计方案,它主要由MCU 主控电路、防撞电路、防跌落电路、电压检测电路、稳压电路和充电位检测电路组成。它 完 全 解 放 了 人 民 的 双 手 , 能 够 全 自 动 的 完 成 清 扫 工 作 , 当 电 量 不 足 时 , 自 动寻 到 充 电 座 , 进 行 充 电 , 充 满 后 继 续 工 作 本机采用 stc89c52 单片机为核心控制器件,虽然它的是一个入门级的单片机,但成本低,效率高,编写程序简单等优点,在市场上还是有很好的应用前景。关键字:扫地机器人;壁障;stc89c52 单片机摘要IIAbstractIn this paper, the design and implementation of a simple cleaning robot. The sweeping robot with automatic cleaning, automatic charging, anti-collision, anti drop function. This paper introduces the design scheme of the overall cleaning robot system, which mainly consists of MCU main control circuit, protection circuit, fall protection circuit, voltage detection circuit, voltage stabilizing circuit and a charging position detection circuit. It is completely liberated peoples hands, and can automatically complete the cleaning work, when electricity shortage, automatically find charging, charging, full continue to work the machine adopts STC89C52 microcontroller as the core control device, although it is an entry-level microcontroller, but low cost, high efficiency advantages, writing the program is simple, and has good application prospect in the market.Keywords:Sweeping robot,barrier, STC89C52目 录III目 录摘 要 .IAbstractII目 录 .III1、概述 11.1 国内产品研究背景 11.2 研究的目的和意义 11.3 课题的要内容 11.3.1 扫地机器人功能 11.3.2 性能指标 21.3.3 论文的主要内容 22、电路设计、理论分析与计算 32.1 电源电路设计 32.1.1 电路原理 32.2 总控制电路 42.2.1 STC89C52 单片机简介 .42.2.2 总控制电路的设计 62.3 防跌落电路 82.4 防撞落电路 .102.5 电源电压检测电路 .102.6 电池充电电路 .112.6.1 电池充电电路设计 .112.7 电机驱动电路 .122.7.1 电机的选择 .122.7.2 电机驱动电路设计 .133、PCB 板的设计与制作 .163.1 PCB 板的设计 .163.2 PCB 板的制作 .174、电路焊接与调试 .204.1 电路焊接 .204.2 防撞电路的调试 .204.3 防跌电路的调试 .205、系统程序的设计 .215.1 C 语言与汇编语言的优缺点 .215.2 系统程序设计 .215.2.1 程序的初始化 .215.2.2 主程序的设计 .215.2.3 防撞程序的设计 .225.2.3 防跌落程序的设计 .235.2.4 充电寻迹程序的设计 .246、外壳制作 .266.1 有机玻璃的特性 .266.1 底板制作 .266.2 边框制作 .276.3 储灰盒制作 .287、整机调试与功能介绍 .297.1 存在的问题与解决方案 297.2 系统缺陷 307.2.1 传感器缺陷 .307.2.2 电池缺陷 .307.2.3 吸尘器功率缺陷 .30目录IV7.3 功能说明 .308、总结 .31致 谢 32参考文献 33附 录 3411、概述1.1 国内产品研究背景在国内的一些大学、如哈尔滨工业大学、华南理工大学、上海交通大学等单位也对清洁机器人进行了大量的研究并取得了一成果,对清扫机器人相关技术如机器感知、机器人导航和定位与路径规划、机器人控制、电源与电源管理、动力 驱动等技术的研究则更多,这些都为清洁机器人的研究开发和推广奠定了物质基础和技术基础。哈尔滨工业大学于 90 年代开始致力于这方面的亚久,与香港中文大学合作,联合研制开发出一种全方位移动清扫机器人。该机器人具有如下特点:采用全放位移动技术,使机器人可执行对狭窄区域等死区的清扫任务;采用开放式机器人铰制结构,实现硬件可扩展,软件可移植、可继承,使机器人作为服务载体具有更好的功能适应性;在拥挤环境下的实时避障功能能更好地适应不断变化的清扫工作环境;遥控操作和自主运动两种运动方式;吸尘机构可实现吸尘腔路的自动转换,提高了吸尘效率。浙江大学l999 年初在浙江大学机械电子研究所开始进行智能吸尘机器人的研究,两年后设计成功国内第一个左右初步朱能的自主吸尘机器人,这种智能吸尘机器人工作时,首先进行环境学习;利用超声波传感器测距,与墙保持一定距离行走, 在清洁这角落的同时获得房间的尺寸信息,从而决定清扫时间;之后,利用随机和局部遍历规划相结合的策略产生高效的清扫路径;清扫结束以后,自行回到充电座补充电力。吸尘机器人在 5.53.5m2 的实际家庭环境中,工作 10 分钟可以达到 90以上的覆盖率。更大房间的清扫试验还没有进行。目前,系统正在引入机器视觉和全局定位功能,力图在多房间环境下,提高自定位能力、 智能决策能力以及回归充电效率,最终提高清扫效率。1.2 研究的目的和意义 吸尘机器人将移动机器人技术和吸尘器技术有机地融台起来,实现室内环境(地面)的半自动或全自动清洁,替代传统繁重的人工清洁工作近年来已受到国内外的研究人员重视。作为智能移动机器人的一个特殊应用,从技术方面讲,智能化自王式吸尘器比较具体地体现了移动机器人的多项关键技术,具有较强的代 表性。性市场前景角度讲,自主吸尘器将大大降低劳动强度、提高劳动效率,适用于家庭和公共场馆的室内清洁。因此,开发自主智能吸尘器既具有科研上的挑 战性,又具有广阔的市场前景。融合现代传感器以及机器人领域的关键技术,本课题旨在开发一部价格便 宜,全区域盖,能够充分满足家庭需求且方便适用的智能家鹿清扫机器人。使它可以替代传统的家庭人工清扫方式,使家庭生活电气化、智能化、使科技更好地 为人类服务。1.3 课题的要内容1.3.1 扫地机器人功能(1)自动清扫(2)壁障(3)防撞基于单片机的扫地机的设计2(4)自动充电(5)虚拟墙1.3.2 性能指标(1)输入电压:13V15V(2)输入电流:1A(3)运行速度:10m/min(4)最大工作时间 30min1.3.3 论文的主要内容第一部分主要介绍课题的背景,研究的目的与意义。第二部分详细说明了扫地机器人各部分电路的设计。第三部分详细描述了 PCB 板的设计流程。第四部分详细描述了焊接工艺和部分电路的调试。第五部分详细说明了系统软件设计,并给出详细的流程图。第六部分详细介绍了扫地机的外壳制作过程。第七部分对扫地机的整机装配及调试进行了详细的说明。第八部分设计总结。32、电路设计、理论分析与计算2.1 电源电路设计电源的好坏决定了整个电路的稳定性,输出波纹越平滑,性能越好。本电源采用两块 LM7805 作为稳压电源,一块为控制电路和传感器电路供电,另一块单独为电机供电。分开供电这样做的好处,有利于减小干扰,提高系统稳定性。LM7805 是国家半导体开发出来比较成熟,较早的一种线性稳压半导体器件,通常采用 TO-220 封装,具有短路保护、过流保护、高温保护等保护措施,同时只要用到很少的元件就能输出稳定的 5V 电压,最大输出电流能达到 1.5A。外形如图 2-1 所示。1管脚为输入端,2 管脚为地,3 管脚为输出.图 2-1 封装图2.1.1 电路原理 由于后级电路需要 1A 左右的大电流用于驱动各类电机,查找后发现 E13003 完全满足这要求,集电极最大允许电流 ICM 可以到达 1.5A。由于 13003 开关管需要较大的驱动电流,因此增加了一个 Q1 三极管与其构成达林顿驱动管,Q3 为控制管,当 DY 引脚为低电平同时总开关 K1 闭合时电源部分才能正常供电。DY 为高电平时电机供电部分停止工作。U4 单独为两个减速电机和边刷提供 5V 电源,由于需要输出较大的电流,输入压降又比较大,因此在输入端加了一个分压电阻,降低 U4 上的电压,从而降低管耗。U5 为 MCU 和传感器电路提供稳定的 5V 工作电压。在正常开机后连续保持输出。电源电路如图 2-2 所示。基于单片机的扫地机的设计4Vin1G ND2Vout3U47805C116V/220uFC716V/470uFC3104BAT+R393.6DJ5VVin1G ND2Vout3U57805C216V/220uFC816V/470uFC41045V12J1Q213003Q1S8050F12ADY12V12VBAT+12K1R?22KQ38050图 2-2 电源电路2.2 总控制电路2.2.1 STC89C52单片机简介STC89C52 是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。STC89C52 使用经典的 MCS-51 内核,但做了很多的改进使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k 字节 Flash,512 字节 RAM, 32 位 I/O 口线,看门狗定时器,内置 4KB EEPROM,MAX810 复位电路,3 个 16 位定时器/计数器,4 个外部中断,一个 7 向量 4 级中断结构(兼容传统 51 的 5 向量 2 级中断结构) ,全双工串行口。另外 STC89C52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。1)特性1 8K 字节程序存储空间。2 512 字节数据存储空间。3 内带 2K 字节 EEPROM 存储空间。4 可直接使用串口下载。2)参数1 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可以任意 选择,指令代码完全兼容传统 8051,工作电压:5.5V3.3V。2 工作频率范围:040MHz,相当于普通 8051 的 080MHz,实际工作 频率可达548MHz。用户应用程序空间为 8K 字节。3 片上集成 512 字节 RAM。4 通用 I/O 口(32 个) ,复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。5 ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片。6 具有 EEPROM 功能。7 共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2。8 外部中断 4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒。9 通用异步串行口(UART) ,还可用定时器软件实现多个 UART。10 工作温度范围:-40+85(工业级)/075(商业级) 。11 PDIP 封装。3) 引脚介绍STC89C52 有 PDIP、PLCC、TQFP 三种封装方式,其中最常见的就是采用 40Pin 封装的双列直封装,外形结构下图。芯片共有 40 个引脚,引脚的排列顺序为从靠芯片的缺口(如图 2-3)左边那列引脚逆时针数起,依次为 1、2、3、4。 。 。40,其中芯片的 1 脚顶上有个凹点。在单片机的 40 个引脚中,电源引脚 2 根,外接晶体振荡器引脚 2 根,控制引脚 4 根以及 4 组 8位可编程 I/O 引脚 32 根。VCC(Pin40):电源输入,接5V 电源GND(Pin20):接地线XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端RST/VPP(Pin9):复位引脚,引脚上出现 2 个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。 STC89C5 单片机有 4 组 8 位的可编程 I/O 口,分别位 P0、P1、P2、P3 口,每个口有 8 位(8 根引脚) ,共 32 根。每一根引脚都可以编程,比如用来控制电机、交通灯、霓虹灯等,开发产品时就是利用这些可编程引脚来实现我们想要的功能,尽情发挥你的想象力吧,实现你想要的:) 强大无比。 。 。PO 口(Pin39Pin32):8 位双向 I/O 口线,名称为 P0.0P0.7P1 口(Pin1Pin8):8 位准双向 I/O 口线,名称为 P1.0P1.7 P2 口(Pin21Pin28):8 位准双向 I/O 口线,名称为 P2.0P2.7 基于单片机的扫地机的设计6P3 口(Pin10Pin17):8 位准双向 I/O 口线,名称为 P3.0P3.7上面就是 STC89C5 单片机引脚的简单介绍,其它 51 系列家族的单片机8031、8051、89C51 等引脚和 89S51 兼容,只是个别引脚功能定义不同。如图 5-3 为51 单片机的引脚分布图。图 2-3 51 单片机引脚图2.2.2 总控制电路的设计1)I/O 口定义1 P00、P01、P02、P12、P13、P14 为扫地机器人防撞信号输入引脚;2 P03、P04、P05 为防跌落信号引脚;3 P10 为电机电源控制型号(低电平有效) ;4 P11、P12 为电池电压检测信号输入引脚,P11 为过放检测,P12 为过充检测;5 P23、P24、P24、P26 为充电时位置检测信号输入引脚;6 P34、P35、P35、P35 为电机驱动信号,P34、P35 控制左电机正反转,P35、P35 控制左电机正反转;7 P20 为两边刷电机控制信号;8 P21 为吸尘器电机控制信号;9 P36、P37 为晶振信号输入引脚10 REST 引脚为复位信号输入引脚2)复位电路设计751 单片机高电平复位。以当前使用较多的 STC89 系列单片机来说, ,在复位脚加高电平 2 个机器周期(即 24 个振荡周期)可使单片机复位。复位后,主要特征是各 IO口呈现高电平,程序计数器从零开始执行程序。3)复位方式有两种:1 手动复位:按钮按下,复位引脚得到 VCC 的高电平,单片机复位,按钮松开后,单片机开始工作。2 上电复位:上电后,电容电压不能突变,VCC 通过复位电容给单片机复位脚施加 高电平 5V,同时,通过电阻向电容器反向充电,使复位脚电压逐渐降低。经一定时间后复位脚变为 0V,单片机开始工作。本复位电路采用上电自动复位电路,电阻和电容的阻值根据时间常熟 =RC 求出电阻和电容的阻值分别为 10K 与 10uF。复位电路如图 2-4。晶振电路设计理论上来说,振荡频率越高表示单片机运行速度越快,但同时对存储器的速度和印刷电路板的要求也就越高。如同木桶原理。同时单片机性能的好坏,不仅与 CPU 运算速度有关,而且与存储器的速度、外设速度等都有很大关系。根据数据手册上 STC89 系列单片机最高频率可达到 40MHZ,但频率越高就越不稳定,最终根据数据手册所推荐使用 12MHZ,这以常见的晶振。并联谐振电路对电容的值没有严格要求,但两个电容必须,不然会影响振荡器的稳定、振荡器频率高低、起振快速性等,所以一般 C1、C2 选值 30pF。晶振电路如图 2-4。4)I/O 电路设计P0 口是双向指的是它被用作地址/数据端口时,只有在这个时候,P0 口才处于两个开关管推挽状态,当两个开关管都关闭时,才会出现高阻状态。当 P0 口用于一般I/O 口时,内部接 VCC 的那个开关管是与引脚(端口)脱离联系的,这个时候,只有拉地的那个开关管起作用,P0 口作为输出,是必须外接上拉电阻的,不然就无法输出高电平。因此在 P0 口上加上一个 10K 说的排阻。I/O 口如图 2-4。基于单片机的扫地机的设计8EA/VP31X119X218R ESET9R D17W R16INT012INT113T014T115P1 01P1 12P1 23P1 34P1 45P1 56P1 67P1 78P0 0 39P0 1 38P0 2 37P0 3 36P0 4 35P0 5 34P0 6 33P0 7 32P2 0 21P2 1 22P2 2 23P2 3 24P2 4 25P2 5 26P2 6 27P2 7 28PS EN 29ALE/P 30TXD 11R XD 10VCC 40GND 20U6STC8 9C 52Y112 MC 1030 PC 1130 PX1X2X1 X2R STC 910 uFR 1110 K5VR ST5V1A1B2A2BB S1B S2FJFD1FD2FD3FZ1FZ2FZ35V123456789J145VC 3C 2DYFZ4FZ5FZ6C D1C D2C D3C D4DY2图 2-4 总控制电路2.3 防跌落电路防跌落电路用于检测扫地机器人机身前方是否处于悬空状态,当出于悬空状态时,防跌落电路会发出一个低电平给 CPU,CPU 做出相应的动作来控制两个轮子的电机,使机身始终处于非悬空状态。LM393/339 是高增益,宽频带器件,像大多数比较器一样,如果输出端到输入端有寄生电容而产生耦合,则很容易产生振荡。这种现象仅仅出现在当比较器改变状态时,输出电压过渡的间隙,电源加旁路滤波并不能解决这个问题,标准 PC 板的设计对减小输入输出寄生电容耦合是有助的。减小输入电阻至小于 10K 将减小反馈信号,而且增加甚至很小的正反馈量(滞回 1.010mV)能导致快速转换,使得不可能产生由于寄生电容引起的振荡。除非利用滞后,否则直接插入 IC 并在引脚上加上电阻将引起输入输出在很短的转换周期内振荡,如果输入信号是脉冲波形,并且上升和下降时间相当快,则滞回将不需要。比较器的所有没有用的引脚必须接地。 LM393/339 偏置网络确立了其静态电流与电源电压范围 2.030V 无关。通常电源不需要加旁路电容。差分输入电压可以大于 VCC 并不损坏器件。保护部分必须能阻止9输入电压向负端超过-0.3V。LM393/339 的输出部分是集电极开路,发射极接地的 NPN 输出晶体管,可以用多集电极输出提供。输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上,不受 VCC 端电压值的限制。此输出能作为一个简单的对地 SPS 开路(当不用负载电阻没被运用),输出部分的陷电流被可能得到的驱动和器件的 值所限制。当达到极限电流(16mA)时,输出晶体管将退出而且输出电压将很快上升。输出饱和电压被输出晶体管大约 60ohm 的 SAT 限制。当负载电流很小时,输出晶体管的低失调电压(约 1.0mV)允许输出箝位在零电平。 本电路采用电压比较器来比较光电对管和基准电压信号之间的关系。当光电对管处于悬空状态时,接收管上的阻值加大,此时 R28 上的电压低于基准电压,电压比较器反向输入端电压高于同向输入端,因此输出高电平。当光电对管处于非悬空状态时,接收管上的阻值降低,此时 R28 上的电压高于基准电压,电压比较器反向输入端电压低于同向输入端,因此输出低电平。调节电位器 R34、R37、R38 改变参考电压,可调节光电电头探测的距离。防跌落电路如图 2-5。R3750K5VR910kR191kR3147kR25470R3450K5VR610kR151kR2847kR2247054 2312U3ALM33976 1U3BLM339FD1FD21 2 3J101 2 3J11R3850K5VR1010kR201kR3247kR2647098 14U3CLM339FD31 2 3J13U1VCC123J1VCC图 2-5 防跌落电路基于单片机的扫地机的设计102.4 防撞落电路防撞电路作为扫地机器人的眼睛,用于检测前方是否有障碍物,当前方有障碍物时,相应的探头所连接的电路会发出一个低电平信号给 CPU,CPU 做出相应的动作来控制两个轮子的电机,使机身始终不撞向障碍物。当红外线对管前方无障碍时,红外线接收管上的阻值加大,此时 R27 上的电压低于基准电压,电压比较器反向输入端电压高于同向输入端,因此输出高电平。当红外线对管处于有障碍时,红外线接收管上的阻值降低,此时 R28 上的电压高于基准电压,电压比较器反向输入端电压低于同向输入端,因此输出低电平。调节电位器 R33、R35、R36、R7、R8、R9 改变参考电压,可探测距离。防撞电路如图 2-6。R850KR1110kR141kR547kR2470R750KR1010kR131kR447kR147054 2312U1ALM33976 1U1BLM339123J1123J2R950KR1210kR151kR647kR347098 14U1CLM339123J312345J4CON5VCCVCCVCCVCCR3550K5VR710kR171kR2947kR23470R3350K5VR510kR141kR2747kR2147054 2312U2ALM33976 1U2BLM339FZ1FZ2123J8123J9R3650K5VR810kR181kR3047kR2447098 14U2CLM339FZ3123J12D2D1LED123J2图 2-6 防撞电路2.5 电源电压检测电路电源电压检测电路用于监测电池电压,防止电池过充和过放。当电池充满电后,过充电路会向 CPU 发出一个高电平,提醒 CPU 电池已经充满电,应停止充电。当电池电压不足时,过放电路会向 CPU 发出一个高电平,提醒 CPU 电池已经欠压,需要充电。R41 与 D4 构成 2.4V 的参考电压,调节 R43 可改变过充电压,调节 R42 可改变过放电压。每节镍镉电池充满电后电压为 1.4V,因此设置过充电压为 14V,过放电压设置为11V。电压检测电路如图 2-7。11R414.7KD42.4VBAT+VREFR4250KT1 567U1BLM393VREFT1R410KR131K5VR4350KT232184U1ALM393T2R310KR121K5VC2C3图 2-7 电压检测电路2.6 电池充电电路电池充电电路用于检测充电座的位置和充电提示。当扫地机器人上的红外线接收头接收到充电座发出的红外信号后,向 CPU 发出信号,CPU 控制电机,调节机身位置,进入充电区。当扫地机器人与充电座连接后,会产生一个信号提示 CPU 以开始充电。2.6.1 电池充电电路设计Q1、Q2、Q3、Q4 为红外接收头,用于接受充电座发出的红外信号。当扫地机器人处于欠压状态时,机身经过充电座,红外线接收管接收到充电座发出的红外信号,此接收管所在的电路向 CPU 发出一个高电平,CUP 产生相应的动作。当 4 个接受管都接到红外信号后,表明机身与充电座处于垂直状态,扫地机开始向前前进。当 充电触电与充电座接触 后,会产生一个低电平信号, 发送给 CPU 扫地机已经 充电位置,关闭所有电 机,进入充电状态。防 撞电路电路如图2-8。图 2-8 防撞电路R6 50KR1010kR14 1kR247kR5 50KR910kR13 1kR147k5 423 12U1A LM3397 61U1B LM339R7 50KR1110kR15 1kR347k9 814U1C LM339VCCVCC VCC VCCR8 50KR1210kR16 1kR447k11 1013U1D LM339VCC123456J1 CON6VCC 12J3 CON212J4CON2R18 10KQ1S8050R17 10KD15.1VR19 1K1234567J2 CON7F1 2AD2 IN4007R20 10Q1 Q2 Q3 Q412345J1基于单片机的扫地机的设计122.7 电机驱动电路电机驱动电路用于驱动两路减速电机的正反转、两路边刷和一个吸尘器风机。2.7.1电机的选择1)轮胎减速电机的选择本扫地机器人使用了智能小车专用减速电力,减速比为 48:1 可以带动 500 克的负载。电机如图 2-9 所示,具体参数如表 2-1。图 2-9额定电压 3V 6V 7.2V 9V空载电流 90MA 100MA 110 120MA空载转速 460010% 980010% 1100010% 1480010%负载电流 150MA 160MA 180MA 200MA负载转速 90 转/分 190 转 /分 230 转/分 300 转 /分扭矩 0.4kg.cm 0.8kg.cm 0.1kg.cm 1.2kg.cm表 2-1 减速电机参数2)边刷电机的选择边刷电机用于带动边刷,将扫地机四周的灰尘聚拢至吸尘口,并不需要多大的负载能力,因此选择了一款微型减速电机。电压范围:DC3V-5V;转速 80-130 转/分钟。电机实物如图 2-10 所示。图 2-10133)吸尘器电机的选择吸尘器电机需要较大的功率,5V 电压无法带动较大的功率,因此选择 12V,为吸尘器电机的工作电压。经查找资料后最终选择 12V0.29A 的涡轮离心电机。电机实物图如图 2-11 所示。图 2-112.7.2电机驱动电路设计L9110 是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片 IC 之中,使外围器件成本降低,整机可靠性提高。该芯片有两个 TTL/CMOS 兼容电平的输入,具有良好的抗干扰性;两个输出端能直接驱动电机的正反向运动,它具有较大的电流驱动能力,每通道能通过 750800mA 的持续电流,峰值电流能力可达 1.52.0A; 同时它具有较低的输出饱和压降; 内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动继电器、直流电机、步进电机或开关功率管的使用上安全可靠。L9110 被广泛应用于玩具汽车电机驱动、步进电机驱动和开关功率管等电路上。管脚定义如表 2-2 所示。表 2-2 管脚定义序号 符号 功能1 OA A 路输出管脚2 VCC 电源电压3 VCC 电源电压4 OB B 路输出管脚5 GND 地线6 IA A 路输出管脚7 IB B 路输出管脚8 GND 地线基于单片机的扫地机的设计14电气参数如表 2-3 所示。表 2-3 电气参数范围符号 参数最小 典型 最大单位VCC 电源电压 2.5 6 12 VIdd 静态电流 - 0 2 uAIin 操作电流 200 350 500 uAIC 持续输出电流 750 800 850 mAImax 电流峰值 - 1500 2000 mA逻辑关系如表 2-4 所示。表 2-4 逻辑关系IA IB OA OBH L H LL H L HL L L LH H H H三极管 ss8050 是一种常用的普通三极管。 它是一种低电压,大电流,小信号的 NPN型硅三极管。它是 S8050 的增强版,具体参数见表 2-5。表 2-5参数 符号 测试条件 最小 典型 最大 单位集电极-基级击穿电压 VCBO IC=100uA,IE=0 40 V集电极-发射级击穿电压 VCE0 IC=1mA,IB=0 25 V发射极-基级击穿电压 VEBO IE=100uA,IC=0 5 V集电极截至电流 ICBO VCB=30V,IE=0 200 nA发射机截至电流 IEBO VBE=4V,IC=0 200 nA直流电流增益 hFE VCE=5V,IC=5mA 85 500集电极-发射极饱和电压 VCE(SET) IC=800mA,IB=80mA 0.5 V当 Q3、Q4、Q5 的基级接收到 CPU 的发出的高电平后,Q3、Q4、Q5 饱和导通,边刷和吸尘器电机开始工作。给低电平时,三极管所控制的电机就停止工作。J4、J5 接边刷电机,J6 接吸尘器电机。15当 1A 与 1B 输入引脚为 10 时,电机正转,当输入为 01 时电机反转。当输入为 11或 00 时电机停止运行。C5、C6 为高频滤波电容,过滤掉电机工作时对芯片的干扰,提高系统稳定性。J3接左轮电机,J7 接右轮电机。电机驱动电路如图 2-12。OA1VCC2VCC3OB4GND5IA6IB7GND8U7 L9110H OA1VCC2VCC3OB4GND5IA6IB7GND8U8 L9110H1 2J3 CON2 1 2J7 CON2DJ5VDJ5V1A1B 2A2BC5 104C6 104Q3 SS8050Q4 SS8050Q5 SS80501 2J4 CON21 2J5 CON21 2J6 CON2DJ5V12VBS1BS2FJ图 2-12 电机驱动电路基于单片机的扫地机的设计163、PCB 板的设计与制作3.1 PCB板的设计PROTEL99SE 对于涉及电子方面的大专生而言,是一门必修的科目。学好这门科目就大大缩短了电路板设计的时间,同时具有在线 DRC 检测功能,方便而实用。本次的扫地机器人的设计从原理图到 PCB 的设计都是由该软件制作而成。主电路板包含电源电路、过充/过放检测电路、电机驱动、防跌电路和 3 路防撞电(如图 3-1) 。图 3-1 主板电路红外线充电位置检测电路如图 3-1。图 3-2 红外线检测电路17红外线充电检测电路图与光电对管电路如图 3-3。图 3-3 红外线检测头电路3.2 PCB板的制作1)打印电路将绘制好的电路用菲林纸打印出来,注意一定要负向输出,一般打印两张电路板即一张纸上打印两张电路板。在其中选择打印效果最好的制作线路板。菲林打印效果图如图 3-4 所示。图 3-4 菲林纸负向打印效果图2) PCB 板预处理将打印好的电路板裁剪成合适大小,用砂纸打磨覆铜板,使表面光滑无油渍。然后均匀涂上感光蓝油,等蓝油干燥后,在表面贴上打印好的菲林纸放,在紫外线灯下曝光 6 分钟。去除菲林纸,放在显影剂中显影。预处理后的 PCB 板如图 3-5 所示。基于单片机的扫地机的设计18图 3-5 预处理后的 PCB 板3)腐蚀电路板先检查一下显影后的电路板电路是否完整,若有少数线路不完整可以用黑色油性笔修补。然后就可以腐蚀了,等线路板上暴露的铜膜完全被腐蚀掉时,将线路板从腐蚀液中取出清洗干净,这样一块线路板就腐蚀好了。腐蚀液的成分为浓盐酸、浓双氧水、水,比例为 1:2:3,在配制腐蚀液时,先放水,再加浓盐酸、浓双氧水,若操作时浓盐酸、浓双氧水或腐蚀液不小心溅到皮肤或衣物上要及时用清水清洗,由于要使用强腐蚀性溶液,操作时一定注意安全。腐蚀后的电路板如图 3-6图 3-6 腐蚀后的电路板194)电路板切割与打孔将腐蚀好的电路板用切割机切割掉无用部分。线路板上是要插入电子元件的,所以就要对线路板钻孔了。依据电子元管脚的粗细选择不同的钻针,在使用钻机钻孔时,线路板一定要按稳,钻机速度不能开的过慢,否则会时钻头断裂。打完孔后的电路板如图 3-7 所示。图 3-7 最终成品图基于单片机的扫地机的设计204、电路焊接与调试4.1 电路焊接电路焊接依据从小到大,从低到高的原则进行焊接。在焊接的时候每个焊点焊接时间应该在 23 秒之间,不得超过 4 秒,在焊接芯片的时候应该增加一个 IC 坐,先焊 IC 坐在装 IC,同时得用防静电烙铁,以防静电击穿芯片。焊点要求圆润饱满,成倒锥型,无毛刺、虚焊、假焊。焊点如图 4-1 所示。图 4-1 焊点图4.2 防撞电路的调试依次调节 R7、R8、R9、R33、R35、R36 的阻值使光电探头与障碍物的距离大约在6cm 左右,此时防撞模块会向 CPU 发出相应的高电平。在调试期间发现探头 2 和探头 3 出现问题,不管怎样调节电位器 R7、R8,都无法输出一个高电平信号,跟换红外探头,现象依旧,用万用表分别检测接收管上的电压值,最终发现,电阻阻值不对,跟换电阻后恢复正常。4.3 防跌电路的调试依次调节 R34、R375、R38 的阻值使光电探头检测范围正好与地面的位置相同,此时防跌模块会向发出相应的高电平,当有一个探头离开地面时,相应的输出引脚会输出一个低电平。在调试期间发现探头出现问题,不管怎样调节电位器,输出始终是低平信号,跟换红外探头,问题解决。215、系统程序的设计5.1 C语言与汇编语言的优缺点C 语言编属于高级语言,具有可移植性,能够结构化编程。使用标准 C 语言的程序,几乎都可以不作改变移植到不同的微机平台上,对于嵌入式等的微控制芯片,属于标准 C 语言的部分也很少需要修改,而且程序很容易读懂。C 语言编写程序结构清晰,移植性好,容易维护和修改。汇编语言针对不同的操作系统平台,不同的微控制器,指令都是完全不同的,即使指令相似,也不具有可移植性。但是汇编语言是针对专门的控制器的,所以运行速度可以精确到一个指令周期。汇编语言的程序读懂需要借助微控制器的指令手册以及各个寄存器的说明,所以很难读懂。汇编语言编写代码实时性强,能够直接控制硬件的工作状态,但是不具有可移植性,维护和修改困难。5.2 系统程序设计由于扫地机器人的系统对运行速度的要求并不高,因此选择用 C 语言来进行编程。本系统的软件设计主要由初始化程序、主程序、防撞子程序、防跌落程序子程序、充电寻迹子程序等子程序组成。5.2.1 程序的初始化一般的情况下是在上电的时候程序进行初始化,还有就是程序跑飞和出现异常时也要初始化,初始化的目的就是把所有用到的标志位、变量回到初始值,以及引脚的分配,配置寄存器写入需要的值,像时钟的选择(内部、外部)一般在上电时就做好,以后不是特殊需要是不改动的,引脚功能的分配也是一上来就设置好,之后如果可以就不改动,如果经常性的改可能会引发异常。5.2.2 主程序的设计系统初始化后就执行主程序,进入主程序先执行电压检测程序,如发现电池电压不足,就执行充电寻迹程序,找到充电座后执行充电程序,待电池充满后返回执行主程序。再清扫程序,如发现前方有障碍物,则执行避障程序,避开障碍物后继续执行清扫程序;如发现前方地面为悬空,则执行防跌落程序,避开悬空区后继续执行清扫程序。程序流程图如图 5-1。基于单片机的扫地机的设计22信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信YES信信信信信信信信信信信信信YESNOYESNO信信信信信信信信信信信信NOYES 信信信信图 5-1 主程序流程图5.2.3 防撞程序的设计防撞程序用于控制电机正反转从而确保机身不会撞到障碍物,从障碍物的旁边绕开,当探头 1 前方有障碍物时,机身右转 100ms 后返回壁障程序;探头 2 前方有障碍物时,机身右转 100ms 后返回壁障程序 ;当探头 3 前方有障碍物时,机身反转 100ms 后左转 100ms 壁障程序;当探头 4 前方有障碍物时,机身左转 100ms 后返回壁障程序;当探头 5 前方有障碍物时,机身左转 100ms 后返回壁障程序。程序流程如图 5-2。23信信信信信信信信1信信信信信信信信信信YESNO信信2信信NO信信信信信信信信信信信信信信信信信信信信信信信信YES信信3信信NO信信4信信NOYES信信信信YES信信4信信NOYES信信信信信信信信图 5-2 防撞程序流程图5.2.3 防跌落程序的设计防跌程序当扫地机器人,机身下方出现悬空时,防跌程序起作用,使扫地机器人自动远离悬空区域。探头 1 处于万向轮前方,当前方悬空时,扫地机器人后退 100ms,再向左转 100ms 后返回防跌落程序;探头 2 处于左轮后方,当后方悬空时,扫地机器人前进 100ms,再向右转 100ms 后返回防跌落程序;探头 3 右轮后方,当后方悬空时,扫地机器人前进 100ms,再向左转 100ms 后返回防跌落程序。程序流程如图 5-3 所示。基于单片机的扫地机的设计24信信信信信信信信信信1信信信信2信信YESNOYES信信信信信信信信信信信信信信信信NO信信1信信NOYES信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信信图 5-3 防跌落流程图5.2.4 充电寻迹程序的设计当电池电压处于欠压时,扫地机器人关闭吸尘器与边刷的电机启用充电寻迹程序,在红外线接收头没有收到充电座的红外发射信号时,执行防撞和防跌程序。当接受到信号后立马执行充电循迹程序。此时关闭防撞功能,充电座必须要放在放在没有障碍物的墙边。程序流程图,如图 5-4 所示。
展开阅读全文