stc89c52驱动的小型清扫机器人系统设计







一台能自主规避障碍、边行进边吸尘的小型机器人,设计并实现了一款基于STC89C52单片机的小型清扫机器人系统。系统以STC89C52单片机作为核心控制器,将E18-D80NK红外避障传感器、L298N电机驱动模块、BD681风扇驱动电路与按键输入电路有机整合,最终实现了自动避障与吸尘清扫的联动功能。其工作逻辑清晰而紧凑:按下启动键后小车向前行进;一旦左侧传感器探测到障碍,小车即刻右转,右侧传感器触发则自动左转;转向动作的同时,风扇随之启动完成吸尘;按下停止键后,行进与吸尘同步终止。
硬件设计是这套系统得以稳定运行的物质基础。单片机最小系统由复位电路、时钟电路与电源电路共同构成,为主控芯片提供可靠的工作环境。在感知层,E18-D80NK光电传感器以其3至80厘米可调的检测距离和干净的数字信号输出,为避障决策提供了精准的环境信息。然而,感知到障碍仅是第一步,如何将这一信息转化为有效的执行动作,才是设计的关键所在。在驱动层,BD681达林顿三极管有效弥补了单片机自身驱动能力的不足,使风扇得以可靠运转;L298N双H桥芯片则承担起对两路直流电机的独立转向控制,赋予小车灵活机动的基础能力。正是这种从感知到决策再到执行的完整驱动链路,构成了整个系统的硬件骨架。
软件设计在此基础上为系统注入了行为逻辑。程序采用C语言在Keil环境下编写,以循环扫描机制持续轮询按键与传感器状态,并据此实时调度电机与风扇的工作模式。整体架构遵循模块化原则,主程序之下清晰划分了按键处理、红外避障、电机控制与风扇控制四个功能子程序。这种结构上的解耦,不仅降低了各模块之间的逻辑耦合度,更在实际调试与后续维护中展现出明显的工程价值。
经过硬件调试、软件联调与完整的功能验证,系统各项指标均稳定达到设计要求。低成本、简洁的架构设计使本系统兼具双重意义:作为智能清扫机器人的简易原型,它验证了以最小硬件冗余实现核心功能的可行路径;作为单片机课程设计的典型案例,它将感知、决策与执行三个核心环节浓缩于一个完整且可复现的工程实践之中,这本身便是其超越产品层面的教学价值所在。
关键词:STC89C52;单片机;清扫机器人;红外避障;L298N;电机驱动
A small robot that can autonomously avoid obstacles and vacuum while traveling, designed and implemented a small cleaning robot system based on STC89C52 microcontrollers. The system takes STC89C52 microcontroller as the core controller, and organically integrates the E18-D80NK infrared obstacle avoidance sensor, L298N motor drive module, BD681 fan drive circuit and key input circuit, and finally realizes the linkage function of automatic obstacle avoidance and vacuum cleaning. Its working logic is clear and compact: after pressing the start button, the trolley moves forward; Once the left sensor detects the obstacle, the trolley will immediately turn right, and the right sensor will automatically turn left when triggered; At the same time as the steering action, the fan starts to complete the vacuuming; After pressing the stop button, the travel and vacuuming are terminated synchronously.
Hardware design is the material basis for the stable operation of this system. The smallest system of the microcontroller is composed of a reset circuit, a clock circuit and a power supply circuit, which provides a reliable working environment for the main control chip. At the perception layer, the E18-D80NK photoelectric sensor provides accurate environmental information for obstacle avoidance decision-making with its detection distance adjustable from 3 to 80 cm and clean digital signal output. However, perceiving obstacles is only the first step, and how to translate this information into effective execution actions is the key to design. At the drive layer, the BD681 Darlington triode effectively makes up for the lack of the microcontroller's own driving ability, so that the fan can operate reliably. The L298N dual H-axle chip assumes independent steering control of the two DC motors, giving the trolley the basic ability to be flexible and maneuverable. It is this complete drive link from perception to decision-making to execution that forms the hardware skeleton of the entire system.
The software design injects behavioral logic into the system on this basis. The program is written in C language in Keil environment, and the key and sensor status are continuously polled by the cyclic scanning mechanism, and the working mode of the motor and fan is scheduled in real time. The overall architecture follows the principle of modularity, and the main program is clearly divided into four functional subprograms: button processing, infrared obstacle avoidance, motor control and fan control. This structural decoupling not only reduces the logical coupling between modules, but also shows obvious engineering value in actual debugging and subsequent maintenance.
After hardware debugging, software joint debugging and complete functional verification, all indicators of the system have stably met the design requirements. The low-cost, simple architecture design makes the system dual: as a simple prototype of the intelligent cleaning robot, it validates a feasible path to achieve core functions with minimal hardware redundancy; As a typical case of microcontroller course design, it condenses the three core links of perception, decision-making and execution into a complete and reproducible engineering practice, which in itself is its teaching value beyond the product level.
Key words: STC89C52; Microcontroller; Sweeping Robot; Infrared Obstacle Avoidance; L298N; Motor Drive
目 录
1 绪论
1.1 研究背景
随着科学技术的不断发展和人们生活水平的不断提高,先进科技已经以一种无可抵挡之势走进千家万户,而智能家居产品也以前所未有的速度在普通家庭出现,智能家居产品目击目击目击目击益增多,扫地机器人使人们从繁琐的打扫地面卫生中解放出来,深受消费者欢迎。现在的扫地机器人越来越先进,拥有的功能越来越多,有路径规划,自动回充,虚拟墙,app遥控等,这类产品都是采用高性能处理器和控制芯片,结构复杂,成本高,不适宜初学者和电子爱好者理解与掌握其工作原理。单片机是电子信息类专业重要的技术基础课,广泛应用于工业控制、智能仪表、消费电子等领域。stc89c52单片机属于经典的51单片机,结构简单、指令系统完善、有成熟的开发工具、成本低,常用于高校教学和电子设计竞赛中常用的控制芯片。通过基于stc89c52单片机的项目开发,可帮助学习者掌握单片机的工作原理、接口技术、程序设计方法,为后续学习更复杂的嵌入式系统打下基础。鉴于扫地机器人产品先进且成本高,初学者不易理解其工作原理,单片机课程设计要求所设计项目具有相对明确的功能和结构,成本低,易于控制。
因此本设计选择stc89c52单片机为核心控制芯片,通过连接红外避障传感器模块、直流电机驱动模块、风扇驱动电路,设计一款功能明确、结构简单、成本低的小型清扫机器人系统,既可以作为智能清扫机器人的简易版本,又可以作为单片机课程设计的案例,具有实用性和教学参考价值。
1.2 系统功能概述
系统由stc89c52单片机、2个红外避障模块、2个按键、风扇驱动模块、l298n电机驱动模块和电池盒供电构成。系统工作流程如下:按下启动键后,小车开始向前行驶;当左侧的红外避障模块接收到障碍物反射回来的红外线时,小车右转,当右侧的红外避障模块接收到障碍物反射回来的红外线时,小车左转,在小车转向时,风扇驱动模块驱动风扇转动进行吸尘;按下停止按键后,小车停止行驶,风扇停止转动。单片机控制各模块协同工作,实现自动避障吸尘清扫的目的。
1.3 主要研究内容
本论文的主要内容如下:系统总体方案设计,确定了系统的功能需求以及实现方式,系统硬件模块和软件模块的划分;接着进行了硬件电路设计,包括stc89c52单片机最小系统电路、按键电路、红外避障传感器接口电路、风扇驱动电路、l298n电机驱动电路的设计与实现;然后进行了软件程序设计,在keil开发环境下使用c语言编写了主程序及相关子程序模块,实现了避障判断、电机控制和风扇启停等功能;最后进行了系统调试与功能验证,对系统功能进行测试,看是否满足设计要求,对测试结果进行分析。
第二章 系统总体设计
2.1 系统功能要求
要求该系统具备自动避障、吸尘的功能,是一个迷你型的扫地机器人。上电后待机;启动键,小车开始工作,进行避障;小车运行,左右两只红外避障器不断检测前方是否有障碍物;kp1左侧传感器检测到障碍物,系统判断左侧有障碍,小车向右转弯;kp2右侧传感器检测到障碍物,系统判断右侧有障碍,小车向左转弯;小车转弯同时启动风机电机开始吸尘;停止键,小车停止,风扇停转;快速响应,运行稳定,功耗低。
2.2 系统组成结构
根据功能要求,本系统由以下几个部分组成:
(1)控制核心模块:采用STC89C52单片机,负责接收输入信号、进行逻辑判断、输出控制信号。单片机最小系统包括复位电路、时钟电路和电源电路,确保单片机能够正常工作。
(2)输入模块:包括2路红外避障传感器和2路按键。红外避障传感器用于检测前方是否有障碍物,输出数字信号给单片机;按键用于输入启动和停止指令,实现人机交互。
(3)输出模块:包括L298N电机驱动模块和BD681风扇驱动模块。电机驱动模块控制两个直流电机的正转、反转和停止,实现小车的前进、左转和右转;风扇驱动模块控制吸尘风扇的启停。
(4)电源模块:由电池盒供电,为单片机、传感器、驱动模块等提供稳定的工作电压。各模块的工作电压均为5V,便于统一供电。
系统框图如图2-1所示,清晰地展示了各模块之间的连接关系和信号流向。
图2-1 系统框图
2.3 系统工作流程
初始化程序: 开机后单片机初始化,包括初始化io口、定时器等,然后单片机进入等待状态。按键检测程序: 单片机循环检测启动键和停止键,若启动键被按下,则进入运行程序;若停止键被按下,则单片机进入停止程序。运行程序: 单片机反复检测两个红外避障接收器的输出电平,根据输入信号控制小车前进后退以及风扇的转动。若左侧接收器检测到障碍物,则反向驱动电机使小车右转并启动风扇;若右侧接收器检测到障碍物,则反向驱动电机使小车左转并启动风扇;若两个接收器都没有检测到障碍物,则正向驱动电机使小车前进并关闭风扇。停止程序: 反向驱动电机使小车停止运动,风扇停止转动。单片机回到等待状态,等待下次启动。
第三章 硬件系统设计
3.1 STC89C52单片机核心电路设计
stc89c52rc是stc专门为需要低功耗、高性能cmos8位微控制器,系统可编程flash存贮器。stc89c52是具有传统mcs-51兼容性的低功耗,高性能cmos8位单片机。在单芯片上,包括了8位cpu,8k字节可编程flash快擦写存储器,是传统51不具备的。stc89c52在单芯片上把具有8位cpu和在系统可编程flash存贮器结合在一起,为众多嵌入式控制应用系统提供了高灵活,高经济性的解决方案。
stc89c52主要特征: 8k字节flash程序存储器 512字节ram数据存储器 32位i/o口线 看门狗定时器 内置4kb eeprom max810复位电路 3个16位定时器计数器 4个外部中断 一个7向量4级中断结构 全双工串行口。stc89c52允许逻辑操作和掉电运行。stc89c52通过内部振荡器在0hz和高于fosc12t周期内部逻辑操作。stc89c52支持2种软件可选节电模式: 空闲模式: cpu停机,而ram和定时器计数器pwm,串行口及中断系统仍旧工作。掉电保护方式: ram保存,振荡器停止振荡,单片机一切停止工作,直到下一个中断或硬件复位。stc89c52最高运作频率35m,6t12t可选。
stc89c52的特点: 8k字节的程序空间;512字节的数据空间;内置4k字节eeprom;可以通过串口直接下载程序。主要参数: 增强型8051单片机,6或12clock唯机器周期,指令与传统8051指令代码兼容,工作电压范围5.5v~3.3v,工作频率0~40mhz,通用io口32个,上电后p1p2p3口是准双向口,弱上拉,p0口是漏极开路输出,具有ispiap功能,可以通过串口直接下载用户程序,16位定时器计数器共有3个,外部中断4路。工作温度范围: -40~+85℃。
STC89C52单片机相关引脚说明如下:VCC为供电电压引脚,GND为接地引脚;P3.0为RXD串行输入口,P3.1为TXD串行输出口;P3.2为/INT0外部中断0,P3.3为/INT1外部中断1;P3.4为T0记时器0外部输入,P3.5为T1记时器1外部输入;P3.6为/WR外部数据存储器写选通,P3.7为/RD外部数据存储器读选通;RST为复位输入引脚,当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间;ALE/PROG为地址锁存允许输出;/PSEN为外部程序存储器的选通信号;/EA/VPP为外部程序存储器允许引脚;XTAL1和XTAL2为晶振输入输出引脚。单片机引脚图如图3-1所示。
图3-1 STC89C52单片机引脚图
stc89c52单片机的最小系统由三部分组成,复位电路、时钟电路、电源电路,只要有了这三部分,单片机就可以工作了。复位电路由按键s1、电解电容ec1、电阻r1组成,具有手动按键复位和上电自动复位,系统上电复位按键接口采集到两个高端信号后进行手动复位;当系统检测到的电压由低电平上升到高电平的一段时间后,系统通过电阻与接地之间形成一条通路,自动把高电平进行拉低,实现上电自动复位。时钟电路由振荡器y1、瓷片电容c1和c2,我们有了需要单片机自动发出系统时间,让控制芯片正常工作。给控制芯片正常工作的时钟信号,一般把这种工作方式称为"拍",为了让控制系统能正常工作,提高工作能力,采用11.0592mhz晶振和30pf的电容进行组合,电容帮助晶振起振,满足数字控制器正常工作。单片机最小系统原理图如图3-2所示。
图3-2 单片机最小系统原理图
3.2 按键电路设计
轻触按键与按键产品 轻触按键是按键的一种。一般可以把它当作电子开关,轻轻一压,开关接通,松开即断开。其主要原理就是轻触按键内的金属弹片受力弹动而达到接通与断开。在系统中,轻触按键是系统的输入,是人机交互的枢纽。 按键电路原理 按键的一端接地,另一端接单片机的io口,然后在io口和vcc之间接上一个上拉电阻。当按键没有按下时,单片机的io口通过上拉电阻连接到vcc,因此单片机接到的输入信号为高电平;当按键按下时,io口通过按键接地,因此单片机接到的输入信号为低电平。单片机是通过检测io口的电平来判断按键是否被按下的。 软件去抖动 由于按键在按下和释放时都存在机械抖动,因此电平会在短时间内变化数次,如果不进行处理单片机就会误判为按键多次动作。软件去抖动最简单的方法就是,在检测到电平变化后,延时20ms左右再重新检测,如果此时还是有效电平,则确认按键动作。
本系统设计了两个按键:一个用于启动系统,一个用于停止系统。按键的单片机控制引脚默认为高电平,当按键按下后,单片机的相关引脚则变成低电平,进而实现对系统的手动输入。按键电路原理图如图3-3所示。
图3-3 按键电路原理图
3.3 BD681风扇驱动电路设计
散热风扇其原理是: ①电能转化为电磁能;②电磁能转化为机械能;③机械能转化为动能,使风扇叶片旋转。
风扇工作电流比较大,一般在100ma以上,而单片机io口的驱动能力较弱,标准51的io口的驱动能力只有几毫安,直接用单片机驱动风扇是不行的,必须加电流放大电路才能驱动风扇。
本系统采用bd681达林顿三极管来驱动风扇。达林顿三极管是用两个三极管复合而成,有极大的电流放大倍数,可用小的基极电流控制大的集电极电流。电路连接如图所示:风扇的一端连接vcc,另一端连接三极管的集电极;三极管的发射极接地;三极管的基极通过一个限流电阻连接到单片机的控制口。
当单片机的控制口输出高电平时,三极管基极得到正向偏置电流后导通,风扇的电流形成回路,风扇开始转动。当单片机的控制口输出低电平时,三极管基极无偏置电流,三极管截止,风扇停止转动。电阻r为限流电阻,其作用是:限制基极电流,保护三极管。若单片机控制口为高电平时,没有限流电阻,过大的基极电流会把三极管烧毁。限流电阻把基极电流限制在一定范围内,保证三极管可靠工作。
这种驱动电路结构简单、成本低廉、可靠性高,适用于开关控制方式的直流风扇驱动。风扇驱动电路原理图如图3-4所示。
图3-4 风扇驱动电路原理图
3.4 E18-D80NK红外避障传感器模块设计
E18-D80NK-N发射和接收合一的光电传感器,发射光经调制发出,接收头解调接收反射回来的光输出。因为采用调制解的工作方式,所以能避免干扰可见光,提高抗干扰能力。由于透镜的应用,使传感器的光线更加集中,距离更远,最长能检测80厘米处的物体。但由于是利用红外光特性,不同颜色的物体反射红外光的系数不同,因此能检测的最大距离也不同,白色反射系数最大,检测距离最远,黑色吸收红外光最多,检测距离最短。
检测障碍物的距离可以根据要求通过尾部电位器旋钮调节。顺时针调节电位器,检测距离延长;逆时针调节电位器,检测距离缩短。用户可以根据要求设定合适检测距离。传感器探测距离远,受可见光干扰小、价格便宜、容易装配、使用方便,被广泛应用在机器人检测障碍避障、流水线计件等场合。
模块参数说明如下:工作电压5VDC,工作电流10-15mA,驱动电流100mA,感应距离3-80CM可调,响应时间小于2ms,检测物体包括透明或不透明体,工作环境温度-25℃~+55℃,外壳材料为塑料。输出类型为NPN常开型,即正常情况下输出高电平,当检测到前方有遮挡物时输出低电平。
模块接口说明如下:棕色线为电源正极,外接5V电压;蓝色线为电源负极,外接GND;黑色线为信号输出线,数字量输出接口,输出0和1电平信号。这种三线制接口设计简单明了,便于与单片机连接。E18红外避障传感器模块接口原理图如图3-5所示。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)