基于51单片机智能扫地吸尘小车红外避障机器人风扇吸尘设计

摘 要

自动扫地机器人,是一种智能扫地、吸尘工具,是一种配备了微电脑系统的电动保洁设备,它能按照人们的设置清洁某一空间的某一特定部分或全部。扫地机器人是服务机器人的一种,可以代替人进行清扫房间、车间、墙壁等。提出一种移动型清洁机器人的设计方案。其具有实用价值。清洁机器人的主要任务是能够代替人进行清扫工作,因此需要有一定的智能。
本设计了以ST公司的STC89C52单片机为核心的智能扫地车,其具有避障和自动扫地三大功能,本文介绍了避障及扫地的智能车的硬件组成及工作原理,即利用红外传感器控制电动小汽车的自动,通过红线避障传感器探测障碍,从而控制电机转向,实现进行避障功能,同时给出了软件流程图,设计并实现了智能车的软件程序,利用结构化的分析与设计方法,采用瀑布模型的开发流程,完成了整个系统的概要设计、详细设计、实现以及测试工作,设计工作采用软件工程的思想,各个模块耦合度低,模块内聚性高。完成后的软件作品能够实现智能车的避障。

关键字:单片机;电源电路;红外传感器;软件设计。

2.方案的设计与论证

2.1 控制方案的确定
方案一
采用可编程逻辑器件CPLD作为控制器,CPLD可以实现各种复杂的功能、规模大、密度高、体积小、稳定性高、I/O资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。且从使用及经济的角度考虑,最终放弃了此方案。
方案二
采用ST公司的STC89C52单片机作为主控制器,STC89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程 Flash 存储器。该单片机功耗低、接口丰富,成本低廉,完全能满足本设计要求。
方案三
采用单片机芯片控制MSP430单片机是美国德州仪器(TI)推出的一种16位超低功 耗的混合信号处理器(Mixed Signal Processor),主要是针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”混合信号处理的解决方案。MSP430F149是一个16位的、具有精简指令集的、超低功耗的混合型单片机,具有可靠性高、功耗低、扩展灵活、体积小、价格低和使用方便等优点,广泛应用于仪器仪表、专用设备智能化管理及过程控制等领域,有效地提高了控制质量与经济效益,已成为众多单片机系列中一颗耀眼的新星。然而其成本太高,故舍弃。
故选择方案二。

3.硬件电路的设计

3.1 系统功能分析和硬件框图
本系统由STC89C52单片机、2路红外避障模块、2路按键、风扇驱动、L298N电机驱动及电池盒供电组成。
1、按下启动按键后,小车左侧的红外避障传感器模块检测到有障碍物,则智能车右拐;小车右侧的红外避障传感器模块检测到有障碍物,则智能车左拐,同时,风扇转动吸尘;
2、按下停止按键后,小车停止转动,同时,风扇停止转动。
图3-1是其系统框图:

图3-1系统框图

3.2STC89C52单片机核心电路设计
STC89C52RC是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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

4.软件系统设计

4.1 编程语言选择
由于整个程序比较复杂,且计算量较大,用到了较多的浮点数计算,所以程序的编写采用了C语言。
对于大多数的单片机,使用C语言这样的高级语言与使用汇编语言相比具有如下优点:
不需要了解处理器的指令集,也不必了解存储器结构。
寄存器分配和寻址方式由编译器进行管理,编程时不需要考虑存储器的地址和数据类型等细节。
指定操作的变量选择组合提高了程序的可读性。
可使用与人的思维更相近的关键字和操作函数。
与使用汇编语言相比,程序的开发和调试时间大大缩短。
C语言的库文件提供了许多标准的例程。
通过C语言可实现模块化编程技术,从而可将已编制好的程序加到 新程序中。
(8)C语言可移植性好且非常普及,C语言编译器几乎适用于所有的目标系统,己完成的项目可以很容易的转换到其它的处理器或环境中与汇编语言相比,C语言在功能上、结构性、可读性、可移植性、可维护性上有明显的优势,易学易用。
4.2 keil软件设计思想
KEIL软件是单片机开发者广泛使用的开发工具的,简单的单片内形都是使用这种开发软件的,可以降低开发周期,从而减少很多成本,因此广泛受到开发者的欢迎和使用。在使用汇编语言,然后用KEIL软件开发,实现更深刻的。 KEIL软件提供了一个丰富的使用环境和调用的子程序,在全体的打开窗口中。还有一个重要因素就是。我们多看看编程器是如何生存程序序言的,使得使用者可以体会到其中的乐趣的,感觉到此KEIL软件会非常的好用的,越来越受到广大使用者的欢迎的。其中追要由它大多数代码都是集成的,调用很方便的,那些初学者也会感觉很好用的,起点水平不需要太高的。在开发大型软件,以更好地反映高语言的优势。以下的细节KEIL软件开发系统和使用的各个部分的功能。
4.3 主函数程序流程图
本系统设计主要采用keil软件编写与调试程序,程序语言采取易读性和移植性更高的C语言编写。系统运行主程序流程图如下图所示。

主函数流程图

5.系统调试

5.1 电路焊接
手工焊接是常用原始的焊接方法,目前大量工厂焊接的生产基本上不采用原始方法了,但是普通元器件的修理、系统测试中经常使用原始的手工焊接。重要的是如焊接本质上出现问题,则会影响到整个控制系统的,可以这么说,焊接的会导致这个控制系统可不可以用的。手工焊接主要有如下四步组成的:
第一步开始焊接:
需要把需要焊接的地方打扫干净,主要去处油迹和灰尘,然后把需要焊接的元器件的两个角向一定的方向掰一掰,注意不能把元器件的脚相交在一起了,这样会影响焊接的。接下来让电烙铁头碰到需要焊接的元器件脚下,放上焊锡丝。此处需要注意的是,不能让烙铁头碰到其它元器件的脚了,要不然会把两个元器件焊接在一起了。
第二步给焊接升温:
当在完成第一步以后,接下来就是加热焊锡丝了,主要是将烧热的电烙铁放在器件管脚旁边,慢慢融化焊锡丝,需要注意电洛铁的温度和加热时间,若时间过长,很有可能焊坏面包板焊盘的,一般建议电洛铁温度调整在400。C左右,加热2秒钟左右,例外也要根据器件种类作出具体区别的。在焊接过程中,当需要把焊接好的元器件卸下来,则也需要给焊接处进行加热的,主要操作是首先在焊接处补好焊锡丝,使焊点是圆润的,然后用电洛铁在焊接处进行加热,在加热的过程中就可以直接把元器件卸下来了,此时一定要主要时间,要不然也会损坏焊盘的
第三部清理焊接面:
当在完成第二步时,有的时候会观察到焊接的不完美或者担心出现虚焊情况,这时候需要进行修改的。主要是两种情况的,第一种是焊锡不够,焊接点不圆润,这时需要给焊接处补焊锡,此时需要注意的是焊锡量不能补多,要不然容易连接到其它期间的引脚的。第二种是焊锡过多,这时候可以用电洛铁放在焊接处来回的滑动,会把多余的焊锡带走的,若不行,只能使用吸锡器了。
第四部检查焊点:
当完成以上三步了,最后就需要整体观察了,主要是观看焊接点是不是圆满、亮度好、紧固,有没有与其它管脚相连在一起了。
5.2 系统调试
整体系统上电调试前,大概观察下焊接的系统还存在问题,例如还有很显眼的断裂,正负极接反以及相连、虚焊、等问题,然后用万用表检测一下,电源正负极之间是否短路等严重的电源问题,最终保证系统没有问题。
5.2.1 系统程序调试
(1)在Keil软件中先创建一个工程:单击菜单栏中的“工程”,输入新建工程名,并保存。
(2)新建用户源文件:在新建的空白文本中编写程序源代码,编码完成保存文件并文件拓展名“***.c”,新文件创建完成。
(3)程序编译和调试:单击编译按钮,系统会对文件进行运行,在输出窗口中可看到提示信息,如过窗口显示有error信息,则按提示找出错误并改正,直到提示没有错误提示为止。
(4)程序编译无错误后,进入程序调试状态,可查看单片机资源状态,进行断点等方式调试。
5.2.2硬件测试
最后一步就是硬件整体测试了,主要运用万用表、直流电源和示波器对焊接好的板子进行整体调试,主要检查每一个器件是不是都正常工作了,主要分为两个环节动态调试和静态调试。其中静态调试主要分为以下四种:
1、肉眼观察。主要观看焊接点是否饱满,以及相连器件之间是否相连或者器件管脚没有焊接好,出现短路现象。
2、使用万用表调试。首先查看电源是否短路,然后测量管脚是否连接正确,有没有接线错误。
3、上电检查。在完成第一步和第二步都没有问题,接下来就可以上电了,上电以后观看每个器件是否正常工作,然后在逐一测试功能。

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1153947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【高并发系统设计必修课】:掌握多线程状态一致性管控的5大黄金法则

第一章:多线程状态一致性管控的核心挑战在现代并发编程中,多个线程共享同一内存空间时,如何确保数据状态的一致性成为系统稳定性的关键。当多个线程同时读写共享变量时,若缺乏有效的同步机制,极易引发竞态条件、脏读或…

Poppins字体:几何美学的多语言革命

Poppins字体:几何美学的多语言革命 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins Poppins字体以其独特的几何美学和跨语言兼容性,正在重新定义现代数字…

MediaPipe Hands部署指南:CPU极速版手部识别参数详解

MediaPipe Hands部署指南:CPU极速版手部识别参数详解 1. 引言 1.1 AI 手势识别与追踪 在人机交互、虚拟现实、智能监控和手势控制等前沿技术领域,手部关键点检测正成为一项核心能力。通过精准定位手指关节的2D/3D坐标,系统可以理解用户的手…

MyKeymap键盘映射终极指南:打造专属程序快捷键方案

MyKeymap键盘映射终极指南:打造专属程序快捷键方案 【免费下载链接】MyKeymap 一款基于 AutoHotkey 的键盘映射工具 项目地址: https://gitcode.com/gh_mirrors/my/MyKeymap MyKeymap是一款基于AutoHotkey的智能键盘映射工具,能够为不同应用程序创…

Xournal++手写笔记软件:5分钟从零开始精通PDF批注与数字笔记

Xournal手写笔记软件:5分钟从零开始精通PDF批注与数字笔记 【免费下载链接】xournalpp Xournal is a handwriting notetaking software with PDF annotation support. Written in C with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Wind…

健身动作矫正详细步骤:MediaPipe Pose使用手册

健身动作矫正详细步骤:MediaPipe Pose使用手册 1. 引言:AI 人体骨骼关键点检测的现实价值 在现代智能健身与运动康复领域,精准的人体姿态分析已成为提升训练效果、预防运动损伤的核心技术支撑。传统的动作评估依赖教练肉眼观察,…

7.构造函数的白话解释

先写一个通用的类和构造函数&#xff1a;#define TEMP_FILTER_WINDOW_SIZE 10// 包含必要的头文件&#xff08;Qt线程、C标准库&#xff09; #include <QThread> #include <QObject> #include <algorithm> // 用于std::fill_n// 定义温度采集线程类&#xf…

如何查看Java版本及常用命令详解,零基础入门到精通,收藏这篇就够了

如何查看Java版本及常用命令详解 Java是一种广泛使用的编程语言&#xff0c;具有跨平台性和可移植性的特点&#xff0c;因此在开发和运行Java应用程序时&#xff0c;了解Java版本以及常用命令是至关重要的。本文将介绍如何查看Java版本以及一些常用的Java命令&#xff0c;帮助…

QModMaster:5分钟快速上手的工业通信调试终极指南

QModMaster&#xff1a;5分钟快速上手的工业通信调试终极指南 【免费下载链接】qModbusMaster 项目地址: https://gitcode.com/gh_mirrors/qm/qModbusMaster QModMaster作为一款基于Qt框架的免费开源ModBus主站工具&#xff0c;为工业自动化领域提供了完整的RTU和TCP协…

360Controller:让你的Xbox手柄在Mac上完美运行

360Controller&#xff1a;让你的Xbox手柄在Mac上完美运行 【免费下载链接】360Controller 项目地址: https://gitcode.com/gh_mirrors/36/360Controller 还在为Mac上Xbox手柄无法正常使用而烦恼吗&#xff1f;360Controller项目为macOS用户提供了完整的Xbox手柄驱动解…

服务端跨平台部署的7个黄金法则,第5个多数人从未听过

第一章&#xff1a;服务端跨平台部署的7个黄金法则&#xff0c;第5个多数人从未听过 在构建现代分布式系统时&#xff0c;服务端的跨平台部署已成为常态。无论是从Linux迁移到Windows容器&#xff0c;还是在macOS开发环境与生产级Kubernetes集群间同步行为&#xff0c;遵循一套…

‌测试复杂交互:拖拽可访问性——专业测试从业者的全面指南

拖拽交互的可访问性挑战概述‌在当代软件界面中&#xff0c;拖拽交互已成为核心功能&#xff08;如文件上传、UI元素重组&#xff09;&#xff0c;但其复杂性常被低估。据W3C统计&#xff0c;2025年全球数字产品中30%的可访问性问题源于拖拽操作&#xff0c;导致残障用户&#…

为什么UV Squares能成为Blender UV编辑的必备神器?

为什么UV Squares能成为Blender UV编辑的必备神器&#xff1f; 【免费下载链接】UvSquares Blender addon for reshaping UV selection into grid. 项目地址: https://gitcode.com/gh_mirrors/uv/UvSquares 想要在Blender中快速将杂乱的UV选择区域重塑为整齐的网格布局吗…

AI斗地主助手终极指南:从新手到高手的实战秘籍

AI斗地主助手终极指南&#xff1a;从新手到高手的实战秘籍 【免费下载链接】DouZero_For_HappyDouDiZhu 基于DouZero定制AI实战欢乐斗地主 项目地址: https://gitcode.com/gh_mirrors/do/DouZero_For_HappyDouDiZhu 还在为斗地主中的复杂决策而困扰吗&#xff1f;AI斗地…

蔚蓝档案自动化脚本使用指南:告别重复操作,游戏效率翻倍

蔚蓝档案自动化脚本使用指南&#xff1a;告别重复操作&#xff0c;游戏效率翻倍 【免费下载链接】blue_archive_auto_script 用于实现蔚蓝档案自动化 项目地址: https://gitcode.com/gh_mirrors/bl/blue_archive_auto_script 还在为每天重复的日常任务感到疲惫吗&#x…

如何快速搭建智能机器狗:openDogV2完整实践指南

如何快速搭建智能机器狗&#xff1a;openDogV2完整实践指南 【免费下载链接】openDogV2 项目地址: https://gitcode.com/gh_mirrors/op/openDogV2 想要亲手制作一只能够自主运动的智能机器狗吗&#xff1f;openDogV2开源项目为你提供了从零开始的完整解决方案。这个项目…

macOS Xbox手柄驱动终极指南:轻松实现完美游戏体验

macOS Xbox手柄驱动终极指南&#xff1a;轻松实现完美游戏体验 【免费下载链接】360Controller 项目地址: https://gitcode.com/gh_mirrors/36/360Controller 你是否在Mac上连接Xbox手柄时遇到无法识别或按键无响应的问题&#xff1f;别担心&#xff0c;360Controller就…

OFD转PDF神器:轻松解锁国产文档格式兼容新境界

OFD转PDF神器&#xff1a;轻松解锁国产文档格式兼容新境界 【免费下载链接】Ofd2Pdf Convert OFD files to PDF files. 项目地址: https://gitcode.com/gh_mirrors/ofd/Ofd2Pdf 还在为OFD文件打不开而烦恼吗&#xff1f;Ofd2Pdf这款神奇的格式转换工具&#xff0c;就像一…

MediaPipe Hands模型微调:适应特定场景的教程

MediaPipe Hands模型微调&#xff1a;适应特定场景的教程 1. 引言&#xff1a;AI 手势识别与追踪 随着人机交互技术的不断演进&#xff0c;手势识别正逐步成为智能设备、虚拟现实、增强现实乃至工业控制中的核心感知能力。传统的触摸或语音交互在某些场景下存在局限&#xff…

MyKeymap完整教程:为每个程序创建专属键盘布局

MyKeymap完整教程&#xff1a;为每个程序创建专属键盘布局 【免费下载链接】MyKeymap 一款基于 AutoHotkey 的键盘映射工具 项目地址: https://gitcode.com/gh_mirrors/my/MyKeymap 你是否曾经为不同软件中的快捷键冲突而烦恼&#xff1f;在Photoshop中精心设置的快捷键…