2023年12月2日发(作者:路虎揽胜价格多少钱)

.

西安郵電學院

测控仪器课程设计报告书

系部名称学生姓名专业名称班 级时间 自动化学院

测控技术与仪器

测控0804

2011年9月19日 至

2011 年9月 30日

: : : : :

*; .

小车智能自动避障系统

一、 设计要求:

以红外传感器ST188或ST178作为小车的测距传感器,进行障碍物探测。当发现障碍物时,给出报警信号,自动适当改变行进方向继续前行。

二、设计方案分析

2.1 方案设计:

该系统中我们设计一个小车,以STC89C52单片机为主控制芯片,由L298N芯片控制直流电机转动从而使小车向前跑动;通过一个红外传感器ST188实现小车自动检测障碍物。系统中主控制器的多个I/O口作为通用I/O口分别连接L298N输出控制信号、ST188输入信号,蜂鸣器报警。

系统硬件总体设计框图如图1所示。

通用I/O口

ST188传感器

ST89C52

微控制器

通用I/O口

L298N芯片

直流电机转动

图 1 系统硬件框图

2.2背景知识介绍:

2.2.1主控制器介绍:

80C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。

1 .微处理器

该单片机中有一个8位的微处理器,与通用的微处理器基本相同,同样包括了运算器和控制器两大部分,只是增加了面向控制的处理功能,不仅可处理数据,还可以进行位变量的处理。

2 .数据存储器

片内为128个字节,片外最多可外扩至64k字节,用来存储程序在运行期间的工*; .

作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。

3. 程序存储器

由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至64k字节。

4. 中断系统

具有5个中断源,2级中断优先权。

5. 定时器/计数器

片内有2个16位的定时器/计数器, 具有四种工作方式。

6 .串行口

1个全双工的串行口,具有四种工作方式。可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。

7. P1口、P2口、P3口、P4口

为4个并行8位I/O口。

8 .特殊功能寄存器

共有21个,用于对片内的个功能的部件进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。

由上可见,80C51单片机的硬件结构具有功能部件种类全,功能强等特点。

2.2.2电机调速方法

方案一:串电阻调速系统。

方案二:静止可控整流器。简称V-M系统。

方案三:脉宽调速系统。

旋转变流系统由交流发电机拖动直流电动机实现变流,由发电机给需要调速的直流电动机供电,调节发电机的励磁电流即可改变其输出电压,从而调节电动机的转速。改变励磁电流的方向则输出电压的极性和电动机的转向都随着改变,所以G-M系统的可逆运行是很容易实现的。该系统需要旋转变流机组,至少包含两台与调速电动机容量相当的旋转电机,还要一台励磁发电机,设备多、体积大、费用高、效率低、维护不方便等缺点。且技术落后,因此搁置不用。

V-M系统是当今直流调速系统的主要形式。它可以是单相、三相或更多相数,半波、全波、半控、全控等类型,可实现平滑调速。V-M系统的缺点是晶闸管的单向导电性,它不允许电流反向,给系统的可逆运行造成困难。它的另一个缺点是运行条件要求高,维护运行麻烦。最后,当系统处于低速运行时,系统的功率因数很低,并产生较大的谐波电流危害附近的用电设备。

采用晶闸管的直流斩波器基本原理与整流电路不同的是,在这里晶闸管不受相位控制,而是工作在开关状态。当晶闸管被触发导通时,电源电压加到电动机上,当晶闸管关断时,直流电源与电动机断开,电动机经二极管续流,两端电压接近于零。脉冲宽度调制(Pulse

*; .

Width Modulation),简称PWM。脉冲周期不变,只改变晶闸管的导通时间,即通过改变脉冲宽度来进行直流调速。

与V-M系统相比,PWM调速系统有下列优点:

(1)由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可以获得脉动很小的直流电流,电枢电流容易连续,系统的低速运行平稳,调速范围较宽,可达1:10000左右。由于电流波形比V-M系统好,在相同的平均电流下,电动机的损耗和发热都比较小。

(2)同样由于开关频率高,若与快速响应的电机相配合,系统可以获得很宽的频带,因此快速响应性能好,动态抗扰能力强。

(3)由于电力电子器件只工作在开关状态,主电路损耗较小,装置效率较高。

根据以上综合比较,以及本设计中受控电机的容量和直流电机调速的发展方向,本设计采用了H型单极型可逆PWM变换器进行调速。

脉宽调速系统的主电路采用脉宽调制式变换器,简称PWM变换器。

脉宽调速也可通过单片机控制继电器的闭合来实现,但是驱动能力有限。为顺利实现电动小汽车的前行与倒车,本设计采用了可逆PWM变换器。可逆PWM变换器主电路的结构式有H型、T型等类型。我们在设计中采用了常用的双极式H型变换器,它是由4个三极电力晶体管和4各续流二极管组成的桥式电路。

三、硬件设计:

3.1总体设计

智能小车采用双轮同时驱动,左右轮两边各用一个电机,控制两个轮子的转速起停从而达到避障的目的。将红外传感器分别装在车体上面主板的前方中间位置。当其检测到障碍物时,主控芯片给出信号报警(蜂鸣器响或绿灯亮)并控制车子减速——停止——倒退——转向——直走——加速,从而避开障碍物实现小车自动避障功能的实现。

系统硬件电路主要分为:主控制器(51单片机),电机驱动模块,信号检测模块。

3.2单片机最小系统控制模块设计

方案一:采用MSP430系列的16位单片机,它是16位控制器,具有体积小、驱动能力强、可靠性高、功耗低、结构简单、具有语音处理、运算速度快等优点,但考虑到我们小组对这个方案采用的微处理器并不熟悉,使用起来并不是很方便。因此我们决定不再使用此方案,考虑其他方案。

方案二:采用STC51单片机控制。STC51单片机是一种低功耗、高性能CMOS8位微控制器,具有 8KB的系统可编程Flash 存储器。AT89S52具有以下标准功能:

8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路,能够满足题目设计的所有要求,而且我们对STC51单片机也比较熟悉,因此我们选择方案二。最小系统电路图如图3.1所示

*; .

图3.1 单片机最小系统

3.3电机驱动模块

方案一:

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

方案二:

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

方案三:

采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 H型桥式电路。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM调速技术。现市面上有很多此种芯片,我们选用了L298N(如图3.2)。

这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。

电机驱动一般采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而可以采用L298N电路来驱动电机。通过单片机给予L298N电路PWM信号来控制小车的速度,起停。其引脚图如3.2,驱动原理图如图3.3。

*; .

图3.2 L298N引脚图

图3.3 电机驱动电路

3.4信号检测模块

该系统中的信号检测模块我们采用的是ST188传感器。ST188是一个无限红外模块,它有一个发射管(白色)和一个接收管(黑色),一般情况下接收管能收到发射管发送的红外光,但当遇到吸光介质(如黑色物体)时接收管便不能收到发射管的红外光。由于这种现象,加上合适的硬件电路(下图3.4),我们可以引出一条信号线,当一切正常时,信号线处于一种状态,但当遇到吸光介质时信*; .

号线便处于另一种状态,利用这种不同状态的差异我们便可以通过微控制器来实现小车躲避障碍物。图3.4是该系统中ST188应用电路图。

图 2.4 ST188应用电路图

实际硬件中我们可以通过调节滑动变阻器的R5电阻值来选取理想的反射距离,从而提高ST188传感器的灵敏度。

四、软件设计:主程序流程图如下:

*; .

上电运行后,放到没有障碍物的空地上,小车直走。当前方没有障碍物的的时候车就一直直走。如果前方遇到障碍物,则小车做左转运动。直至前方没有障碍物,这时小车恢复直走。

如果前方有障碍物的时候,左边同时也有障碍物,则小车右转。直至左边没有障碍物或者前方没有障碍物。这时小车恢复左转,或者直走。如果前面没有障碍物,则先执行直走。

五、测试数据及设计结果:

本设计制作完成了题目要求的基本部分,达到了预期的目标。我们通过各种方案的讨论及尝试,再经过多次的整体软硬件结合的调试,不断地对系统进行优化,小车实现了避障功能。图5.1为主体电路实物图,图5.2为智能避障小车实物图。

图5.1 主体电路实物图

图5.2 智能避障小车实物图

附录Ⅰ 小车智能自动避障系统电路原理图

*; .

由于无法实际仿真障碍物的存在,我们采用开关进行模拟,当P2.0口的开关打开,表示ST188检测到障碍物的存在,进行直流电机的控制。

附录Ⅱ:程序代码

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit

sbit

sbit

sbit

sbit

sbit

en1=P1^6;

en2=P1^7;

in1_1=P1^0;

in1_2=P1^1;

in2_1=P1^2;

in2_2=P1^3;

//左电机使能端

//右电机使能端

//L298_1的Input 1 *左*

//L298_1的Input 2

//L298_2的Input 1 *右*

//L298_2的Input 2

*; .

sbit sign=P2^7; //主传感器信号

sbit beep=P2^0;

sbit deng=P2^6;

uchar num=0; // pwm调速中断计数器

uchar PWM_left=30; // 电机速度值 参数:0~100

uchar PWM_right=30;

uchar q=0;

void

void

void

void

void

void

void

void

void

void

void

void

run_1();

go();

back();

stop();

left();

//前进

//后退

//停止

//微调左

right();

left_90();

right_90();

init();

//微调右

//左转90°

//右转90°

//终端初始化,定时器初始化

//小延时 dus(uchar);

delay(uint); //大延时

timer0();

void xiang();

/***************************************************************************/

void go()

{

}

in1_1=1;

in1_2=0;

in2_1=1;

in2_2=0;

//前进

*; .

void back()

{

in1_1=0;

in1_2=1;

in2_1=0;

in2_2=1;

//后退

}

void stop()

{

in1_1=0;

in1_2=0;

in2_1=0;

in2_2=0;

}

void left() //{

in1_1=0;

in1_2=1;

in2_1=1;

in2_2=0;

dus(100);

}

void right()

{

in1_1=1;

in1_2=0;

in2_1=0;

in2_2=1;

dus(100);

*;

//停止

微调左

//更改参数可调节角度 //微调右

//更改参数可调节角度

.

}

void left_90()

{

}

void right_90()

{

}

void delay2(uint z)

{

}

/****************************中断初始化***********************/

void init()

{

TMOD=0x22;

TH0=0x9b;

TL0=0x9b;

// 设定T0和T1的工作模式为2

// 装入定时器的初值

uint x,y;

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

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

in1_1=0;

in1_2=0;

in2_1=0;

in2_2=1;

delay(80); //更改参数可调节角度

//右90°

in1_1=0;

in1_2=0;

in2_1=1;

in2_2=0;

delay(80); //更改参数可调节角度

//左90°

*; .

}

/******大延时,其中夹杂小判断函数,这样可以实现类似扫描的功能*****/

void delay(uint i)

{

}

/************************************************************************************************************/

void dus(uchar s)

{

}

/******定时器中断函数:用于产生PWM信号***************/

void timer0() interrupt 1 /* T0中断服务程序 */

{

if(num

{

}

else

{en1=0;

}

if(num

{

/* 产生电机1的PWM信号 */

en1=1;

for(;s>0;s--);

//小延时

uint j;

for(;i>0;i--)

for(j=0;j<1100;j++);

//大延时

EA=1;

ET0=1;

TR0=1;

// 开中断

// 定时器0允许中断

*; .

}

/*******************************避障函数************************/

void run_1()

{

go();

delay(10);

if(!sign)

{

deng=1;

beep=0;

stop();

delay(50);

back();

delay(70);

right_90();

go();

delay(80);

for(;q<10;q++)

{left();

}

}

else

{

en2=0; /* 产生电机1的PWM信号 */

en2=1;

}

num++;

if(num>=100)

num=0; /* 1个PWM信号由100次中断产生 */

*; .

}

/***********主函数******************************/

void main()

{

}

init();

delay(50);

while(1)

{

}

run_1();

left_90();

go();

delay(200);

left_90();

go();

delay(80);

right_90();

go();

delay(150);

left_90();

left_90();

beep=1;

deng=0;

}

*;

更多推荐

系统,小车,控制,电路,调速,采用,障碍物