-
《单片机课程设计》
设计报告
设计课题:
超声波避障小车
专业班级:
电子信息工程
121
班
学生姓名:
范东耀
指导教师:
蔡岗
设计时间:
2015
年
7
月
8
日
赣南师范学院科技学院数学与信息科学系
超声波避障小车
一、设计任务与要求
1.
设计任务
:
1
、采用超声波模块实现小车自动避障功能。
2
、用
LCD1602
显
示当前的障碍距离。
2.
扩展部分:
测出当前小车的行驶速度,并用
LCD1602
显示当前速度。
二、方案设计与论证
1
设计方案
系统采用
51
单片机作为核心控制单元用于智能车系统的控制,
驱动板则以
L289N
驱动芯片为核心,应用超声波模块及光电
传感器和
LCD
液晶模块,成功的
实现
了小车的避障、测速和显示功能这三大功能。在超声波检测到障碍物之后,
主控芯片根据
距离值控制电机的转动,
在与障碍物距离较大的情况下,
快速前
进,
在与障碍物距离较小但未到达临界转弯方向值得时候,
慢速
前进。
在与障碍物距
离较近时,小车转弯,在与障碍物很近时,
小车后退转弯,来进行避障。测速传
感器为光电测速传感器,
在
单位时间内计算脉冲的次数,
然后再进行转换和处理
即得到所测
量的速度。
通过软件
pwm
进行调速。
通过
LCD1602
显示障碍距离及当
前的小车行驶速度。
2
原理框图
简要原理框图如图
1
所示。
图
1
系统原理框图
三、电路设计
1
电路设计
(
1
)超声波测距模块:
超声波测距的
原理是首先利用单片机输出一个
40kHz
的触发信号,
把触发信
号通过
TRIG
管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一
方向发射超声波,
在发射时刻的同时单片机通过软件开始计时,
超声波在空气中<
/p>
传播,
途中碰到障碍物返回,
超声波测距
模块的接收器收到反射波后通过产生一
个回应信号并通过
ECH
O
脚反馈给单片机,此时单片机就立即停止计时。时序图
如图<
/p>
1
所示。由于超声波在空气中的传播速度为
340m/s
,根据计时器记录的时
间
t
,就可以计算出发射点距障碍物的距离,即:
S=VT/2
,通过单片机来算出距
离。超声波测距原理图如图
2
所示。
图
2
超声波测距原理
< br>(
2
)显示模块:
系统采用
LCD1602
显示,
< br>它不仅节省了单片机的资源,
相比较数码管液晶显
示更加
直观、节能,同时可以直接显示字母、数字、符号等,具有灵活易操作的
特性。故采用<
/p>
LCD
显示。
引脚功能说明:
LCD1602
采用标
准的
16
脚(带背光)接口,各引脚接口说
明如表
1
所示:
表
1
LCD1602
引脚说明
编号
符号
1
2
3
4
5
6
7
8
VSS
VDD
VL
RS
R/W
E
D0
D1
引脚说明
电源地
电源正极
液晶显示偏压
数据
< br>/
命令选择
读
/
写选择
使能信号
数据
数据
编号
9
10
11
12
13
14
15
16
符号
D2
D3
D4
D5
D6
D7
BLA
BLK
引脚说明
数据
数据
数据
数据
数据
数据
背光源正极
背光源负极
(
3
)电机驱动模块:
本系统采用由
双极性管组成的
H
桥电路
(
L298N
)
。
用单片机
控制晶体管使之
工作在占空比可调的开关状态,
精确调整电机转
速。
这种电路由于工作在管子的
饱和截止模式下,则效率非常高
;
H
桥电路保证了可以简单地实现转速和方向的
控制,电子开关的速度很快,稳定性也很高。而且它有更强的驱动能力。
L29
8N
有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。
< br>
驱动电机的运行,
I/O
端口状态与电机制动对照表,如下表
2
所示。
< br>
表
2
I/O
端口状态与电机制动对照表
IN1
1
0
1
0
X
IN2
0
1
1
0
X
IN3
1
0
1
0
X
IN4
0
1
1
0
X
EN1
1
1
1
1
0
EN2
1
1
1
1
0
转速
正转
反转
停止
停止
停止
(<
/p>
4
)光耦传感器
光耦传感器原理是传感器开孔圆盘的转轴与减速电机转轴相连,
光源的光通过开孔盘的
孔和缝隙反射到光敏元件上,
开孔盘旋转体转一周,
光敏元件上照到光的次数等于盘上的开
孔数,从而测出旋转体旋转速度。灵
敏度较高,但容易受外界光源的影响。虽然光电传感器
受外界光源影响很大,但是它使用
方便、安装简单,还有本设计要求的准确度不是很高,因
此就选择了光耦测速传感器。<
/p>
光耦测速传感器的原理图如图
3
所示。
图
3
光耦测速传感器原理图
2
主要性能参数计算
当单片机的给一个
20us
的触发信号给超声波模块时,
TRIG
由低电平转换为
高电平,
TR
IG=1
,单片机开时计时,开启中断,并记录时间为
T1
p>
,接收换能器
等待接收回波,
ECHO
p>
持续为高电平的时间为发射时间。换能器接收回波将超声
波转换为电
信号,送至单片机,记录时间为
T2
。超声波发射的时间为:<
/p>
T2-T1,C
为声速,计算发射距离为:
L = (T2-T1)*C/2
。
< br>速度的计算是通过小车轮胎的周长除以测码盘转过孔的个数,
得出一个码盘
孔对应的长度为
1CM,
通过定时器取
1
秒时间,
1
秒转过
的码盘孔个数就是速度。
3
程序流程图
本设计系统软件由主程序﹑定时子程序、电机驱动子程序﹑中断子程序、显
示子程序﹑
算法子程序构成。主程序流程图如图
4
所示。
< br>
开始
定时器计数器
定时器计数器
初始化
初始化
液晶显示初始
化
打开中断允许
启动超声波模
块
收到回波信号
计算障碍距离
驱动电机转向
测当前速度
图
4
主程序
流程图
四、电路制作及调试
1
实物图
通过以上步骤,制作出实物图
。正面图如图
5
所示,反面图如图
6<
/p>
所示。
图
5
实物图正面
图
6
实物图反面
2
电路调试测试
在小车的调试的过程中
,
碰到的最大的问题就是程序有时会跑飞,
起初我觉
得出现问题的原因是有以下三点,第一,
程序的编写过于繁杂,
数据处理和逻辑
判断太多,芯片处理不过来,第二,数据经过处理后,传送
出去未来得及经过处
理就已经改变了值,
导致芯片来不及处理而跑飞,
第三,
数据的类型没有定义好
,
导致数据的值超过定义的类型的极限。
经过几天的程序调试,
我简化了程序的编
写,在重要数据的传送过程中加入了延时函数
,
保证数据有充足的传送时间,
并
把各
种参数定义的类型检查了几遍,
结果并没有解决程序跑飞的问题。
最后我发
现问题出在电源上,由于小车负载较多,
电源带载能
力有限,
导致芯片受到干扰
而跑飞,
我
将耗电能力较强的直流电机的电源断开,
电源只给芯片和其他模块供
电,程序能够良好的运行。最后我通过在程序中加入“看门狗”的程序,判断程
序是
否跑飞,若程序跑飞,将软件复位。能有效的解决程序跑飞的问题。
< br>在做测速模块时,
发现单片机的资源不够用,单片机只有两个定时器,我在
做超声波测距时已经用了一个定时器的计数模式做测距,
小车的
PWM
调速用了一
个定时器。而做测速还需要
两个定时器,一个定时器做计数,计码盘转的圈数,
一个定时器定
1
秒的时间,
从而可以算出当前的小车速度。我通过学习,了
解了
定时器复用,可以从
PWM
中的<
/p>
1MS
定时做处理,取出
1S
的时间,用外部中断计
码盘的圈数,再通过数据处理,可以得出小车的速度
。
3
元件清单
元件清单如表
3
所示。
表
3
元件清单
器件
电阻
电容
三极管
超声波模块
液晶显示屏
型号
10K 1M 1k
0.1u 10u
9013
HC-
SR04
LCD1602
数量
各
2
个
各
1
个
2
个
1
个
1
个
1
个
2
个
1
个
1
个
17
单价
0.1
0.3
0.2
3.8
5.1
8
3.6
3.6
28.5
0.6
0.6
0.4
3.8
5.1
8
3.6
3.6
28.5
54.2
元
合计
电机驱动模块
L298N
测速传感器
单片机
光耦窄槽版
89C52
底盘轮胎电机
合计
五
参考文献
[1]
潘永雄
.
沙河
.
电子线路
CAD
实用教程(第四版)
[M].
西安电子科技大学
p>
出版社,
2012.
< br>[2]
高吉祥
.
电子技术基础实
验与课程设计(第二版)
[M].
电子工业出版社,
2005.
[3]
王港元
.
电子设计制作基础
[M].
江西科学技术出版社,
2011.
[4]
彭介华
.
电子技术课程设计指导
[M].
高等教育出版社,
2009.
[5]
陈伯时
.
电力拖动自
动控制系统
[M].
机械工业出版社,
2012.