logo资料库

基于51单片机的声源定位系统设计.doc

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
2012 年大学生电子设计 TI 杯竞赛 声音定位系统(D 题) 1
一、系统方案 声音信号产生 :用单片机 C8051F310 来产生频率为 500Hz 的方波用来作为声音信号。方波 信号的产生实质上是在定时器溢出中断次数达到规定次数时,将输出 I/O 管脚的状态取反。该程序比较容易实现,且不会占用单片机太多资源。 方案比较:方案一中,用 NE555 产生信源不是很稳定,波形不太规范 且信号的频率不固定,这样的信号对本系统不太合适。方案二中,用软件来 产生信号,该信号很稳定,是比较标准的频率为 500Hz 的方波信号,而且, 产生波形比较灵活,从而为发挥部分做好准备。因此选择方案二。 2.声源的选择 采用无源蜂鸣器作为声源。无源蜂鸣器在提供一定频率的方波震荡源时, 能够发出声音。试验中用无源蜂鸣器发声时,声音比较清晰,但声音强度比 扬声器稍弱。 2
3.滤波方案的选择 用有源滤波器。有源滤波器是利用可关断电力电子器件,产生与负荷电 流中谐波分量大小相等、相位相反地电流来抵消谐波的滤波装置。有源滤波 器除了滤除谐波外,同时还可以动态补偿无功功率。其优点是反映动作迅速, 滤除谐波可达到 95%以上,补偿无功细致。 三、电路与程序设计 1. 声响模块电路设计 声响模块是由 C8051F310 单片机输出频率为 500Hz 的方波,然后从单片 机引脚输出,输出的信号经过三极管后放大后,再接入到蜂鸣器。此时 蜂鸣器的输出电流为 35mA 左右,供电电源为 5V,发声模块的功率低于 200mW,符合本题的要求。 2. 声音接收放大器电路设计 接收部分是用拾音器接收声音信号。由于拾音器接收到的信号在不经过 放大时信号很小,不易检测,故后级利用单管放大将接收的信号进行处 3 发 射 部 分 Q ? 9 0 1 4 1 2 3 5 K R 1 9 L S 2 B u z z e r G N D V C C I O
理,电路中通过 RC 可以把集电极电流的变化转换成电压的变化送到输出 端。 C 3. 测量、数据处理电路设计 根据要求只有当接收到的信号为 500Hz 时,我们才能保证接收到的信号 是由声源发出的。而拾音器接收到的声音信号是任意频率的,故此处要 进行滤波处理。滤波采用的是带通滤波器,通过电容电阻的匹配,最终 滤波器的中心频率为 500Hz,带宽为 50Hz。拾音器接收到的信号经过带 通滤波器后,能够将生源发出的信号滤出,正符合本题要求。 4 Q 2 9 0 1 4 M K 1 M i c 2 0 . 1 u F C 1 5 4 . 7 K R 2 1 1 0 K R 2 0 1 . 5 M R 2 2 1 0 u F C 1 4 + 5 G N D 接 带 通 滤 波 声 音 接 收 放 大 电 路
滤波后的信号为正弦波,但该信号不便于用单片机进行处理,故在后级加 入了一级 LM393 比较器。其基本功能是对两个输入电压进行比较,并根据 比较结果输出高电平或低电平。并由此来判断输入信号的大小和极性。从 滤波器中输出的信号的幅值为 1V 以上,故将比较器的比较端给的比较电 压设定为 500mV 左右,这样当输出的信号是频率为 500Hz 的方波,幅值为 3.3V,能够用单片机进行检测,效果比较满意。 5 V C C 3 1 . 8 k R 1 3 0 . 0 1 u F C 7 I N 0 . 0 1 u F C 4 1 . 6 8 k R 1 6 1 0 k R 1 5 G N D 6 3 6 . 6 k R 1 0 O U T 多 路 负 反 馈 二 阶 有 源 带 通 滤 波 器 1 u F C 8 1 0 k R 1 7 ( 单 电 源 供 电 模 式 ) G N D V C C F c = 5 0 0 H z 2 3 1 A 8 4 U 3 A L M 3 5 8 P 3 1 8 4 2 1 U 5 A L M 3 3 9 P G N D 3 . 3 V 1 2 3 1 0 K R 2 4 3 . 3 V G N D 4 K 7 R 1 8 O U T G N D 0 . 1 u F C 1 3 I N 比 较 器
4. 程序设计及其流程图 4.1 程序设计思想: 设坐标纸为图中的矩形 ABCD。声源在点 O,拾音器分别位于矩形四角 A、 B、C、D。声源到 A 点的距离为 Da,到 B 点的距离为 Db,到 C 点的距离 为 Dc,到 D 点的距离为 Dd。分别经过时间 Ta,Tb,Tc,Td 后,拾音器 A、 B、C、D 接收到信号,然后可以计算出三个时间差值 t1,t2,t3,声音 传播速度为 v。通过下列算法后可计算出声源 O 的坐标值(x,y): 4.1.1 定位算法一: (1) (2) (3) (4) 单片机检测到的为四个时间点算出三个时间差,上面四个式子可用 6
时间差表示出 解出: ; (5) ; (6) ; (7) ; (8) ; ; ; ; ; ; 上式总共两个未知数四个等式,可以根据任意三个式子解出一组解, 总共会有两组解。由于测出的结果会有误差,所以将所得的两组解进 行平均值求解,则结果误差会减小,准确度会进一步提高。该算法程 序比较简短,适合用单片机处理。 4.1.2 定位算法二: (1) 7
(2) =0 (3) =0 (4) f1(x,y)= f2(x,y)= 然后对(3)(4)分别对 x,y 求一介微分: f1x(x,y)= f1y(x,y)= f2x(x,y)= f2y(x,y)= ; ; ; ; 然后将 f1(x,y),f2(x,y)进行泰勒级数展开,则可得出递推公式: Xk+1=Xk+ Yk+1=Yk+ ; ; 经过递推后可得出比较准确的 O(x,y)的坐标,程序比较大,适合在 PC 机上运行,准确度比较高。 4.2 程序流程图: 主程序流程图: 中断程序流程图: 8
分享到:
收藏