基于单片机的智能扫地机设计

概要

  本文主要设计一个简单的智能扫地机。该扫地机的核心控制元器件是stc89c52,具有编写程序简单,成本普遍较低,功能较多,效率特别高等优点,因此在市场上得到很大的应用。除此之外,该扫地机能够自动避开障碍物、自动利用风机进行吸尘功能。该文介绍了扫地机系统的整体制作过程,它主要由单片机主控电路、单片机最小系统电路、红外光电避障电路、按键启动停止电路以及电机驱动电路组成。通过利用Altium Designer集成电路设计软件,进行原理图以及电路板的设计。其次通过KEIL编程软件为单片机输送程序,来控制整个扫地机的逻辑。

关键字:智能吸尘机;壁障;stc89c52单片机;L298N

一、方案设计

1.3.1 扫地机器人功能
(1)自动吸尘
(2)自动识别障碍
(3)自动转弯

二、电路设计与理论分析

2.1 硬件设计总体概要

将单片机最小系统电路组,按键启动停止电路,红外光电避障电路,直流无刷电机电路,风扇吸尘电路以及下载端电路围绕着stc89c52组合成一个系统,总框架如下2.1所示。
在这里插入图片描述

图2.1硬件系统总框图

2.2 电源电路设计

所有电子产品中,电源的起着关键的作用,如同一座房子的根据,只有电源稳定才能为后续提供更多功能作保证,输出的纹波趋向平滑则性能才能良好工作。该智能吸尘机人采用L298N电机驱动模块中的内置的L7805CV稳压芯片来获得稳定的5V电压.通过L298N和L7805CV主控芯片和稳压芯片结合,充分减小因电源不稳定的干扰,提高整体驱动电路的稳定。
L7805CV具备众多的高质量性能:相关抵偿的元器件可以省略不接;在内部设置了限流庇护的电路,它可以避免负载短路而导致损坏元器件;在内部还集成了功耗限制电路,可以阻拦损坏输出启动的晶体管。L7805CV可以输出4.75-5.25V的电压,静止状态的电流大约在4.2-8mA,最大的输出电流约在1.5A,纹波抑止比大概在78dB。其采用TO-220的封装形式,如下图2.2所示,从左到右分别为引脚1是输入端,引脚2是接地端,引脚3是输出端。

总控制电路的设计

① VCC,EA/Vpp的引脚端口,联通5V电源;
② P32,P33控制启动停止按键;
③ P16、P17分别控制左右红外避障探头;
④ P30RXD,P31TXD为下载程序引脚;
⑤ P10、P11、P12、控制电机A驱动引脚ENA,AIN1和AIN2,P13、P14、P15、控制电机B驱动引脚BIN1,BIN2和ENB;
⑥ VSS即,接地引脚GND;
⑦ P20为吸尘小风扇控制信号;
⑧ 第十八和第十九号引脚为晶振连接端口
⑨ 第九号脚位为按键复位连接端口

总电路设计

总共分为七大模块L298N电机驱动模块,两个红外避障模块,复位电路模块,晶振电路模块,下载端口模块,启动停止按键模块,风扇吸尘模块。如下图2.5总控制电路图所示。
在这里插入图片描述

图2.5总控制电路

三、PCB板的设计与制作

Altium Designer拥有许多好用的功能,包含了原理图,PCB,3D仿真PCB,输出word文档等功能。它不仅拥有许多原器件库,还能够自己建立属于自己的原器件库,大大提高了电路设计的效率与质量。下面介绍以下主要元器件封装及整个PCB绘制过程。
1)STC89C52的DIP-40封装
首先建立一个原器件库并保存,可以利用工具选项中的器件导向,然后选择DIP的模式,输入单片机有引脚横向之间的距离为15.24毫米左右,列向之间的距离为2.54毫米左右;焊盘直径为15.24毫米左右以及2.54毫米左右,过孔的直径为33mil,采取的层为Multi-layer,线的宽度为8mil。这是一种快捷绘制封装的方法,不过一般适用于市面上比较典型的封装
在这里插入图片描述

四、 结论

便采用PCB的形式节省了众多电线。焊接过程中需要注意的是虚焊的问题,一个元器件未连接都可能导致失败。就这样,焊接过程中多注意,多加小心问题也边轻易可以解决。单片机中程序的编写尤为重要,开始自己对于C语言特别惧怕,于是去查看一些网络教程,渐渐地明白了一个单片机中程序所包含基本上都有头文件,端口声明,函数声明,子函数,主函数等。逐渐了解后开始查阅相关扫地机的程序,然后自己尝试着编写。开始编写的一塌糊涂,各种小问题不断,不过经过一段时间的学习不断地调试,逐渐有了清晰的思路。虽然有了清晰的思路,不过真正运行起来又是一大问题,编写过程中细节特别主要,输入法中英文不能混淆,冒号不能忘记,语句结构不能用错等各种细节,把这些都做好,最终便能解决各种问题。在硬件和程序都解决情况下,并不意味着就结束了,还有整个扫地机调试的过程。在运行过程中又会发现各种问题,比如避障能力弱,于是又去寻找解决方案,调整感应器位置,在不同环境测试。还有一个比较严重的问题是吸尘能力弱,也是当初选择小风机未能预测它的吸尘能力。整个产品设计之初到结束都是一个挑战,不断碰见问题,不断地去解决,让自己在各方面都有了一定的提升,明白一个产品的诞生不是这么容易的,想要做好一个产品,需要不断尝试,不断改进

五、 文章目录

目 录
1、概述 1
1.1 国内产品研究背景 1
1.2 研究的目的和意义 1
1.3 课题的主要内容 2
1.3.1 扫地机器人功能 2
1.3.2 性能指标 2
1.3.3 论文的主要内容 2
2、电路设计与理论分析 3
2.1 硬件电路设计总概要 3
2.2 电源电路原理 4
2.3 总控制电路 4
2.3.1 STC89C52单片机简介 4
2.3.2 总控制电路的设计 6
2.4 复位电路模块 7
2.5 晶振电路模块 8
2.6 启动停止按键模块 9
2.7 下载口 9
2.8 风扇吸尘电路 9
2.9光电传感模块电路设计 11
2.10电机驱动电路设计 12
3、PCB板的设计与制作. 17
3.1 PCB板的设计 17
3.2 PCB板的制作 19
4、电路焊接与调试 20
4.1 电路焊接 20
4.2 红外避障调试 20
4.3 风扇吸尘电路调试 20
5、系统程序的设计 21
5.1 C语言与汇编语言的优缺点 21
5.2 系统程序设计 23
5.2.1 程序的设计 23
5.2.2 程序的初始化 24
5.2.3 延时子程序 25
5.2.4 中断函数 25
5.2.5 子函数 26
5.2.6主函数 28
6、整机调试与功能介绍 29
6.1 存在的问题与解决方案 29
6.1.1 传感器缺陷 29
6.1.2 电池缺陷 29
6.1.3 吸尘器功率缺陷 29
7、总结 30
参考文献 31
致谢 32
附 录 33

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言实现利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示

完整代码&#xff1a; /*利用条件运算符的嵌套来完成此题&#xff1a;学习成绩>90分的同学用A表示&#xff0c;60-89分之间 的用B表示&#xff0c;60分以下的用C表示*/ #include<stdio.h>int main(){int score;char grade;printf("请输入你的成绩&#xff1a;&q…

IGP高级特性简要介绍(OSPF-上篇)

OSPF高级特性 一、OSPF_提升故障收敛及网络恢复速度 1.FRR与BFD快速恢复故障 1.1 FRR 在传统转发模式下&#xff0c;当到达同一个目的网络存在多条路由时&#xff0c;路由器总是选择最优路由使用&#xff0c;并且下发到FIB表指导数据转发。 当最优路由故障时&#xff0c;需…

Ubuntu18.04安装pcl-1.12.1,make时报错:/usr/bin/ld: cannot find -lvtkIOMPIImage

解决方案&#xff1a; 在vtk安装包中&#xff0c;重新打开cmake-gui&#xff0c;然后勾选上VTK_Group_MPI和VTK_Group_Imaging。 cd VTK-8.2.0 cd build cmake-gui然后重新编译生成。 make -j8 # 或者j4,量力而行。 sudo make install 就可以解决了。 然后重新回到pcl安装…

虚拟机没有桥接模式--物理机WiFi不见了--注册表修复

我们知道虚拟机有三种模式&#xff1a; vmnet0 桥接模式&#xff1b;vmnet1 仅主机模式&#xff1b;vmnet8 NAT模式 我自己以前一直用的NAT模式&#xff0c;今天突然要用到桥接模式&#xff0c;发现无法切换... 我下面这个是后面弄好了的&#xff0c;最开始是没有显示桥接模式…

Vue 3 中,watch 和 watchEffect 的区别

结论先行&#xff1a; watch 和 watchEffect 都是监听器&#xff0c;都是用来监听响应式数据的变化并执行相应操作。区别是&#xff1a; watch&#xff1a;需要指明要监听的数据&#xff0c;而且在回调函数中可以获取到属性变化的前后值&#xff1b; 适用于需要精确控制监视…

quickapp_快应用_快应用组件

快应用组件 web组件web页面与快应用页面通信网页接收/发送消息网页接收消息 快应用页面接收/发送消息给网页发送消息 通信前提- trustedurl web组件 作用&#xff1a;用于显示在线的 html 页面(可以嵌入三方页面或者某些不太重要的页面) 缺点&#xff1a;打开会比原生慢一点&…

容联七陌携手岚时科技,解决医美机构回访3大痛点

近日&#xff0c;岚时科技研发中心联合容联七陌发布了全新的智能呼叫中心系统&#xff0c;5大功能模块解决了医美机构回访过程中的3大难题&#xff1a;客户资产保全困难、客户回访技术被卡脖子、回访人员&#xff08;客服、咨询&#xff09;效率管理困难。 “智能呼叫中心”通过…

Camtasia2024破解版电脑屏幕录制剪辑软件

屏幕录制剪辑 TechSmith Camtasia for Mac v2021是 TechSmith 公司所开发出一款专业屏幕录像和编辑&#xff0c; Camtasia Studio2024版是由TechSmith公司官方进行汉化推出的最新版本,除2023版以下版本均没有官方汉化。 同时TechSmith公司打击第三方贩卖Camtasia Studio汉化的…

MS2111多点低压差分(M-LVDS)线路驱动器和接收器

MS2111 是多点低压差分 (M-LVDS) 线路驱动器和接收器。经过 优化&#xff0c;可运行在高达 200Mbps 的信号速率下。所有部件均符合 M LVDS 标准 TIA / EIA-899 。该驱动器的输出支持负载低至 30Ω 的多 点总线。 MS2111 的接收器属于 Type-2 &#xff0c; 可在 -1…

第三章:人工智能深度学习教程-基础神经网络(第五节-了解多层前馈网络)

让我们了解反向传播网络 (BPN) 中的误差是如何计算的以及权重是如何更新的。 考虑下图中的以下网络。 反向传播网络(BPN) 上图中的网络是一个简单的多层前馈网络或反向传播网络。它包含三层,输入层有两个神经元 x 1和 x 2,隐藏层有两个神经元 z 1和 z 2,输出层有一个神经…

基于element-ui封装可配置表单组件

“vue”: “^2.7.13” “element-ui”: “^2.15.7” 代码地址 【说明】 该组件时使用vue3&#xff08;vue2.7&#xff09;语法封装&#xff0c;使用时可用vue2语法使用也可以使用vue3语法使用 一、vue2语法使用案例 基础用法 <template><div class"form-demo…

擎创动态 | 开箱即用!擎创科技联合中科可控推出大模型一体机

一、金融行业大模型一体机发布 10月26日至27日&#xff0c;2023金融科技安全与创新大会顺利召开。会上&#xff0c;中科可控联合擎创科技、卓世科技、文因互联、百川智能、捷通华声、智谱华章、易道博识等9大厂商&#xff0c;发布了9款金融行业大模型一体机&#xff0c;为金融…

加速度jsudo:小企业会遇到哪些瓶颈期?

什么是瓶颈期&#xff1f;瓶颈期&#xff0c;就是你无论怎么努力&#xff0c;成绩都是上不去&#xff0c;还是停留在原地&#xff1b;而自己表现的还是很匆忙&#xff0c;却不知道如何下手&#xff1f;就像水桶效益一样&#xff0c;水桶的木板高度层次不齐&#xff0c;像极了自…

安防监控系统EasyCVR平台设备通道绑定AI算法的功能设计与开发实现

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台可拓展性强、…

Mysql数据库的备份和恢复及日志管理

一、数据备份概述 1.1 备份的分类 完全备份&#xff1a;整个数据库完整地进行备份 增量备份&#xff1a;在完全备份的基础之上&#xff0c;对后续新增的内容进行备份 冷备份&#xff1a;关机备份&#xff0c;停止mysql服务&#xff0c;然后进行备份 热备份&#xff1a;开机备…

从零开始的C++(十四)

继承&#xff1a; 作用&#xff1a;减少重复代码&#xff0c;简化程序。 用法&#xff1a; class b&#xff1a;public a {//...b中成员 } 在如上代码中&#xff0c;b类以public的方式继承了a类。规定a类是父类、基类&#xff0c;b类是子类、派生类。 关于继承方式&#xf…

[动态规划] (十一) 简单多状态 LeetCode 面试题17.16.按摩师 和 198.打家劫舍

[动态规划] (十一) 简单多状态: LeetCode 面试题17.16.按摩师 和 198.打家劫舍 文章目录 [动态规划] (十一) 简单多状态: LeetCode 面试题17.16.按摩师 和 198.打家劫舍题目分析题目解析状态表示状态转移方程初始化和填表顺序 代码实现按摩师打家劫舍 总结 注&#xff1a;本题与…

iOS 让界面元素的文字随着语言的更改而变化——本地化文字跟随

在我的 App 内置的设置中&#xff0c;修改了语言&#xff0c;这时需要让当前界面的文本跟着改变语言。 解决方法是&#xff1a;添加一个观察者&#xff0c;观察 localize 本地语言的通知&#xff0c;然后一有变化就调用自定义的方法执行操作。&#xff08;而设置中其实是改变了…

ZYNQ_project:key_beep

通过按键控制蜂鸣器工作。 模块框图&#xff1a; 时序图&#xff1a; 代码&#xff1a; /*1位按键消抖 */ module key_filter (input wire sys_clk ,input wire sys_rst_n ,input wire key_in ,output …

搭建嵌入式GDB调试环境以及VSCode+gdbserver 图形化调试

目录 1 搭建嵌入式gdb调试环境 1.1 交叉编译工具链自带的gdb和gdbserver 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 1.2.2 gdb调试程序 1.3 源码编译gdb和gdbserver 1.3.1 下载gdb和gdbserver源码 1.3.2 编译gdb 1.3.3 移植gdbserver 2 VSCodegdbserver 图…