基于AT89S52的声音导引系统设计

时间:2022-09-17 05:43:19

基于AT89S52的声音导引系统设计

摘 要:介绍了声音导引系统的设计与实现。该系统包括单片机系统电路、声源调制电路、接收器电路、步进电机驱动电路、声光提示电路等。采用两块单片机(AT89S52)分别作为可移动的声源的检测和控制核心。由单片机1根据三个接收器接收声源信号的先后时间确定声源当前的位置,再由无线发送给单片机2。单片机2利用ASSP芯片(型号MMC-1)控制电机的转速实现可移动声源的运动控制,并且移动到位后给出声光提示。该电路设计方法简单、功耗低、性价比高,经调试可实现声音导引系统的精确控制。

关键词:单片机; 声音导引; 移动声源; ASSP芯片

中图分类号:TP271文献标识码:B

文章编号:1004-373X(2010)08-0182-04

Design of Voice Guidance System Based on AT89S52

FENG Yang

(Weinan Teachers University, Weinan 714000, China)

Abstract:The design and implementation of the voice guidance systerm are introduced. The system consists of SCM system circuit, sound source modulation circuit, receiver circuit, stepping motor drive circuit and acoustoopic cuecircuit.Two single chip computers (AT89S52) are respectively used as the mobile sound source detection and control cores. The current location of the sound source is determined by MCU1 according to the time sequence of receiving a sound source signal by three receivers, and then is sent to the MCU2 through radio. MCU2 uses ASSP chip microcontroller (model MMC-1) to control the motor speed to achieve the motion control of mobile source, and sends out an acoustooptic cue when arriving at the designated place. The circuit is simple and haslow power consumption and high cost-performance ratio. The precise control of the voice guidance system can be realized by debugging.

Keywords:single chip computer; voice guidance; moving sound source; ASSP chip

0 引 言

2009年全国大学生电子设计大赛的B题是“声音导引系统”;题目要求设计并制作一声音导引系统声音导引系统有一个可移动声源S,三个声音接收器A,B,C,声音接收器之间可以有线连接。声音接收器能利用可移动声源和接收器之间的不同距离,产生一个可移动声源离指定位置的误差信号,并用无线方式将此误差信号传输至可移动声源,引导其运动。

1 系统的具体设计与实现

1.1 系统组成

系统组成如图1所示,在系统设计中采用两块单片机(AT89S52)分别作为可移动的声源的检测和控制核心。通过单片机(MCU1)对接收器接收到声源信号的时间做处理,检测出当前小车的位置,然后通过无线发送给MCU2。MCU2根据当前的位置控制电机的转速及转向,当停止下来时给出相应的声光提示。

图1 系统组成框图

1.2 具体算法实现

1.2.1 设计与计算

该设计主要是根据接收器接收到声源信号的时间间隔来确定当前小车的位置S,如图2所示。设S点到C点的距离为a。S点到A点的距离为b;S点到B点的距离为c。设S点的坐标设为(l,h),假设由单片机测得接收器A、接收器B和接收器C接收到信号的时间间隔计算出b与a的距离差为c1;b与c的距离差为c2。в赏2中关系可得到如下方程:

Иb-a=c1,b-c=c2,l2+h2=b2

l=2p1(p1-1)(p1-b)(p1-a)

h=2p2(p2-1)(p2-b)(p2-c)

p1=1/2(1+b+c),p2=1/2(1+b+a)

则可根据测量的距离差Еd=|c2-c1|求得相应的小车的位置(l,h)。

1.2.2 误差信号产生

该设计的误差信号产生主要有三个方面:

检波误差 由声源信号产生的半波损失,其误差的大小与声源信号发射的频率有关。当频率越小时,Еd=|c2-c1|г蛟叫 H缙德饰5 kHz的声源信号,其周期为0.2 ms,则半波损失导致Δd=0.1 ms×340 m/s=3.4 cm,所以频率越大,半波损失越小。

单片机的测量时间产生的误差 单片机晶振为24 MHz,内部时钟经12分频后,时钟周期为0.5 μs,测量时间误差为±0.5 μs,则会产生一定的误差信号。

计算误差 在计算声源位置的过程中,数据有一定的取舍,则会产生一定的误差。

图2 系统示意图

1.2.3 控制理论简单算法

该设计的控制理论简单算法主要考虑三种方案:

方案一: 根据计算出的Еd=|c2-c1|的值来确定小车是否移动,当移动到Δd=0时,控制小车停止。

方案二:根据测得Δd=|c2-c1|的具体值控制字PWM,PWM=KΔd,其中k为比例调节,Δd越大,K越大,从而控制小车的速度。

方案三: PID控制算法[2]

在连续运动控制系统中,将偏差的比例(P),积分(I)和微分(D)通过线性组合构成控制量。控制系统中以驱动电机转速采样信息为反馈量,采用增量式数字PID控制算法,通过输出PWM信号对电机实现闭环控制。计算公式为:

ИЕun=KP(en-en-1)+KIen+KD(en-2en-1+en-2)И

式中: Еun为第n次输出增量;en为第n次偏差;en-1为第n-1次偏差;en-2为第n- 2次偏差。增量式PID控制系统中的KP,KI,KDР问,一般经反复测试、分析,最终确定理想数值。考虑到算法的简单可行和实际应用,采用方案一最简单,且能够实现小车速度的控制。

2 单元硬件电路设计

根据系统组成框图,系统只要由以下几部分电路组成,对各电路的设计与实现,分别有以下不同的设计方案。

2.1 可移动声源调制电路设计

可移动声源产生的信号为周期性音频脉冲信号。利用RC振荡电路产生可调的周期性音频脉冲信号,经功率放大再由扬声器向外发送,该方案产生的音频信号高次谐波信号较大,经过电路的改进使高次谐波大大减小,可以满足设计要求。电路图如图3所示。

图3 声源电路设计

2.2 接收器电路设计

接收器电路主要用于接收可移动声源发出的音频脉冲信号,然后传送给单片机(MCU1),由单片机1(MCU1)对接收器接收到声源信号的时间做处理,检测出当前小车的位置,然后通过无线发送给单片机2(MCU2)。所以能不能很好地接收到音频信号是整过设计的关键。设计考虑接收器的信号采集传感器采用MIC,将采集信号放大、滤波、整形,产生方波信号,传送给单片机,由于MIC灵敏度较高,受外界噪声干扰较大,中间加高通滤波电路,可实现对声源信号的接收。电路图如图4所示。

图4 接收电路设计

2.3 小车控制电路设计

小车控制电路设计采用NEC的电机控制ASSP芯片[3](型号MMC-1)实现可移动声源的运动,用UART模式和ASSP芯片进行通信使之提供控制信号,再用L298驱动电机转动。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50 V,可以直接通过电源来调节输出电压;可以直接用ASSP芯片口提供信号;而且电路简单,使用比较方便。通过控制L298的IN1,IN2,IN3,IN4输入端控制电机的转速及转向。此方案接口简单,不占用系统资源[4]。

图5 MMC-1芯片电路图

图6 驱动电路l298

2.4 小车转向精度控制及路程计算

小车转向精度控制及路程计算的方案有多种,考虑到安装的复杂和调试容易程度,设计采用反射式光电对管,对车轮上的黑白码盘检测,产生脉冲计数,从而计算小车行驶路程和转向控制[5]。

3 软件设计

3.1 软件设计说明

在小车程序中,一开始打开无线接收,在收到数据后进行判断小车是否到达预定位置,如果没有到达则继续由算法控制计算PWM值,由PWM值控制电机的转速和转向;如果收到数据后判断到达了预定位置,则发出声光信号指示到达了预定位置。

对于监测端程序设计,首先对测量值通过滤波算法进行滤波,然后将上次的测量值发送,再将定时器清零,判断INT3是否有下降沿到来,如果没有监测到下降沿,则继续等待,如果有,则开定时器,开中断,延时100 μs后又继续对测量值滤波[6-7]。

3.2 程序流程图

程序流程如图7所示。

图7 程序流程图

4 测试数据

4.1 基本要求

(1) 可移动声源发出声音后开始运动,到达ox线并停止,这段运动时间为响应时间,测量响应时间,用下列公式计算出响应的平均速度,要求平均速度大于5 cm/s。

平均速度=

可移动声源的起始位置到ox线的垂直距响应时间

(2) 可移动声源停止后的位置与ox线之间的距离即定位误差,定位误差小于3 cm。

(3) 可移动声源在运动过程中任意时刻超过ox线左侧的距离,超过ox线左侧的距离小于5 cm。

(4) 可移动声源到达ox线后,必须有明显的光和声指示。

(5) 将可移动声源转向180°(可手动调整发声器件方向),能够重复基本要求。

4.2 发挥部分

(1) 平均速度大于10 cm/s;定位误差小于1 cm;可移动声源在运动过程中任意时刻超过ox线左侧距离小于2 cm。

(2) 在完成基本要求部分移动到ox线上后,可移动声源在原地停止5~10 s,然后利用接收器A和C,使可移动声源运动到W点,到达W点以后,必须有明显的光和声指示并停止,此时声源距离W的直线距离小于1 cm。整个运动过程的平均速度大于10 cm/s。

4.3 基本要求测试

测试数据表如表1所示。将可移动声源转向180°(可手动调整发声器件方向),重复上述基本要求。测试数据表如表2所示。

表1 基本要求测试数据

测试次数小车平均速度 /(cm/s)定位误差 /cm超过ox线左侧距离 /cm声光提示

162.70有

26.52.90有

35.52.5m1有

表2 将可移动声源转向180°后测试数据

测试次数小车平均速度 /(cm/s)定位误差 /cm超过ox线左侧距离 /cm声光提示

16.71.21.5有

28.12.22.0有

38.42.52.4有

4.4 发挥部分测试

测试数据如表3所示。

表3 发挥部分测量数据

测试次数小车平均速度 /(cm/s)定位误差 /cm超过ox线距离 /cm停止距W点的距离/cm声光提示

19.80.900.9有

29.6 0.901.1有

310.20.20.40.8有

经测试数据显示,该设计能够达到大赛的基本要求,对于发挥部分也基本能够实现。

5 结 语

该设计基于完备可靠的硬件设计,采用 NEC电子电机控制ASSP芯片和AT89S52的控制和运算优势,使用了一套独特的软件算法,实现了声音导引系统的精确控制。

参考文献

[1]全国大学生电子设计竞赛组委会. 声音导引系统(B题) [DB/ OL]. \. http: //www. nuedc. com. cn/2009exam.

[2]石振东, 吕科, 喻清洲, 等. 基于红外路径识别的智能车控制系统设计[J]. 湖北汽车工业学院学报, 2007, 21(3): 11-14.

[3]NEC电子电机控制ASSP芯片MMC-1说明书 [DB/OL]. \. http: //www. cn. necel. com/.

[4]张建化,陈悦,雄永超. 基于AT89S52单片机的电动车跷跷板系统设计[J]. 现代电子技术, 2008, 31(24): 163-165.

[5]赵健,吴顺伟,任志舶. 基于倾角传感器的自动平衡系统[J]. 现代电子技术, 2008, 31(16): 192-194.

[6]戴佳, 戴卫恒. 51单片机C语言应用程序设计\. 北京:电子工业出版社,2006.

[7]谢维成,杨加国. 单片机原理与应用及C51程序设计\. 北京:清华大学出版社, 2006.

[8]郑云水, 杜丽霞. 基于AT89S52单片机的水温控制系统设计\. 现代电子技术, 2008, 31(6): 156-158.

上一篇:基于FPGA视频采集中的I2C总线设计与实现 下一篇:基于地域通信网流量攻击方法的仿真研究