2024年1月3日发(作者:)

题 目: 黑线检测(巡线小车)

题目

主要内容

设计通过集成的红外传感器检测跑道的黑线(跑道中线),采集和传输信号,并预备发送校正信号。这只是巡线小车的感知模块,但很重要,对精度要求较高。

设计基础

利用所学电子技术知识、单片机知识,完成黑线检测的设计实现

计划学生数 4

计划学生数及任务

一名同学主要负责理解黑线检测的硬件电路工作原理与电路设计情况;

一名同学主要负责单片机编程与实现;

两名同学主要负责基于文档撰写整理,并协助电路与编程实现。

第1天,查找搜集资料,了解掌握红外检测硬件电路工作原理;

第2-3天,利用单片机进行编程,通过proteus仿真实现,得出结果;

第4-5天,在电路板上焊接硬件电路;

计划进度

第6-8天,调试硬件和软件;

剩余时间,完成设计报告,要有摘要、正文、附录、参考文献等部分。

谭浩强编著.C程序设计第二版[M].北京:清华大学出版社,1999

徐爱钧、彭秀华.单片机高级语言 C51 应用程序设计.--北京:北京航空航天大学出版社

参考文献

2006.

薛均义、张彦斌. MCS-51 系列单片微型计算机及其应用.--西安:西安交通大学出版社 2005.

楼然苗.51系列单片机设计实例.—北京:北京航空航天大学出版社2006.

黄智伟.传感器应用设计实例制作.—北京:电子工业出版社 2006.

课程设计任务书

目 录

黑线检测(巡线小车)

摘要... 1

关键词... 1

1 引言... 1

1.1 系统设计目的... 1

1.2 系统设计方案... 1

2系统硬件设计... 2

2.1基于单片机的黑线检测的总体设计... 2

2.2.单元模块... 2

2.2.1单片机控制电路... 2

2.2.2黑线检测电路... 3

2.2.3显示电路…………………………………………………………………….5

3 系统软件设计... 5

3.1 程序流程图... 5

3.2 程序... 6

4 测试结果... 6

4.1系统测试... 6

4.2硬件测试... 7

5总结... 7

参考文献... 8

附录

摘要

提出了一种循线避障小车的设计方法,利用红外技术检测障碍物和采集地面信息,采用AT89C52单片机进行适时控制,实现黑线检测。并可对系统进行扩展。

关键词

单片机、电源、红外对管

1 引言

1.1 系统设计目的

机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。故对机器人的研究已成为必要。 智能循线和避障是基于智能导引小车系统,本设计采用红外传感器实现巡线小车的黑线检测功能。

1.2 系统设计方案

基于单片机的黑线检测的设计

电路分为三个部分:1、单片机系统 2、红外检测电路 3、显示电路

1、单片机系统:用AT89C52单片机,复位电路,时钟电路

2、红外检测电路:红外传感器ST188,比较器LM324

3、显示电路:一个红色发光二极管

2系统硬件设计

2.1基于89C52单片机的黑线检测的的总体设计

图 1 系统总体硬件电路设计

2.2单元模块设计

根据系统要实现的功能,本系统分为三个电路:单片机控制电路、红外检测电路和显示电路。分别将各单元电路功能介绍如下:

2.2.1单片机控制电路

AT89C52 为 ATMEL 所生产的可电气烧录清洗的 8051 相容单芯片,其内部程序代码容量为8KB

AT89C52主要功能列举如下:

1、为一般控制应用的 8 位单芯片

2、内部程式存储器(ROM)为 8KB

3、内部数据存储器(RAM)为 256B

4、32 条双向输入输出线,且每条均可以单独做 I/O 的控制

5、6个向量两级中断

6、3个16 位定时器 / 计数器

7、1 个全多工串行通信端口

8、支持软件选择的空闲和掉电两种节电模式

时钟电路和复位电路(与单片机构成单片机最小系统)

1)采用外部时钟,晶振频率为12M

2)采用按键复位

图2 时钟电路和复位电路

2.2.2黑线检测电路

ST系列反射式光电传感器是经常使用的传感器。这个系列的传感器种类齐全、价格便宜、体积小、使用方便、质量可靠、用途广泛。

我们采用ST188作为红外检测传感器。

在黑线检测的测试中,若检测到白色区域,发射管发射的红外线没有反射到接收管,测量接收管的电压为4.8 ,若检测到黑色区域,接收管接受到发射管发射的红外线,电阻发生变化,所分得的电压也就随之发生变化,测的接收管的电压为0.5,测试基本满足要求。

判断有无黑线我们用的一块比较器LM324, 比较基准电压由30K的变阻器调节,各个接收管的参数都不一致,每个传感器的比较基准电压也不尽相同,我们为每个传感器配备了一个变阻器。

1)红外传感器ST188简介

含一个反射模块(发光二极管)和一个接收模块(光敏三极管)。通过发射红外信号,看接收信号变化判断检测物体状态的变化。

图 3 ST188实物图

图 4 ST188管脚图及内部电路

A、K之间接发光二极管,C、E之间接光敏三极管(二者在电路中均正接,但要串联一定阻值的电阻)

2) 比较器LM324简介

LM324为四运放集成电路,采用14脚双列直插塑料封装。,内部有四个运算放大器,有相位补偿电路。电路功耗很小,工作电压范围宽,可用正电源3~30V,或正负双电源±1.5V~±15V工作。

在黑线检测电路中用来确定红外接收信号电平的高低,以电平高低判定黑线有无。在电路中,LM324的一个输入端需接滑动变阻器,通过改变滑变的阻值来提供合适的比较电压。

图 5 LM324实物图

图 6 LM324内部电路

图 7 集成运放的管脚图

3)具体电路如下:

通过ST188检测黑线,输出接收到的信号给LM324 ,接收电压与比较电压比较后,输出信号变为高低电平,再输入到单片机中,用以判定是否检测到黑线。

图8 黑线检测模块(含检测与比较)

2.2.3显示电路

若输入单片机的信号为低电平,则二极管不停闪烁;若为高电平,二极管则保持亮状态。

3系统软件设计

3.1程序流程图

3.2 程序

事先在reg52.h 文件中定义:

sbit jc=P1^0;

sbit xs=P2^0;

#include

#define uint unsigned int

#define uchar unsigned char

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=100;y>0;y--);

}

void main()

{

while(1)

{

if(jc==0)

{

xs=1;

delay(1000);

xs=0;

delay(1000);

}

xs=0;

}

}

4 系统测试

4.1软件测试

(1)打开Keil μVision2,新建Keil项目,选择AT89C52单片机作为CPU,新建C源文件,编写程序,并将其导入到“Source Group 1”中。在“Options for Target”对话窗口中,选中“Output”选项卡中的“Create HEX File”选项和“Debug”选项卡中的“Use:Proteus VSM Simulator”选项。编译源程序,改正程序中的错误。

(2)在Proteus ISIS中,选中AT89S52并单击鼠标左键,打开“Edit Component”对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“Program File”栏中,选择先前用Keil生成的.HEX文件。在Proteus

ISIS的菜单栏中选择“File”→“Save Design”选项,保存设计。在Proteus ISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“Use Remote Debug Monitor”选项,以支持与Kile的联合调试。

(3)在Kile的菜单栏中选择“Debug”→“Start/Stop Debug Session”选项,或者直接单击工具栏中的“Debug>Start/Stop Debug Session”图标,进入程序调试环境。按“F5”键,顺序运行程序。调出“Proteus ISIS”界面,得到程序运行结果。

4.2 硬件测试

(1)先给89C52芯片烧写程序(即将HEX文件加载到芯片中)。这里需要STC-ISP下载软件,下载器实物(带USB插口及串口线)。将下载器通过USB插口及串口线与电脑相连,再通过软件将HEX文件加载到芯片中。

(2)将芯片插到芯片插座上,检查硬件电路无误。用稳压源给系统提供5V直流电压,然后红外传感器ST188对着黑、白物体,看发光二极管是否点亮(若检测黑色,则二极管不停闪烁;若检测白色,二极管则保持亮状态)

(3)若未达到检测效果,则用万用表测试ST188接收信号,若接收信号在黑、白两种状态下有变化,则确定ST188正常工作;然后再检测LM324输出信号在黑、白两种状态下是否有变化,这里需要反复通过改变接入LM324的滑动变阻器阻值来改变比较电压,最终使输出信号在黑、白两种状态下有变化,则可以达到检测效果。

5总结

通过课程设计,不仅能提高学生学习单片机的兴趣,加深对单片机的理解,开阔视野,也能为以后毕业设计打下良好的基础。学生基本经历了单片机应用系统开发的全过程,扩大了学生的实践内容,从而取得了较好的教学实践效果。任何收获都要付出巨大的努力,在这个领域里面我几乎是从零开始,但是我们克服了重重困难,学到了很多东西。

我们此次设计的软件部分是用C语言来编程的。由于C语言是近年在国内外得到迅速推广应用的一种语言。C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。通过这次的C语言程序设计我们更加了解了C语言。在C语言程序设计的过程中我们知道了自己在以前的学习中有很大的不足,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,不过这也给自己敲响了警钟,在学习中不可以浮于表面,要想学好每一门课程都要踏实。

本次实训增强了我们查阅资料的方法技巧,更是大大的提高了我们自学的能力,同时也增强了我们的动手能力。

在这两个星期的课程设计过程中,我们四个人一起查找资料、一起讨论、一起交流,最终我们决定了设计方案并成功完成设计,这些都培养了我们的团结合作精神。此次设计让我们受益匪浅。

参考文献

【1】谭浩强编著.C程序设计第二版[M].北京:清华大学出版社,1999

【2】徐爱钧、彭秀华.单片机高级语言 C51 应用程序设计.--北京:北京航空航天大学出版社 2006.1

【3】薛均义、张彦斌. MCS-51 系列单片微型计算机及其应用.--西安:西安交通大学出版社 2005.1

【4】楼然苗.51系列单片机设计实例.—北京:北京航空航天大学出版社 2006

【5】黄智伟.传感器应用设计实例制作.—北京:电子工业出版社 2006.4

附实物电路图: