2009年全国大学生电子设计大赛的B题是“声音导引系统”;题目要求设计并制作一声音导引系统声音导引系统有一个可移动声源S,三个声音接收器A,B,C,声音接收器之间可以有线连接。声音接收器能利用可移动声源和接收器之间的不同距离,产生一个可移动声源离指定位置的误差信号,并用无线方式将此误差信号传输至可移动声源,引导其运动。
1系统的具体设计与实现1.1系统组成系统组成如图1所示,在系统设计中采用两块单片机AT89S52分别作为可移动的声源的检测和控制核心。通过单片机MCUl对接收器接收到声源信号的时间做处理,检测出当前小车的位置,然后通过无线发送给MCU2。MCU2根据当前的位置控制电机的转速及转向,当停止下来时给出相应的声光提示。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中关系可得到如下方程:
则可根据测量的距离差△dc2c1求得相应的小车的位置l,h。1.2.2误差信号产生该设计的误差信号产生主要有三个方面:检波误差由声源信号产生的半波损失,其误差的大小与声源信号发射的频率有关。当频率越小时,△dc2c1则越小。如频率为5kHz的声源信号,其周期为O.2ms,则半波损失导致△d0.1ms×340m/s3.4cm,所以频率越大,半波损失越小。单片机的测量时间产生的误差单片机晶振为24MHz,内部时钟经12分频后,时钟周期为O.5μs,测量时间误差为±0.5μs,则会产生一定的误差信号。计算误差在计算声源位置的过程中,数据有一定的取舍,则会产生一定的误差。1.2.3控制理论简单算法该设计的控制理论简单算法主要考虑三种方案:方案一:根据计算出的△dc2c1的值来确定小车是否移动,当移动到△dO时,
f控制小车停止。方案二:根据测得△dc2c1的具体值控制字PWM,PWMK△d,其中k为比例调节,△d越大,K越大,从而控制小车的速度。方案三:PID控制算法在连续运动控制系统中,将偏差的比例P,积分I和微分D通过线性组合构成控制量。控制系统中以驱动电机转速采样信息为反馈量,采用增量式数字PID控制算法,通过输出PWM信号对电机实现闭环控制。计算公式为:式中:△u
为第
次输出增量;e
为第
次偏差;e
r