关键词:
ASSP芯片 , AT89S52 , 测试 , 声音
1 引言
2009年全国大学生电子设计大赛的B题是“声音导引系统”;题目要求设计并制作一声音导引系统声音导引系统有一个可移动声源S,三个声音接收器A,B,C,声音接收器之间可以有线连接。声音接收器能利用可移动声源和接收器之间的不同距离,产生一个可移动声源离指定位置的误差信号,并用无线方式将此误差信号传输至可移动声源,引导其运动。
2 系统的具体设计与实现
2.1 系统组成
系统组成如图1所示,在系统设计中采用两块单片机(AT89S52)分别作为可移动的声源的检测和控制核心。通过单片机(MCUl)对接收器接收到声源信号的时间做处理,检测出当前小车的位置,然后通过无线发送给MCU2。MCU2根据当前的位置控制电机的转速及转向,当停止下来时给出相应的声光提示。
2.2 具体算法实现
2.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中关系可得到如下方程:
则可根据测量的距离差△d=|c2-c1|求得相应的小车的位置(l,h)。
2.2.2 误差信号产生
该设计的误差信号产生主要有三个方面:
检波误差 由声源信号产生的半波损失,其误差的大小与声源信号发射的频率有关。当频率越小时,△d=|c2-c1|则越小。如频率为5 kHz的声源信号,其周期为O.2 ms,则半波损失导致△d=0.1 ms×340 m/s=3.4 cm,所以频率越大,半波损失越小。
单片机的测量时间产生的误差 单片机晶振为24 MHz,内部时钟经12分频后,时钟周期为O.5μs,测量时间误差为±0.5μs,则会产生一定的误差信号。
计算误差 在计算声源位置的过程中,数据有一定的取舍,则会产生一定的误差。
2.2.3 控制理论简单算法
该设计的控制理论简单算法主要考虑三种方案:
方案一:根据计算出的△d=|c2-c1|的值来确定小车是否移动,当移动到△d=O时,控制小车停止。
方案二:根据测得△d=|c2-c1|的具体值控制字PWM,PWM=K△d,其中k为比例调节,△d越大,K越大,从而控制小车的速度。
方案三:PID控制算法
在连续运动控制系统中,将偏差的比例(P),积分(I)和微分(D)通过线性组合构成控制量。控制系统中以驱动电机转速采样信息为反馈量,采用增量式数字PID控制算法,通过输出PWM信号对电机实现闭环控制。计算公式为:
式中:△un为第n次输出增量;en为第n次偏差;en-1为第n-1次偏差;en-2为第n-2次偏差。增量式PID控制系统中的KP,KI,KD参数,一般经反复测试、分析,最终确定理想数值。考虑到算法的简单可行和实际应用,采用方案一最简单,且能够实现小车速度的控制。
3 单元硬件电路设计
根据系统组成框图,系统只要由以下几部分电路组成.对各电路的设计与实现,分别有以下不同的设计方案。
3.1 可移动声源调制电路设计
可移动声源产生的信号为周期性音频脉冲信号。利用RC振荡电路产生可调的周期性音频脉冲信号,经功率放大再由扬声器向外发送,该方案产生的音频信号高次谐波信号较大,经过电路的改进使高次谐波大大减小,可以满足设计要求。电路图如图3所示。
3.2 接收器电路设计
接收器电路主要用于接收可移动声源发出的音频脉冲信号,然后传送给单片机(MCUl),由单片机1(MCUl)对接收器接收到声源信号的时间做处理,检测出当前小车的位置,然后通过无线发送给单片机2(MCU2)。所以能不能很好地接收到音频信号是整过设计的关键。设计考虑接收器的信号采集传感器采用MIC,将采集信号放大、滤波、整形,产生方波信号,传送给单片机,由于MIC灵敏度较高,受外界噪声干扰较大,中间加高通滤波电路,可实现对声源信号的接收。电路图如图4所示。
3.3 小车控制电路设计
小车控制电路设计采用NEC的电机控制ASSP芯片(型号MMC-1)实现可移动声源的运动,用UART模式和ASSP芯片进行通信使之提供控制信号,再用L298驱动电机转动。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50 V,可以直接通过电源来调节输出电压;可以直接用ASSP芯片口提供信号;而且电路简单,使用比较方便。通过控制L298的INl,IN2,IN3,IN4输入端控制电机的转速及转向。此方案接口简单,不占用系统资源。
3.4 小车转向精度控制及路程计算
小车转向精度控制及路程计算的方案有多种,考虑到安装的复杂和调试容易程度,设计采用反射式光电对管,对车轮上的黑白码盘检测,产生脉冲计数,从而计算小车行驶路程和转向控制。
4 软件设计
4.1 软件设计说明
在小车程序中,一开始打开无线接收,在收到数据后进行判断小车是否到达预定位置,如果没有到达则继续由算法控制计算PWM值,由PWM值控制电机的转速和转向;如果收到数据后判断到达了预定位置,则发出声光信号指示到达了预定位置。
对于监测端程序设计,首先对测量值通过滤波算法进行滤波,然后将上次的测量值发送,再将定时器清零,判断INT3是否有下降沿到来,如果没有监测到下降沿,则继续等待,如果有,则开定时器,开中断,延时100μs后又继续对测量值滤波。
4.2 程序流程图
程序流程如图7所示。
5 测试数据
5.1 基本要求
(1)可移动声源发出声音后开始运动,到达ox线并停止,这段运动时间为响应时间,测量响应时间,用下列公式计算出响应的平均速度,要求平均速度大于5 cm/s。
(2)可移动声源停止后的位置与ox线之间的距离即定位误差,定位误差小于3 cm。
(3)可移动声源在运动过程中任意时刻超过ox线左侧的距离,超过ox线左侧的距离小于5 cm。
(4)可移动声源到达ox线后,必须有明显的光和声指示。
(5)将可移动声源转向180°(可手动调整发声器件方向),能够重复基本要求。
5.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。
5.3 基本要求测试
测试数据表如表l所示。将可移动声源转向180°(可手动调整发声器件方向),重复上述基本要求。测试数据表如表2所示。
5.4 发挥部分测试
测试数据如表3所示。
经测试数据显示,该设计能够达到大赛的基本要求,对于发挥部分也基本能够实现。
6 结语
该设计基于完备可靠的硬件设计,采用NEC电子电机控制ASSP芯片和AT89S52的控制和运算优势,使用了一套独特的软件算法,实现了声音导引系统的精确控制。