目 录
1 绪论 1
1.1 课题研究背景及意义 1
1.2 国内外研究现状 1
1.2.2 国外研究现状 1
1.2.2 国内研究现状 2
1.3 清洁机器人技术现状 3
1.3.1 路线规划技术 3
1.3.2 定位技术 3
1.3.3 多传感器融合技术 3
1.3.4 吸尘技术 4
1.4 本课题主要研究内容 4
2 总体设计方案 5
2.1 智能家用清扫车的系统组成 5
2.1.1 传感器信息采集模块 5
2.1.2 CPU控制模块 5
2.1.3 驱动模块 5
2.1.4 清扫模块 5
2.2 硬件模块方案论证和选择 6
2.2.1 控制器模块 7
2.2.2 电源和稳压模块 7
2.2.3 电机和电机驱动模块 7
2.2.4 避障模块 8
2.2.5 寻迹模块 9
2.2.6 液晶显示模块 9
2.2.7 吸尘器模块 9
2.2.8 无线收发模块 10
2.2.8 硬件模块选择的最终结果 10
2.3 软件框图 11
3 系统硬件电路 12
3.1 最小系统电路设计 12
3.2 电机驱动电路设计 13
3.3 超声波避障电路设计 15
3.3.1 超声波测距原理的简单介绍 16
3.3.2 HC-SR04模块的基本工作原理 17
3.3.3 HC-SR04模块实物图 17
3.3.4 超声波时序图 18
3.4 红外线避障电路设计 18
3.4.1 调试和接线说明 19
3.4.2 HJ-IR2模块的优缺点 20
3.5 寻迹模块电路设计 20
3.5.1 寻迹模块的安装 22
3.6 红外遥控电路设计 22
3.6.1 红外通信基本原理 22
3.6.2 红外遥控系统结构 23
3.6.3 红外遥控发射模块 24
3.6.4 红外遥控接收模块 28
3.7 蓝牙控制模块 29
3.7.1 蓝牙串口模块 29
3.7.2 HC-06串口模块 29
4 系统软件设计 32
4.1 主程序流程图 32
4.2 清理小车工作方式1 33
4.3 清理小车工作方式2 34
4.4 清理小车工作方式3 37
4.5 各模块子程序设计 39
4.5.1 寻迹模块子程序 39
4.5.2 超声波避障模块子程序 39
4.5.3 红外避障模块子程序 40
4.5.4 红外遥控模块子程序 41
5 调试 43
5.1 各功能模块的调试 43
5.1.1 超声波避障模块调试 43
5.1.2 红外避障模块调试 43
5.1.3 寻迹模块调试 44
5.2 测试结果 44
5.3 总结 48
结束语 49
参考文献 50
致 谢 52
附录A 系统原理图 53
附录B 实物图 54
附录C 程序 55
2 总体设计方案
2.1 智能家用清扫车的系统组成
通常清扫小车主要由以下几个模块构成:(1)传感器信息采集模块(2)CPU控制模块(3)驱动模块(4)清扫模块。这四个模块组成了完善的清扫小车系统,传感器信息收集模块返回目前清扫机器人的位置信息,如是不是遇到楼梯或碰到障碍物等,而后把这些信息送给CPU控制模块进行判断,控制驱动模块,使机器人左右转弯或者后退等,在机器人运动的同时让清扫模块进行清扫,完成清洁地面的任务。
2.1.1 传感器信息采集模块
智能清扫车需要及时收集环境信息和实时检测自身的工作状态,控制自己的状态,路径规划,并确定电池的电力短缺和自动充电。
根据智能清扫小车的工作需要,清扫小车传感器的选取有如下需求:体积小、质地轻、精度高、稳定可靠、可靠性强、抗干扰能力强、安装方便,经济。
2.1.2 CPU控制模块
这个模块是系统的中枢所在,相当于人的“大脑”。CPU控制模块从传感器信息采集模块那里获取环境信息,然后进行分析判断,做出最佳的决策,再将做出的运动决定传送给驱动模块,保证机器人执行相对应的动作。清洁机器人采用的是8位和16位单片机,具有增加的需求特点,并逐步向32位处理器开发。
2.1.3 驱动模块
这个模块是清扫小车运动的核心部件,其性能直接关系到整个机器人的运动能力。它的功能就是响应CPU控制模块的下发命令,使小车的执行机构实现相应的动作,这模块设计的关键是在于控制电机的硬件电路设计和控制算法的实现。
2.1.4 清扫模块
清扫模块的清洗机器人行走的同时完成清洁工作,一般只需要完成除尘器的功能,那么我们需要设计一个小的真空吸尘器是安装在车的底部,也能够把清扫机器人设计成即可吸尘又可擦地,需要清洁地板可以放置在一个棉布在机器人底层。
2.2 硬件模块方案论证和选择
本次设计的硬件组成系统由电源和稳压模块、控制器模块、电机和电机驱动模块、舵机模块、避障模块、寻迹模块、无线收发模块、吸尘器模块以及液晶显示模块等构成。硬件系统组成方框图如下所示:

图1 清理小车硬件系统方框图
2.2.1 控制器模块
方案1:选用CPLD可编程逻辑控制器。CPLD能够完成种种繁杂的逻辑功能、体积小、稳定性高、范围大、密度高、IO资源丰富、容易功能扩展。选用并行的输入输出方法,提升了系统的处理能力,适用作为大规模控制系统的控制核心。但本系统不要求繁杂的逻辑功能,对数据的处理速率的要求也不高的。从使用和经济的角度,我放弃了它。
方案2:选用STC公司的STC89C52单片机作为主控制器和采取凌阳单片机当做辅CPU。STC89C52是一个低功耗,高性能的MCS-51内部核心的CMOS 8位单片机,片内具有8k空间的可屡次擦除1000次以上的Flash只读存储器,本文转载自http://www.biyezuopin.vip/onews.asp?id=12613拥有512bytes的随机存取数据存储器(RAM),32个IO口,3个16位可编程定时计数器的。并且该单片机51系列能够使程序员直接通过串口或并口下载程序,可以不用烧写器的。
本系统主要是进行寻迹、避障模块的检测以及电机的控制,兼有小车的无线控制。如果使用单一的凌阳单片机,容易出现不稳定的状况。从体系的稳定性和编程的精简方面考虑,我放弃了单一选用凌阳单片机而考虑别的方案。
考虑到使用方便,我选择了方案2。

//主程序:
#include<AT89X52.H>   //包含51单片机头文件,内部有各种寄存器定义
#include<HJ-4WD.H>    //包含蓝牙智能小车驱动IO口定义等函数
//主函数
void main(void)
{   unsigned char i,OperaMode=0;
B:  for(i=0;i<50;i++) //判断S3是否按下
{delay(1);//1ms内判断50次,如果其中有一次被判断到没有按键按下,便             //重新检测
if(P2_7!=0&&P2_6!=0&&P2_5!=0)//当S3或S2按下时,启动小车前进goto B; //跳转到标号B,重新检测if(!OperaMode){if(P2_7==0)OperaMode=7;if(P2_6==0)OperaMode=6;if(P2_5==0)OperaMode=5;}
} BUZZ=0;  //50次检测S6确认是按下之后,蜂鸣器发出“滴”声响,                  //然后启动小车。delay(50);BUZZ=1;//响50ms后关闭蜂鸣器switch(OperaMode){case 5:   Tracking();   //按下按键S2break;case 6: ObstacleAvoidance();    //按下按键S3break;case 7:   WireCtl();      //按下按键S4break;default:;}
}
//<HJ-4WD.H>的定义
#ifndef _LED_H_
#define _LED_H_
#include <intrins.h>
//定义小车驱动模块输入IO口
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;
sbit IN5=P1^4;
sbit IN6=P1^5;
sbit IN7=P1^6;
sbit IN8=P1^7;
//蜂鸣器接线定义
sbit BUZZ=P3^2;
//HJ-4WD小车底盘4路传感器接线定义
#define Left_1_led        P3_7  //P3_7接四路寻迹模块接口第一路输出信号即中控                               //板上面标记为OUT1
#define Left_2_led        P3_6  //P3_6接四路寻迹模块接口第二路输出信号即中控                               //板上面标记为OUT2
#define Right_1_led       P3_5  //P3_5接四路寻迹模块接口第三路输出信号即中控板                              //上面标记为OUT3
#define Right_2_led       P3_4  //P3_4接四路寻迹模块接口第四路输出信号即中控板                              //上面标记为OUT4
/*********************红外遥控器*************************/
#define Imax 14000    //此处为晶振为11.0592时的取值,
#define Imin 8000    //如用其它频率的晶振时,
#define Inum1 1450    //要改变相应的取值。
#define Inum2 700
#define Inum3 3000
unsigned char f=0;
unsigned char Im[4]={0x00,0x00,0x00,0x00};
unsigned long m,Tc;
unsigned char IrOK;
/*********************红外遥控器*************************/
/*********************超声波*************************/
#define  ECHO  P2_4                //超声波接口定义
#define  TRIG  P2_5                //超声波接口定义
unsigned long S=0;
unsigned int  time=0;          //时间变量
unsigned int  timer=0;         //延时基准变量


















基于STC89C52单片机的多功能智能清洁小车设计相关推荐

  1. 多功能数字钟c语言单片机PPT,基于STC89C52单片机的多功能数字钟的设计

    2010年第35期.本刊重稿.科技信囊 基于STC89C52单片机的多功能数字钟的设计 张开碧王浩曾勇斌 (重庆邮电大学自动化学院中国重庆400065) I摘要]本文主要介绍了数字钟的功能以及相应的硬 ...

  2. 89c51控制小车运行c语言,基于STC89C52单片机和STM32的智能小车控制系统

    摘要:针对智能车的控制系统, 选用STC89C52作为整个系统的主控芯片, 并进行硬件电路设计;以NREF24L01作为无线接收模块, 选取E18-D80NK-N红外光电传感器作为避障模块的核心器件; ...

  3. 基于51单片机的多功能智能语音循迹避障小车

    目录 一.功能介绍及硬件准备 二.电机控制及调速 三.小车循迹方案 四.跟随功能实现 五.测速功能实现 六.OLED显示车速 七.摇头避障功能实现 八.SU-03T语音模块介绍 九.语音切换小车模式+ ...

  4. 基于STM32单片机的多功能智能时钟【DHT11温湿度传感器蜂鸣器报警12864液晶显示】

    系统功能 系统可以显示日期.时间.星期.温度.湿度,可以对日期时间进行设置,可以设置闹钟,可以打开和关闭背光显示,有两种计时模式:正计时和倒计时. 液晶显示界面

  5. 基于51单片机的公交车安全智能检测系统、基于51单片机的金属探测仪控制设计、基于单片机的智能电子密码锁系统设计、基于51单片机酒精浓度检测仪设计【资料转发分享】

    630基于51单片机的公交车安全智能检测系统-设计资料 本资料是基于单片机的公交车安全监测系统 具有如下功能: 1.监测环境的温度,超标报警.可以设置上下限 2.监测是否有火灾以及有毒气体,超标报警, ...

  6. 基于STC89C52单片机的智能车控制系统设计

    目 录 1系统概述 1 1.1设计目的和意义 1 1.2设计思路 2 1.3系统需求分析 2 1.3.1市场需求 2 1.3.2实现功能 2 1.4开发环境 3 1.5运行环境 3 2总体设计 4 2 ...

  7. C语言智能窗帘编码,基于STC89C52单片机智能窗帘控制系统.doc

    基于STC89C52单片机智能窗帘控制系统 基于STC89C52单片机智能窗帘控制系统 [摘要] 本设计以STC89C52单片机为主控芯片,接收并处理BH1750FVI光照传感器的光强信号.DS18B ...

  8. 基于单片机GPS定位语音智能盲人拐杖设计(毕设课设)

    基于STC89C52 单片机的智能盲人拐杖主要功能包括: 1.实时探测前方障碍物,1m内有障碍物语音播报. 2.光线弱时语音提示,自动开启拐杖灯光,光线强时自动关闭.按下灯光按键,灯光将闪烁,可警示他 ...

  9. 基于STC89C52单片机的霓虹灯

    基于STC89C52单片机的霓虹灯 1.设计要求 使用PWM驱动8个LED灯         人眼不能观察到灯光全灭         灯光要有动画效果 2.设计概述         本实验所用芯片为S ...

  10. 【51毕设案例】基于51单片机-定时喂食供氧智能鱼缸

    目录 功能介绍: 整体功能简述: 硬件框图: 软件流程图: 原理图: 仿真图: 元器件清单: 主要部分代码展示:void main() 工程管理展示: 下载内容展示: 更详细代码视频讲解及代码下载请看 ...

最新文章

  1. 手机经常提示找不到服务器,为什么我的手机显示无法连接到服务器
  2. Wikioi 1081 线段树成段更新单点查询
  3. pandas使用get_dummies进行one-hot编码
  4. 单列集合Set的实现类HashSet
  5. 56py无锡官方网站2013最新
  6. 3-6:常见任务和主要工具之正则表达式
  7. js function随笔
  8. 硬件基础知识(6)---电容分类
  9. pandas mysql insert_python – Pandas将数据插入MySQL
  10. Baby Audio Smooth Operator for Mac(智能信号平衡器插件)
  11. u盘安装linux6.5教程,u盘安装CentOS6.5
  12. Idea在黑色背景下,错误提示不明显,可以改成黄色
  13. 程序员女朋友都是在哪找的
  14. 使用Druid SQL Parser解析SQL
  15. 画出一阶系统单位阶跃响应、单位脉冲响应、单位斜坡响应曲线
  16. 作为一个程序员,如何保持优秀
  17. 创建一个IntelliJ Idea文件模板,将光标放在文件中的特定位置
  18. epub格式电子书剖析之三:NC…
  19. java乘法逆元与除法取模,关于数论乘法逆元及相关知识点
  20. Linux 中power supply软件架构和相关API

热门文章

  1. office插件开发_Excel插件——方方格子
  2. caffe-openpose结构
  3. SpringBoot+Element-UI实现加载ActiveX控件
  4. itext 生成pdf、pdf模板生成pdf
  5. matlab及系统仿真期末试题,matlab与系统仿真综合试题
  6. 微信小程序设置底部导航栏
  7. 微星z370黑苹果_[原创]黑苹果Hackintosh 10.13.5 High Sierra i7 8700k z370
  8. 高校实验室安全隐患及安全建设-LIMS2
  9. Android Kotlin关于新增本地数据库对象表字段问题
  10. IP冲突,中国移动光猫路由-中兴F673A之修改IP篇