智能红外避障小车的设计与制作讲解.docx
《智能红外避障小车的设计与制作讲解.docx》由会员分享,可在线阅读,更多相关《智能红外避障小车的设计与制作讲解.docx(11页珍藏版)》请在冰豆网上搜索。
智能红外避障小车的设计与制作讲解
成绩评定表
学生姓名
魏玉柱
班级学号
1303070138
专业
电子信息科学与技术
课程设计题目
智能红外避障小车的设计与制作
评
语
组长签字:
成绩
日期
2015年1月9日
课程设计任务书
学院
信息科学与工程学院
专业
电子信息科学与技术
学生姓名
魏玉柱
班级学号
1303070138
课程设计题目
智能红外避障小车的设计与制作
实践教学要求与任务:
系统功能
小车沿直线行驶,当探测到前方有障碍物时停止,再后退,然后右转弯,最后继续前进,如此反复。
工作计划与进度安排
讲解设计内容及要求2015年01月08日(1-4节)
编写程序代码2015年01月08日(5-8节)
程序测试及调试2015年01月09日(1-4节)
答辩验收2015年01月09日(5-8节)
指导教师:
2015年1月日
专业负责人:
2015年1月日
学院教学副院长:
2015年1月日
智能红外避障小车的设计与制作
1.设计思想与总体方案
1.1设计思想
小车沿直线行驶,当探测到前方有障碍物时停止,再后退,然后右转弯,最后继续前进,如此反复。
1.2总体设计方案和框图
本设计以AT89C2051单片机作为检测和控制核心,用红外光电开头探测障碍物,小车底盘作车体。
框图如下:
2.系统硬件组成及设计原理
本系统硬件部分由单片机单元,红外传感器单元,电机驱动单元,蜂鸣器单元,键盘输入单元及电源单元组成。
2.1单片机单元
本系统采用AT89C2051单片机作为中央处理器,其主要任务是扫描键盘输入的信号启动小车,读P3.5判断前方有无障碍物,并执行相关动作(本设计中P3.5=0时,前方有障碍;P3.5=1时前方无障碍),P1.4----P1.7是电机驱动口;P3.7是蜂鸣器信号输出;P3.5接红外传感器。
2.2红外传感器单元
为简化硬件电路,传感器单元采用了发射/接收一体化的红外光电开头,型号E3F-DS30C4,点击图片可以查看其详细资料。
该传感器为漫反射型,使用电压范围宽(DC6V--36V),探测距离可调节,最大可达30CM,输出信号可直接与单片机的I/O口相连接。
2.3电机驱动单元
PR5履带式坦克底盘为双电机驱动,转弯非常灵活,本系统用常用的电机驱动集成电路L293D控制两只电机。
L293D内含2个H桥的高电压大电流双全桥式驱动器,接收标准的TTL逻辑电平信号,可驱动36V,2A以下的电机。
2,7,10,15接输入控制电平;3,6和11,14脚分别接两只电机,1,9脚接控制使能端,控制电机停转,单片机输出两组PWM信号,每一组PWM信号用来控制一个电机的转速。
现以其中一组电机为例来说明:
2,7脚输入高/低或低/高,实现电机的正/反转
2,7脚均为高或均为低,实现电机停转
1脚为高电电平时,2,7脚输入才有效,反之输入无效(所以在本系统中将1和9脚接高电平),也可以在1脚输入PWM信号,通过调整PWM的占空比来实现电机的无级调速(本系统中未使用)。
2.4蜂鸣器单元
设计为上电蜂鸣,按启动按键和有障碍物时蜂鸣一次。
由三极管,蜂鸣器和电阻组成。
2.5键盘输入单元
设计两只按键,S2启动,由单片机扫描P3.4,此脚为低电平时启动;S1是停止,刚开始想通过编程来实现,后来在与朋友交流时,决定把S1装在复位电路中,这个办法既简单又有效,呵呵。
2.6电源电路
系统采用两组电压供电,+8.4V是电机驱动电压,+5V供给单片机,L239D及蜂鸣器电路等。
3.软件设计
由于系统要实现的功能比较简单,所以程序也比较简单。
想要实现小车的前进,停止,后退和右转弯,单片机在各个阶段P1口的状态如下:
P1=01100000=60H(十六进制), P1.7=0 P1.6=1 P1.5=1 P1.4=0 ,小车前进
P1=10010000=90H(十六进制), P1.7=1 P1.6=0 P1.5=0 P1.4=1, 小车后退
P1=00000000=00H(十六进制), P1.7=0 P1.6=0 P1.5=0 P1.4=0, 小车停止
P1=01010000=50H(十六进制), P1.7=0 P1.6=1 P1.5=0 P1.4=1, 小车右转
4.硬件连接图及源程序
4.1硬件连接图
4.2源程序
ORG 000H ,开机初始化
MOVA,#00H
MOVP1,A ,P1口清零
LCALLBING ,上电蜂鸣
START:
MOVC,P3.4
MOV22H,C
JB22H,START ,按键扫描
LCALLBING ,按下按键时蜂鸣
JNB22H,QIDONG ,按下按键转QIDONG
QIDONG:
LCALLDEL ,延时启动
LCALLDEL
LCALLDEL
DETECT:
MOVC,P3.5 ,检测程序
MOV24H,C
JB24H,ADVAN
JNB24H,STOP
ADVAN:
MOVA,#60H ,前进子程序
MOVP1,A
LCALLDEL
AJMPDETECT ,返回检测程序
STOP:
LCALLBING ,停止子程序,调蜂鸣程序
MOVA,#00H
MOVP1,A
LCALLDEL ,此处可设置停止时间
LCALLDEL
LCALLDEL
LCALLDEL
LCALLDEL
RETRE:
MOVA,#90H ,后退子程序
MOVP1,A
LCALLDEL ,此处可设置后退时间
LCALLDEL
LCALLDEL
LCALLDEL
LCALLDEL
LCALLDEL
RIGHT:
MOVA,#50H ,右转子程序
MOVP1,A
LCALLDEL ,此处可设置右转弯时间
LCALLDEL
LCALLDEL
LCALLDEL
LCALLDEL
AJMPDETECT ,一个避障动作结束,返回检测程序
BING:
CLRP3.7 ,蜂鸣器蜂鸣子程序
LCALLDEL1
SETBP3.7
RET
DEL:
MOVR7,#220 ,延时子程序
D2:
MOVR6,#220
DJNZR6,$
DJNZR7,D2
RET
DEL1:
MOVR4,#200 ,延时子程序
D1:
MOVR3,#200
DJNZR3,$
DJNZR4,D1
RET
END ,程序结束
5.实物图
6.结束语
写完收工,这是用单片机做的第一辆小车,欢迎大家拍砖;随着以后知识的积累,我会让它更加的智能化