运水小车设计Word文档下载推荐.docx
《运水小车设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《运水小车设计Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
3.5电机驱动电路10
3.6无线遥控电路:
11
四、程序设计12
4.1主程序流程图13
4.2主程序13
五、系统调试18
六、小结19
七、参考文献19
附录20
系统实物图20
一.【摘要】:
本文提出一种智能循迹,自动运水小车的设计方法,利用红外技术检测障碍物信息,采用Mage16单片机进行实时控制,实现智能循迹,智能小车采用后轮驱动,两轮各用一个直流电机控制,避障用的传感器采用红外漫反射式传感器。
【关键词】:
避障光电开关差分控制LCD
二.功能概述
本小车可通过2262无线模块进行模式的切换,在手动模式下,通过遥控器按键的不同实现不同动作;
在自动模式下,机器人通过RPR220光电管实现对线路的自动识别,智能小车采用两轮驱动,左右两边各用一个电机驱动,分别控制两个轮子的转动从而达到转向的目的。
将三个红外线光电传感器分别装在车体的前方和后方,当红外传感器检测到小车左边出黑线时,主控芯片控制右轮电机停止左轮转动,车向右方转向,当传感器检测到小车右边出黑线时,主控芯片控制左轮电机停止转动,车向左方转向,当运行到终点时,主控芯片控制另一个电机将水箱翻起,降水倒出。
同时通过NOKIA5510液晶显示运水时间,运水量。
三.硬件设计
如下图所示,是本次设计智能小车的电路框图。
以Mage16为电路的中央处理器,来处理传感器采集来的数据,处理完毕之后以便去控制电机驱动电路来驱动电机。
电源部分是为整个电路模块提供电源,以便能正常工作。
3.1.避障电路
(1)
障碍物探测方案的选择
方案一:
脉冲调制的反射式红外线发射接受器。
由于采用该有交流分量的调制信号,则可大幅度减少外界干扰;
另外红外线接受官的最大工作电流取决于平均电流。
如果采用占空比小的调制信号,再品均电流不变的情况下,顺势电流很大(50—100mA),则大大提高了信噪比。
并且其反应灵敏,外围电路也很简单。
它的优点是消除了外界光线的干扰提高了灵敏度。
方案二:
采用超声波传感器,如果传感器接收到反射的超声波,则通知单片机前方有障碍物,如则通知单片机可以向前行驶。
市场上很多红外光电探头也都是基于这个原理。
这样不但能准确完成测量,而且能避免电路的复杂性
由以上两种方案比较可知。
方案二要比方案一优势大,市场上很多红外观点探头也都基于这个原理。
其电路简单,工作可靠,性能比较稳定。
从而避免了电路的复杂性,因此我先用方案二作为小车的监测系统。
避障电路采用漫反射式光电开关进行避障。
光电开关是集发射头和接收头于一体的检测开关,其工作原理是根据发射头发出的光束,被障碍物反射,接收头据此做出判断是否有障碍物。
当有光线反射回来时,输出低电平;
当没有光线反射回来时,输出高电平。
单片机根据接收头电平的高低做出相应控制,避免小车碰到障碍物,由于接收管输出TTL电平,有利于单片机对信号的处理。
(2)光电开关工作原理:
光电开关是通过把光强度的变化转换成电信号的变化来实现控制的。
光电开关在一般情况下,有三部分构成,它们分为:
发送器、接收器和检测电路。
避障电路如下:
避障电路功能表:
传感器
避障电路输出(上升沿动作)
待执行命令
左
中
右
左转信号(P2.1)
右转信号(P2.0)
√
右转
1
左转
前进
注解(“0”表示有障碍物;
“1”表示无障碍物)
3.2单片机电路
本设计的主控芯片选择Mage16,负责检测传感器的状态并向电机驱动电路发出动作命令。
复位电路采用手动复位。
单片机电路如下:
3.3显示电路:
显示电路由NOKIA5110组成,它可进行字母,汉字,图片的显示,功能强大,使用方便,所以本系统选用NOKIA5110作为显示模块,其电路如图所示。
NOKIA5110
3.4电源电路
本系统所有芯片都需要+5V的工作电压,而干电池只能提供的电压为1.5V的倍数的电压,并且随着使用时间的延长,其电压会逐渐下降,则需要LM7805稳压芯片。
L7805能提供300至500mA的电流,足以满足芯片供电的要求。
虽然微处理器和微控制器不需要支持电路,功耗也很低,但必须要加以考虑。
电源电路拟定为:
3.5电机驱动电路
市场上用很多种类的小电压直流电动机,很方便的选择到。
主要有普通电动机、和步进电动机。
采用步进电机,步进电动机的一个显著的特点就是具有快速启动和停止能力,能够达到我们所要求的标准。
如果负荷不超过步进电机所能提供的动态转矩值,就能够立即是步进电机启动或反转。
其转换灵敏度比较高。
正转、反转控制灵活。
但是步进电机的价格比较昂贵,对于我们的现状相差太远。
采用普通的直流电机。
直流电机具有优良的调速特性,调速平滑、方便。
调整范围广;
过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转。
能满足各种不容的特殊运行要求。
由于普通直流电机价格适宜,更易于购买,并且电路相对简单,因此采用直流电机作为动力源
本设计采用L298电机驱动芯片为直流电机驱动,由L298芯片组装直流电机驱动模块,同时利用光耦隔离模块,实现电路保护,构成的电路结构简单,方便,可靠!
驱动电路原路框图如下:
驱动电路原路框图
LM298应用电路图:
电机驱动连接电路图
3.6无线模块:
为了能对小车进行手动控制,我们选用了简易的基于HS2272和HS2262的无线收发模块。
利用2272和2262分别实现接收模块和发射模块电路设计。
无线收发模块
四. 程序设计:
本系统利用外部中断来接受遥控信号,通过接受信号的不同来改变运水模式,主程序在不断检测模式是否改变,通过不同模式实现不同动作!
系统中还利用了定时器来计算运水时间,当小车到达终点时,把水倒出,同时显示运水时间!
4.1主程序流程图:
主程序流程图
4.2源程序:
#include<
ioM16v.h>
#include<
macros.h>
#include"
5110.h"
motor.h"
wireless.h"
init.h"
/*------宏定义------*/
#defineucharunsignedchar
#defineuintunsignedint
ucharpotemp1=0,potemp2=0,potemp3=0,potemp4=0,potemp5=0,potemp6=0,pox=1,poy=0;
uintx_1,x_2;
uintms_conter=0,s_conter=0,m_conter=0,h_conter=0;
uintreceive=0,key=0,flot=0;
uintshuiliang=0;
uintx_220=255,y_220=0,z_220=0;
voidmain(void)
{
init_devices();
motor_1
(2);
motor_2
(2);
motor_3
(2);
motor_4
(2);
DDRB=0x00;
PORTB=0xFF;
key=PINB&
0xF0;
delay_ms(15);
//在这继续添加你的代码
//LCD_clear();
delay(100);
while
(1)
{
DDRB=0x0F;
//PORTB=0xFF;
if(key==0B00010000)
////前进
motor_3(0);
motor_4(0);
}
elseif(key==0B00100000)
//后退
motor_3
(1);
motor_4
(1);
else
if(key==0B01000000)
//右转
if(key==0B10000000)
//左转
if(key==0B00110000)
motor_1(0);
if(key==0B01010000)
motor_1
(1);
if(key==0B01100000)
motor_2(0);
if(key==0B10100000)
motor_2
(1);
elseif(key==0B10010000)
//break;
elseif(key==0B01110000)
DDRA=0X00;
PORTA=0XFF;
x_1=0XF0|PINA;
x_2=0X0f|PINA;
while(x_1!
=0xf0)
front_220();
}
motor_1
(2);
motor_2
(2);
motor_3
(2);
motor_4
(2);
delay(20);
motor_1(0);
//转盘转向,水箱在前
delay(280);
//motor_1
(1);
motor_2
(1);
//倒水
delay(200);
motor_2