循迹小车_测速_显示_无线遥控

时间:2024.4.21

20xx年黑龙江科技大学 电子设计大赛报告

题目:竞速小车

循迹小车测速显示无线遥控

20xx年6月

目录

目录

引言................................................................................................................................ 1

1 方案设计与论证 .................................................................................................... 1

1.1

1.2

1.3

1.4

1.5

1.6 电机驱动部分论证与分析 .............................................................................. 1 传感器探测部分论证与分析 .......................................................................... 2 电机部分论证与分析 ...................................................................................... 2 显示部分论证与分析 ...................................................................................... 2 电源部分论证与分析 ...................................................................................... 3 控制单元部分论证与分析 .............................................................................. 3

2 原理分析与硬件电路图 ........................................................................................ 4

2.1

2.2

2.3

2.4

2.5 系统总体设计 .................................................................................................. 4 车体部分设计 ................................................................ 错误!未定义书签。 电机驱动模块 .................................................................................................. 5 循迹探测模块 .................................................................................................. 7 稳压电路的设计 .............................................................................................. 8

3 软件设计与流程 .................................................................................................... 9

3.1

3.2 主程序框图 ...................................................................................................... 9 源程序 ............................................................................................................ 10

4 制作安装调试 ...................................................................................................... 17

4.1

4.2 电路设计与制作 ............................................................................................ 17 小车的检测与调试 ........................................................................................ 18

5 总结....................................................................................................................... 18

6 参考文献 .............................................................................................................. 18

7 附录....................................................................................................................... 19

7.1 元器件列表 .................................................................................................... 19

竞速小车

摘要:本设计以一片单片机STC89C52作为核心来控制自动循迹小车,采用四个减速电机,加以控制芯片L298N和单片机联合控制小车的前进与后退。路面的黑带检测使用RPR220红外传感器,经过LM339处理后,传送给STC89C52对输入的信号进行处理,通过一个液晶显示器以动态显示的形式显示小车走过的路程和速度。可实现遥控小车的开始和结束。

关键词:STC89C52 L298N RPR220 1602 LM339

引言

报告是以小车的总体设计为主要线索,包括小车的设计分析及发案论证、小车的软件设计、小车的硬件设计、以及总体的设计流程。共分为五部分。其中第一部分主要是对小车总体设计及各个设计方案进行了论证,第二部分是对小车硬件部分的设计做了详细的介绍,第三部分重点叙述了软件的设计及流程和各种相关的算法,第四部分介绍了我小车设计的开发流程,第五部分叙述了我在设计过程中遇到的问题和解决方法,并对本次的设计活动做了总结报告和在本次活动中的心得。

1 方案设计与论证

本次竞赛要求制作的小车能够循黑线前进并且达到竞速的目的,而且要显示走过的时间和速度。并且有按键起车与声光语言提示。根据题目的要求,我们组设计了以下几种方案并对各方案进行了论证与分析。

1.1 电机驱动部分论证与分析

方案1:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻络只能实现有级调速,而数字电阻的元器件价格昂贵。更主要的问题在于一般电动机的电阻较小,但电流很大;分压不仅会降低效率,而且很难实现。

方案2:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。方案的优点是电路较为简单,缺点是继电器的响应时间慢,机械 结构易损坏,寿命较短,可靠性不高。

方案3:采用达林顿管TIP4组成的PWM电路。用单片机控制达林顿管使之工作在占空比可调的状态,精确调整电机转速。

方案4:采用L298N来控制电机的正转和反转来实现小车的前进和后退,并且如果再利用上PWM,就可以实现整车的加速与减速,精确小车的速度。

基于上述理论分析,拟选择方案4。

1

竞速小车

1.2 传感器探测部分论证与分析

方案1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。 但是这种方案受光照影响很大,不能够稳定的工作。因此我们考虑其他更加稳定的方案。

方案2:用红外发射管和接收管自己制作光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我们放弃了这个方案。

方案3:用RPR220型光电对管。RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。 简单实用,特别适合我们这次的制作。

基于上述理由我们选择了方案3。

1.3 电机部分论证与分析

方案一:采用直流电机

直流电机速度快,价格便宜,通过调节电流来改变速度,驱动电路简单,调速范围广,调速特性平滑。但其转距小,带有大负载时很容易堵转;而且由于其速度较快,不易控制,精确度低,不适合应用在本题。

方案二:采用步进电机

步进电机是一种能将电脉冲转化为角位移的机构,通过控制脉冲个数来控制角位移量,通过控制脉冲频率来控制电机转动的速度和加速度,其精确度高,但控制相对较繁琐。

方案三:采用减速电机

减速电机也是通过控制电流来改变速度的,而且其内部有减速齿轮箱,转距大,而且易控制,速度较步进电机快。通过分析题目要求,减速电机可以达到题目要求的精度,而且价格适中,控制简单。

综上所述,我们决定采用方案3——减速电机。

1.4 显示部分论证与分析

方案1:使用数码管显示。

数码管显示具有亮度高,色彩选择多的优点,但是数码管占用I/O资源多,控制复杂,功耗较大,显示信息量较少且单一。

方案2:使用1602液晶屏显示。

液晶显示驱动简单,易于控制,功耗小,且显示信息量大,可以直观地观测到小车的位置及速度信息。

基于上述理论分析,我们决定选择方案2。

2

竞速小车

1.5 电源部分论证与分析

方案1:采用2节4.2V可充电式锂电池串联共8.6V给直流电机供电,经过7805的电压变换后给支流电机供电,给单片机系统和其他芯片供电。但由于电压不太够,价格昂贵,因此,我们放弃了。

方案2:采用:9V蓄电池为直流电机供电,将12V电压降压、稳压后给单片机系统和其他芯片供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但蓄电池的体积过于庞大,使用极为不方便。

方案3: 采用3节3.7V锂电池供电,电压达到11v,经7805稳压后给支流电机供电,给单片机系统和其他芯片供电。但价钱还是太贵。

基于上述理论,我们选择方案2。

1.6 控制单元部分论证与分析

方案1:采用纯数字电路

该方案外部检测采用光电转换,系统控制部分采用数字电路译码对小车电动机两端电压调整,来控制小车的运行。时间和行程用加法器进行计数。此系统的设计将会使电路过于复杂,调试时需要改变硬件电路,机动性差。

方案2:用单片机控制

用光电检测不同的信号,并经单片机对其处理,传送给L298信号,使其控制电机的正转和反转。通过单片机内部定数器/计数器进行定时、计数,在用单片机串行输入/输出口进行显示控制。此方案电路成熟、工作稳定、容易实现控制。 为能更好的实现题目的各种设计要求,所以我们选用第二种方案。用单片机进行控制。其工作框图如下:

单片机控制工作图

循迹小车测速显示无线遥控

3

竞速小车

2 原理分析与硬件电路图

2.1 系统总体设计

基于上述各方案的论证与分析,我们确定了最终方案。整个系统采用11V锂电池供电。系统的总体结构框图如图1所示。

系统总体框

2.2 单片机资源分配

STC89C52单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。它由如下功能部件组成,8位微处理器、128字节数据存储器、8k程序存储器、p1、p2、p3、p4四个8位并行I/O口、1个全双工的串行口,具有四种工作方式。可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,、片内有2个16位的定时器/计数器, 具有四种工作方式。具有5个中断源,2级中断优先权及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。为了合理调用单片机的资源,如图2-2是单片机资源分配图。

循迹小车测速显示无线遥控

4

竞速小车

循迹小车测速显示无线遥控

寻迹检测光电对管

测速光电对管

图2-2 单片机资源分配图

2.3 电机驱动模块

我们主要采用L298驱动两台直流电机电路如图-3所示,。L298可驱动2个

电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动两台直流减速电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。2,3,13,14四个脚连接直流减速电机。6,11脚接PWM信号(即EnA,EnB接控制使能端)控制电机的停转。四组光耦对输入、输出电信号起隔离作用。8脚接地。表2-3是L298N功能逻辑真值表图。

Ven为6,11脚。IN1=IN3,IN2=IN4.

IN1为5脚。 IN2为7脚。 IN3为10脚。 IN4为12脚。

表2-3 L298驱动电路真值表

5

循迹小车测速显示无线遥控

竞速小车

循迹小车测速显示无线遥控

由表2-3可知同为低电平时,电机停止工作;ENA和ENB同为高电平时,电机正转或反转。

L298驱动两台直流电机电路 图2-3

L298管脚排列如下:

6

循迹小车测速显示无线遥控

竞速小车

循迹小车测速显示无线遥控

2.4 循迹探测模块

小车循迹原理是小车在贴有黑胶带的白色路面上行驶时,由于黑线和白线对光线的反射系数不同,可根据接受的反射光的强弱来判断黑线,我们采用了比较普遍的检测方法——红外检测法。

红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射特点。在小车行驶过程中不断的向地面发射红外光,当红外光遇到白色地面时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车的接收管接收不到信号,在通过LM339作比较器采集高低电平,从而实现信号的检测。

市场上有很多红外传感器,在这里我们选用了RPR220。

RPR220采用DIP4封装,其具有如下特点:

1.塑料透镜可以提高灵敏度。

2.内置可见光过滤器能减小离散光的影响。

3.体积小,结构紧凑。

RPR220参数如下:

7

竞速小车

循迹小车测速显示无线遥控

电路图如下:

循迹小车测速显示无线遥控

2.5 稳压电路的设计

为了给整个控制系统提供一个稳定的电压,在此选择了7805稳压管作为该电路的核心芯片。该稳压电路的设计如图3.3.5所示。

8

竞速小车

循迹小车测速显示无线遥控

图3.3.5 稳压电源电路图

7805稳压管有一系列固定的电压输出,应用非常的广泛,每种类型由于内部电流限制,以及过热保护和安全工作区的保护,使它基本上不会损坏,如果能够提供足够的散热片,他们就能够提供大于1.5A的输出电流,虽然是按照固定电压值来设计的,但是当接入适当的外部器件后,就能获得各种不同的电压和电流。

3 软件设计与流程

3.1 主程序框图

此部分是整个小车运行的核心部件,起着控制小车所有运行状态的作用。控制方法有很多,大部分都采用单片机控制。由于51单片机具有价格低廉是使用简单的特点,这里选择了STC89C52作为控制核心部件,其程序控制方框图如图所示。

9

竞速小车

图3.3.1 系统的程序流程图

小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信号变化,程序就进入判断程序,把相应的信号发送给电动机从而纠正小车的状态。

3.2 源程序

#include<reg52.h>

sbit IN1=P1^0;

sbit IN2=P1^1;

sbit IN3=P1^2;

sbit IN4=P1^5;

sbit ENA=P1^6;

sbit ENB=P1^7;

sbit hong=P1^3;

sbit feng=P1^4;

sbit ce1=P2^0;

sbit ce3=P2^2;

sbit ce2=P2^1;

sbit ce4=P2^3;

循迹小车测速显示无线遥控

10

竞速小车

sbit ce5=P2^4;

sbit lcden=P2^7;

sbit lcdrs=P2^5;

sbit wr=P2^6;

sbit ce6=P3^2;

sbit ce7=P3^3;

sbit p1=P3^3;

sbit p2=P3^4;

unsigned char code table[]="Vmax: cm/s"; //显示最高速度 unsigned char code table1[]="Va: cm/sT: s";//显示瞬时速度和行驶时间 unsigned char num,j,n,m=0;

unsigned int x=0,a=0,k=0,l=0,lu1=0,lu2,Va=0,t=0,Vm=0;

void delay(unsigned int z) // 延时函数 {

unsigned int x,y;

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

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

}

void write_com(unsigned char com) //液晶写命令 {

lcdrs=0;

P0=com;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

void write_data(unsigned char date) //液晶写数据 {

lcdrs=1;

P0=date;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

void init() //液晶初始化 {

wr=0;

lcden=0;

write_com(0x38);

write_com(0x0c);

11

竞速小车

write_com(0x06);

write_com(0x80+0x00);

for(num=0;num<12;num++)

{

write_data(table[num]);

delay(2);

}

write_com(0x80+0x40);

for(num=0;num<16;num++)

{

write_data(table1[num]);

delay(2); }

}

void display(unsigned char add,unsigned int date) //送入液晶显示 {

unsigned char bai,shi,ge;

bai=date/100;

shi=date%100/10;

ge=date%10;

write_com(0x80+0x40+add);

write_data(0x30+bai);

write_data(0x30+shi);

write_data(0x30+ge);

}

void stop() //停止

{

ENA=1;

ENB=1;

IN1=0;

IN2=0;

IN3=0;

IN4=0;

}

void back() //后退

{

ENA=1;

ENB=1;

IN1=1;

IN2=0;

12

竞速小车

IN3=1;

IN4=0;

}

void stright() {

ENA=1;

ENB=1;

IN1=0;

IN2=1;

IN3=0;

IN4=1;

}

void right() {

ENA=1;

ENB=1;

IN3=0;

IN4=1;

IN1=0;

IN2=0;

}

void right1() {

ENA=1;

ENB=1;

IN3=0;

IN4=1;

IN1=1;

IN2=0;

}

void left() {

ENA=1;

ENB=1;IN3=0;

IN4=0;

IN1=0;

IN2=1;

}

void left1() {

ENA=1; //前进 //右转 //右转 //左转 //左转

13

竞速小车

ENB=1;

IN3=1;

IN4=0;

IN1=0;

IN2=1;

}

void main()

{

EA=1;

EX1=1;

IT1=1; //外部中断1为跳变沿出发方式//

EA=1;

EX0=1;

IT0=1; //外部中断0为跳变沿出发方式//

EA=1;

ET1=1;

TMOD=0x10;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

TR1=1; //定时器1装初值

if(hong==0) //遥控

{

init(); //液晶初始化 feng=0;

delay(111);

feng=1;

x++;

}

while(x) //进入循迹程序 {

if((ce4==0)&&(ce1==0)&&(ce2==0)&&(ce3==1)&&(ce5==0)) //前进 1 {

delay(1);

stright();

TR1=1; //打开定时器1

}

if((ce4==1)&&(ce1==0)&&(ce2==0)&&(ce3==0)&&(ce5==0)) //右转1

14

竞速小车

{

delay(1);

right();

}

if((ce4==1)&&(ce3==1)&&(ce5==1)&&(ce1==0)&&(ce2==0)) //右转2 {

delay(1);

right1();

delay(111);

delay(111);

}

if((ce4==0)&&(ce3==1)&&(ce5==1)&&(ce1==0)&&(ce2==0)) //右转3 {

delay(1);

right1();

delay(111);

delay(111);

}

if((ce4==1)&&(ce3==0)&&(ce5==1)&&(ce1==0)&&(ce2==0)) //右转4 {

delay(1);

right1();

delay(111);

delay(111);

}

if((ce4==0)&&(ce1==0)&&(ce2==1)&&(ce3==0)&&(ce5==0)) //左转1 {

left();

}

if((ce1==1)&&(ce2==1)&&(ce3=1)&&(ce4==0)&&(ce5==0)) //左转2 {

delay(1);

left1();

delay(111);

delay(111);

}

if((ce1==1)&&(ce2==0)&&(ce3=1)&&(ce4==0)&&(ce5==0)) //左转3 {

delay(1);

left1();

15

竞速小车

delay(111);

delay(111);

}

if((ce1==1)&&(ce2==1)&&(ce3=0)&&(ce4==0)&&(ce5==0)) //左转4 {

delay(1);

left1();

delay(111);

delay(111);

}

if(hong==0) //进入停止函数

{

while(1)

{

stop();

feng=0;

delay(111);

delay(111);

back();

delay(111);

delay(111);

delay(111);

stop();

feng=1;

display(12,t); //显示行驶时间 Va=(lu1+lu2)*3/(2*t); //计算速度

if(Va>Vm)

{

Vm=Va;

} display(5,Vm); //显示最大速度 display(3,Va); //显示瞬时速度 TR1=0; //关闭定时器1

while(1); }

}

if((ce1==1)&&(ce2==1)&&(ce3==1)&&(ce4==1)&&(ce5==1)) //停止 {

display(12,t); // 显示行驶时间 Va=(lu1+lu2)*3/(2*t); //计算速度

if(Va>Vm)

{

Vm=Va;

16

竞速小车

}

display(5,Vm);

display(3,Va);

TR1=0;

}

}

}

void time1() interrupt 3 using 1

{

TH1=(65536-50000)/256;

TL1=(65536-50000)%256; //重装初值

m++;

if(m==20)

{

m=0;

t++;

}

}

void time2() interrupt 4

{

lu1++;

}

void time3() interrupt 0

{

lu2++;

}

//显示最大速度 //显示瞬时速度 //关闭定时器1

4 制作安装调试

4.1 电路设计与制作

我们根据实际需要,手工将循迹模块,控制模块,驱动模块制作出来,并通过铜柱,螺母等将其固定在洞洞板上

17

竞速小车

4.2 小车的检测与调试

在检测过程中,我们设计的小车有冲出跑道的情况,而无法正常循黑线前进,我们分析可能的原因是:1.路探测,每一个RPR220之间的距离安装的不合理,导致小车有探测的不灵敏,而冲出跑道;2。程序需要优化;3.车速太快,而检测装置不够灵敏,这种情况下,我们选择了降低电压,减少车速。

表2调试情况

循迹小车测速显示无线遥控

5 总结

首先感谢学校电子设计大赛给我们这样一次珍贵的锻炼机会,在这20多天的时间里,我们三个人同心协力,分工合作,共同完成了智能循迹小车的项目。在制作过程中遇到了很多困难与挫折,我们也一度灰心丧气,但是我们都一步步挺了过来,克服了一个又一个的困难,最终完成了制作。

在这一次的大赛中,我们获益匪浅。其中不仅仅包括知识上的,也包括意志与精神上的。刚开始的我们在制作小车方面的知识几乎可以说是零,在制作过程中,由于缺乏经验和忽略细节问题,我们在调试的时候经常碰到很多奇怪的问题,但是我们通过耐心的调试,或者上网查阅资料,直到弄懂为止;遇到分歧,我们就在一块讨论,共同研究。参加此次培训对我们来说是一次宝贵经历,也是人生的一笔精神财富。当然由于知识能力与水平有限,我们也有做的不好与不完善的地方,恳请老师批评指正,希望下次我们能够做的更好。

6 参考文献

[1]全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品精选 (1994——1999)[M].北京:北京理工大学出版社,20xx年第1版.

[2]王晓明. 电动机的单片机控制. 学术期刊,2002;

[3]王东锋,王会良,董冠强. 单片机C语言应用100例[M]. 电子工业出版社。2009.3;

[4]郭天祥 《十天学会单片机和C语言编程视频教程》

18

竞速小车

7 附录

7.1 元器件列表

循迹小车测速显示无线遥控

19

更多相关推荐:
循迹小车实践报告

江西理工大学创新实验报告题目循迹小车的制作学院电气工程与自动化学院专业自动化班级学生黄学号113盼时间20xx年8月2号自动循迹小车目录目录摘要1任务及要求11任务2系统设计方案21小车循迹原理22控制系统总体...

智能循迹小车课程设计报告

青岛理工大学琴岛学院课程设计报告课题名称智能循迹机器人小车学院机电工程系专业班级电气工程及其自动化学号20xx020xx29学生许辉指导老师张岐磊青岛理工大学琴岛学院教务处20xx年12月14日

智能循迹小车设计报告

电子作品设计报告项目名称智能小车学院机电工程学院专业应用电子技术班级组别第三组姓名杨磊赖焕宁梁广生指导老师杨青勇玉宁1目录摘要3关键词3引言3一系统设计311设计要求412车体方案认证与选择4二硬件设计及说明5...

智能循迹小车报告

电子信息专业实验报告课程电子信息系统综合设计实验MCU部分实验题目智能机器小车设计实验总分学生姓名学号学生姓名学号学生姓名学号实验时间地点分组电子信息学院专业实验中心目录一摘要二题目要求三软硬件设计方案四各部分...

智能循迹小车设计报告

电子作品设计报告项目名称智能循迹小车1摘要本组的智能循迹小车是采用自主设计的车体以两个直流电机来驱动小车各个模块自行设计通过反射式红外光电传感器TCRT5000来采集跑道信息传送至主控芯片STC12C5A60S...

循迹小车实验报告

实践设计报告(嵌入式技术实践二)学院:电气工程与自动化学院题目:基于51单片机的循迹小车专业班级:自动化131班学号:19学生姓名:***指导老师:***20xx年6月30日第一章引言1.1设计目的通过设计进一…

循迹小车设计报告-精华51单片机智能小车

设计报告课程机器人工程设计名称智能循迹小车小组成员学号专业机械电子工程日期20xx25指导老师成绩智能小车设计1任务及要求11任务设计一个基于直流电机的自动寻迹小车使小车能够自动检测地面黑色轨迹并沿着黑色车轨迹...

智能循迹小车报告

西京学院自动化1002班概要本寻迹小车是以万能板为车架STC12C5A60S2单片机为控制核心将各传感器的信号传至单片机分析处理从而控制L293D电机驱动控制小车速度由单片机提供的PWM波控制利用红外传感器检测...

寻迹小车实验报告

课程设计报告学院:电气工程与自动化学院题目:基于单片机的寻迹小车专业:自动化班级学号:113班07号姓名:指导老师:xxx教授20xx/x/x第一章:绪论11.1:前言41.2:课程的来源迹和现状41.2.1:…

基于89s51单片机的循迹小车设计报告

基于89s51单片机的循迹小车设计报告摘要本文介绍了基于at89s52单片机的智能小车的设计与实现小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶小车系统以AT89S52单片机为系...

循迹小车设计报告

循迹小车设计报告作品名称黑色印记循迹遥控小车设计要求1设计一套循迹小车外形如下图所示可以从淘宝上购买散件2小车可以在15m1m的黑色跑道上按照黑色印记前进3增加遥控功能包括前进后退停车4提高小车的运行速度5拍摄...

智能循迹小车设计、调试报告

20xx年湖南省第三期中职教师资培训电子技术应用专业专业方向选修模块智能寻迹小车设计与调试报告学员杜正国周伟凌畅小组号第四组湖南省应用电子技术专业教师水平认证岳阳职业技术学院培训基地20xx年12月20日1串联...

循迹小车报告(37篇)