单片机自动清洁机器人设计电路图+原理图+流程图+源程序课程设计.docx
《单片机自动清洁机器人设计电路图+原理图+流程图+源程序课程设计.docx》由会员分享,可在线阅读,更多相关《单片机自动清洁机器人设计电路图+原理图+流程图+源程序课程设计.docx(12页珍藏版)》请在冰点文库上搜索。
单片机自动清洁机器人设计电路图+原理图+流程图+源程序课程设计
单片机自动清洁机器人设计(电路图+原理图+流程图+源程序)-课程设计
单片机自动清洁机器人设计
最近在电视看到一款能够遥控移动的吸尘器,圆形的和遥控汽车差不多,我感觉到如果再不把自己的想法写出来,自己的创意会被很多人实现,我几年前就想设计一款能够打扫卫生的机器人,直到看到电视里的那个东西,我意识到,
我要自己做一个出来。
移动机构是清洁机器人的主体,决定了清洁机器人的运动空间,一般采用轮式结构。
传感器系统一般采用超声波传感器、红外光电传感器、接触传感器等构成多传感器系统。
随着近年来控制技术、传感技术以及移动机器人技术等技术的迅速发展,智能清洁机器人控制系统的研究和开发已具备了坚实的基础和良好的发展前景。
吸尘系统在原理上与传统立式吸尘器相同,主要是在结构设计上更多考虑结构尺寸、集成度以及一些辅助机构的合理布置和利用,以此来提高能源利用率和工作效率。
现在的智能清洁机器人通过软硬件的合理设计,使其能够自动避开障碍物,实现一般家居环境下的自主清洁工作。
它的主要功能有:
1能够自动熟悉地形,了解房间布局,感知自己的方位,记录和分析环境卫生状况,容易脏的地方多打扫,干净的地方少打扫,节省能源。
2能够自动补充能量。
当检测到电源不足时,自动找到电源,并充电。
充电结束自动专为待机状态。
3当垃圾装满后自动打包,并将垃圾放到主人指定的地点。
4能够检测主人是否在家,只有当主人不在家时,才出来打扫卫生,主人在家时机器人休息。
保证不影响主人的正常生活。
可行性分析:
1应用超声波测距和滚轮定位就可以测到自己的位置,给据吸入垃圾量的多少,就可以分析出,那干净那里脏.2应用简单的空中加油技术就可以把自动充电搞定。
检测电源能量多少,和是否充满就更简单了.3垃圾打包只用简单的打包技术就可以解决.4机器人上装上热释红外探测器就知道主人在不在了..5剩下的功能,好多玩具里都有,只要把吸尘器和遥控车结合起来就搞定了
1 系统整体方案设计
1.1制作清洁机器人的任务与要求:
任务:
清洁机器人在场地上任意运动并吸尘,当遇到障碍物时,可自主避开障碍物绕道继续运动(轨迹由团队设定)。
将场地内的粉尘及垃圾彻底清除干净。
要求:
(1).场地:
2m*2m;
(2).根据任务要求制作出机器人模型,要求机器人整体美观、精致;
(3).根据任务要求设计出电路硬件、并编写软件;
(4).要求清洁机器人清洁完场地所有垃圾。
1.2系统方案的整体设计:
本次实训的的过程可以分为以下几个方面来执行:
首先是单片机最小系统的制作,我们这次选用的单片机的型号为市场上较为常见的AT89S52单片机。
利用编写程序来解决机器人的行走轨迹以及当遇到障碍物时的处理办法即当遇到障碍物时的行走路线。
至于电机,我们团队选用的每分钟旋转150rpm的直流电机。
为了简化电路,我们使用集成有桥式电路的电机专用驱动芯片L298,性能比较稳定可靠。
我们本次选用的是实训常用的红外线避障传感器。
至于吸尘器我们选用的是
2 系统硬件的设计:
电路板的制作:
(1)单片机最小系统:
2.1、AT89S52主要特性
●与MCS-51单片机产品兼容
●8K字节在系统可编程Flash存储器
●1000次擦写周期
●全静态工作:
0Hz—33MHz
●32个可编程I/O口线
●2个16位定时器/计数器
●6个中断源
●全双工UART串行通道
●低功耗空闲和掉电模式
●掉电后中断可唤醒
●看门狗定时器
●双数据指针
●灵活的ISP编程(字或字节模式)
●4.0---5.5V电压工作范围
2.2、内部结构
图3-1是单片机AT89S51的内部结构总框图。
它可以划分为CPU、存储器、并行口、串行口、定时/计数器和中断逻辑几个部分。
●CPU由运算器和控制逻辑构成。
其中包括若干特殊功能寄存器(SFR)
●AT89S52时钟有两种方式产生,即内部方式和外部方式。
(如图3-2所示)
●AT89S51在物理上有四个存储空间:
片内/片外程序存储大路、片内/片外数据存储器。
片内有256B数据存储器RAM和4KB的程序存储器ROM。
除此之外,还可以在片外扩展RAM和ROM,并且和有64KB的寻址范围。
●AT89S51内部有一个可编程的、全双工的串行接口。
它串行收发存储在特殊功能寄存器SFR的串行数据缓冲器SBUF中的数据。
图3-1AT89S51内部结构框图
●AT89S51共有4个(P0、P1、P2、P3口)8位并行I/O端口,共32个引脚。
P0口双向I/O口,用于分时传送低8位地址和8位数据信号;P1、P2、P3口均为准双向I/O口;其中P2口还用于传送高8位地址信号;P3口每一引脚还具有特殊功能(图3-3),用于特殊信号的输入输出和控制信号。
●AT89S51内部有两个16位可编程定时器/计数器T0、T1。
最大计数值为216-1。
工作方式和定时器或计数器的选择由指令来确定。
1149
单片机自动清洁机器人设计
图3-2AT89S51的时钟电路
引脚号 第二功能
P3.0 RXD(串行输入)
P3.1 TXD(串行输出)
P3.2 (外部中断0)
P3.3 (外部中断1)
P3.4 T0(定时器0外部输入)
P3.5 T1(定时器1外部输入)
P3.6 (写信号)
P3.7 (读信号)
图3-3P3口引脚的特殊功能
●中断系统允许接受5个独立的中断源,即两个外部中断,两个定时器/计数器中断以及一个串行口中断。
2.3.外部特性(引脚功能)
AT89S51芯片有40条引脚,双列直插式封装引脚图如2-4所示:
●Vcc(40):
电源+5V
●Vss(20):
接地
●XTAL1(19)和XTAL2(18):
使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲。
●P0口(39—32):
双向I/O口,既可作地址/数据总线口用,也可作普通I/O口用。
●P1口(1—8):
准双向通用I/O口。
●P2口(21—28):
准双向口,既可作地址总线口输出地址高8位,也可作普通I/O口用。
●P3口(10—17):
多用途口,既 图3-4AT89S51引脚图
可作普通I/O口,也可按每位定义的
第二功能操作。
●ALE/~PROG(30):
地址锁存信号输出端。
在访问片外丰储器时,若ALE为有效高电平,则P0口输出地址低8位,可以用ALE信号作外部地址锁存信号。
公式(2—1)fALE=1/6fOSC,也可作系统中其它芯片的时钟源。
第二功能~PROG是对EPROM编程时的编程脉冲输入端。
●RST/VPD(9):
复位信号输入端。
AT89S51接能电源后,在时钟电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。
第二功能是VPD,即备用电源输入端。
当主电源Vcc发生故障,降低到低电平规定值时,VPD将为RAM提供备用电源,发保证存储在RAM中的信号不丢失。
●~EA/Vpp(31):
内部和外部程序存储器选择线。
~EA=0时访问外部ROM0000H—FFFFH;~EA=1时,地址0000H—0FFFH空间访问内部ROM,地址1000H—FFFFH空间访问外部ROM。
●~PSEN(29):
片外程序存储器选通信号,低电平有效。
单片机最小系统原理图如下图所示:
2.4 电机的选择:
电机的选择极其论证
方案一:
采用普通直流电机。
直流电机具有过载能力强、无级调速度等一些优良特性。
但是对转速不能精确控制,控制精度不高,正反转控制不灵活。
方案二:
采用步进电机;步进电机具有快速的启动能力,如果负荷不超过步进电机所提供的转矩,就能够立即使步进电机启动或反转;另一个显著特点就是转换精度高,转速度容易控制,正反转控制灵活。
由于本次实训的要求是控制精度不需要太高,还有就是正反转的控制有一定的时间期限,再综合性价比。
通过以上比较及系统的要求可以知道,选用方案一。
电机驱动方案的选择极其论证
方案一:
采用步进电机驱动芯片L298。
可简化电路方便但价格稍贵;
L298的特点是
1、可实现电机正反转及调速。
2、启动性能好,启动转矩大。
字串6
3、工作电压可达到36V,4A。
4、可同时驱动两台直流电机。
5、适合应用于机器人设计及智能小车的设计中。
调速方式:
直流电动机采用PWM信号平滑调速。
方案二:
H型桥式驱动电路
直流电机驱动电路使用最广泛的就是H型全桥式电路,这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。
它的基本原理图下图所示。
全桥式驱动电路的4只开关管都工作在斩波状态,S1、S2为一组,S3、S4为另一组,两组的状态互补,一组导通则另一组必须关断。
当S1、S2导通时,S3、S4关断,电机两端加正向电压,可以实现电机的正转或反转制动;当S3、S4导通时,S1、S2关断,电机两端为反向电压,电机反转或正转制动。
在小车动作的过程中,我们要不断地使电机在四个象限之间切换,即在正转和反转之间切换,也就是在S1、S2导通且S3、S4关断,到S1、S2关断且S3、S4导通,这两种状态之间转换。
在这种情况下,理论上要求两组控制信号完全互补,但是,由于实际的开关器件都存在开通和关断时间,绝对的互补控制逻辑必然导致上下桥臂直通短路,比如在上桥臂关断的过程中,下桥臂导通了。
因此,为了避免直通短路且保证各个开关管动作之间的协同性和同步性,两组控制信号在理论上要求互为倒相的逻辑关系,而实际上却必须相差一个足够的死区时间,这个矫正过程既可以通过硬件实现,即在上下桥臂的两组控制信号之间增加延时,也可以通过软件实现(具体方法参看后文)。
驱动电流不仅可以通过主开关管流通,而且还可以通过续流二极管流通。
当电机处于制动状态时,电机便工作在发电状态,转子电流必须通过续流二极管流通,否则电机就会发热,严重时烧毁。
开关管的选择对驱动电路的影响很大,开关管的选择宜遵循以下原则:
(1)由于驱动电路是功率输出,要求开关管输出功率较大;
(2)开关管的开通和关断时间应尽可能小;
(3)小车使用的电源电压不高,因此开关管的饱和压降应该尽量低。
由于我们比较倾向与电路的简化,再考虑到L298的价格不是太贵,而且L298的驱动性能要比H桥的驱动性能要更加稳定,所以我们决定用方案一。
电机驱动部分的原理图如下所示:
单片机自动清洁机器人设计(电路图+原理图)
2.5 壁障方案设定
方案一:
采用超声波壁障,超声波受环境影响较大,电路复杂,而且地面对超声波的反射,会影响系统对障碍的判断。
方案二:
采用红外线壁障,利用单片机来产生38KHz信号对红外线发射管进行调制发射,发射出去的红外线遇到壁障物的时候反射回来,红外线接受管对发射回来信号进行解调,输出TTL电平。
外界对红外信号的干扰比较小,且易于实现,价格也比较便宜,故采用方案二。
图1-1
红外避障传感器|3-80cm|距离可调。
这是一种集发射与接收于一体的光电传感器。
检测距离可以根据要求通过后部的旋钮进行调节。
该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。
工作电压为5VDC,工作电流为100mA。
基本尺寸为:
直径是17MM、传感器长度是45MM、引线长度是45CM。
这是NPN型光电开关;输出状态是0,1,即数字电路中的高电平和低电平。
检测到目标是低电平输出,正常状态是高电平输出;输出外加一个上拉电阻即可连接到IO口上。
上拉电阻阻值一般在1K左右;这是光电开关,就三条线,电源、地、输出。
探头如图1-2所示:
图1-2
使用红外避障传感器的注意事项:
为保护动作的可靠和寿命长,避免有关规定以外的温度外界(户外)条件下,接近传感器虽为耐水结构,若装上罩使用,勿使水和水容性切削油等淋到,则可更好地提高可靠性及寿命。
还避免在有化学药剂,特别是在强碱、酸、硝酸、铭酸、热浓硫酸等气候中使用。
2.6传感器的选择
2.6\.1红外反射式传感器检测模块
该模块用于主动探测机器人周边障碍物和地面落差。
选用JY043W型红外反射式传感器,该型传感器调理电路简单,安装调试方便,每一路的检测距离可以达到7cm,满足本文设计的需要。
该部分由6路检测单元组成,其中在机器人左前方和右前方各安装2路,配合超声波传感器实现周边障碍物的检测。
另2路分别安装在机器人前端左下方和右下方,探头距离地面4cm,用于检测地面是否有台阶等落差,防止机器人跌落。
红外反射式传感器具体工作过程为,发现障碍物时,发射管发出红外信号遇到障碍物反射回来,接收管接收到反射信号后导通,则信号处理电路的输出端变为低电平,该低电平直接送入控制器P2的一个端口,当控制器检测到这个端口的低电平变化时则表明该方位发现障碍物
2.6.2传感器信息处理
红外避障传感器|3-80cm|距离可调。
这是一种集发射与接收于一体的光电传感器。
当各路传感器检测到障碍物时,控制器必须获得障碍物的准确信息后,才能发出正确的避障指令。
为了获得有效信息,程序代码中为每一路检测信息都设定一个标志位,主程序不断检测各个标志位的值的有效性,以此作为障碍物方位信息。
对于不同的传感器,其信息判断标志位有效值也可能不同。
在本文所提到的3种传感器中,超声波传感器的信号处理程序最为复杂,其流程如图3所示
图3超声波传感器信号处理程序流程
2.7电源方案的选择
方案一:
采用单一电源供电。
这样供电电路比较简单,但是由于电动机启动时会影响到电压的波动,且主电路的电流波动时,也会影响到给单片机以及L298芯片的供电,容易对单片机和L298芯片造成很大的干扰,单片机一旦死机或重起就会造成所走路线的混乱。
方案二:
采用两个电源供电。
将电动机的电源与单片机和L298芯片及其外围电路的电源完全隔离,利用红外避障传感器进行传输信号。
这样可以将电动机驱动造成的干扰彻底消除,大大提高了稳定性。
我们团队一致认为稳定性是最重要的,没有稳定性,系统的的性能就没有保证。
所以我们选择方案二。
2.8 清洁的设定
由于在清洁的方面,没有太高的要求,所以我决定直接在壁障小车的基础上,在车身处拖动一个无线的迷你吸尘器,这样就可以解决了其他电路和大功率吸尘电机的相互干扰的问题了。
在清洁上,采用了最简单的拖动陈品吸尘器的设计。
我们选择了市面上的龙卷风扫地机。
如图1-4。
图1-4
2.9车体的制作:
由于条件的限制,我们决定用专业软件Inventor画出图纸再拿给工厂生产相应的零件,接下来则由我们自己来组装。
首先是将电机与底座用螺钉固定,接下来就是装好车体的轮子,我们本次制作的智能小车前面是用万向轮来运行的,后轮则是用普通的轮子来安装,这样的设计主要是为了便于车体没有遇到障碍物时可以按照预定的路线行驶。
当遇到障碍物时,便于转弯。
接下来则是电路板、红外避障传感器、吸尘器的安装。
这些看似简单的组合,但是要组合得美观也需要下一定的功夫。
如下图:
单片机自动清洁机器人设计(电路图+原理图)
3 电路板制作
3.1单片机最小系统:
单片机最小系统,或者称为单片机最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对于52单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路等。
有时也将按键输入、显示输出归于单片机最小系统中。
如下图所示:
4 系统的软件设计
4.1软件程序设计
本系统软件采用C语言编辑,除去语法和逻辑错误后,通过专业软件仿真和下载到单片机来进行实体调试。
采用了自小到大的调试方法,即先单独调试好在一个固定的场地上没有障碍物时按照预定的行走路线行驶,当此功能实现后;然后再添加程序在一个固定的场地上且有障碍物的情况下行驶。
直到完成实训的要求,编写成一个完整的软件系统。
这样保证了软件编写的正确性和可行性
程序流程图
5 系统调试
5.1测试硬件
在检测过程中,发现一个棘手问题,就是L298N的驱动电路中,由于静电问题,不知道为什么对AT89S52控制系统输入过来的电平信号影响非常的大。
刚开始,以为是程序的问题,但是分开了控制电路板和电机驱动电路板以后,在单片机的I\O口输出的电平信号却是正常的。
所以,就把问题定在了电机驱动板上。
检查了各个元器件,没发现有任何焊接,短路的问题,后来只能在底线上使用了电池的,最后问题得到完美解决。
5.2优化程序
在开始的程序时,我们在壁障处理上考虑不周,没有对障碍是否避过进行处理,所以整个小车在壁障的时候显得很死板,于是我们就对这一段程序进行了优化。
优化后,小车运行情况比较稳定了。
结论
我们的清洁机器人是基于5l型单片机的自动巡线轮式机器人控制系统运行平稳可靠,抗干扰能力强,不仅满足了机器人的设计要求,同时也为智能机器人搭建了良好的控制平台。
本次实训,让我学到了很多东西,不仅使我在理论上对单片机与数电的完美结合有了全新的认识,在实践能力上也得到了提高,这次的实训对我们来说是又一次挑战,我们翻阅了很多资料
参考文献
1、《单片机原理与应用技术》喻宗全 西安电子科技大学出版社
2、《单片机原理及应用》 张鑫 编著 电子工业出版社
3、《单片机的C语言应用程序设计》 马忠梅 编著 清华大学出版社
4、《单片机原理及接口技术》 徐煜明 电子工业出版社
5、《MCS-51单片机实验指导》 孙江宏 李良玉 编著 机械工业出版社
6、《51单片机机器C语言程序开发实例》戴仙金 编著 清华大学出版社
C语言程序:
#include
unsignedchara=0,x=0;
voidtimer0(void)interrupt1using0
{
TH0=0xd8;TL0=0xf0;x++;
}
main()
{
TMOD=0x51;TH0=0xd8;TL0=0xf0;
EA=1;ET0=1;ET1=1;TR0=1;TR1=1;TH1=0;TL1=0;
while
(1)
{
if(P0==0xff) { P2=0x35;};\\如果两个探头没有发现障碍,小车前进
if((P0==0xfd)||(P0==0xfe)||(P0==0xfc) \\探头发现前面有障碍
{while(x<10);P2=0x00;x=0;\\延时让小车停下,主要是进行一个去抖功能
while(x<30);x=0;if(P0==0xfc)\\两个探头发现障碍,此时当墙壁处理,后退转弯
P2=0x3a;while(x<100);x=0;P2=0x00;
while(x<100);x=0;P2=0x36;while((x<180)||(P0!
=0xff));x=0;};};
if(P0==0xfd)\\其中一个探头发现障碍,进行遥过处理
机械结构三维图