电子设计大赛最终设计报告.docx
《电子设计大赛最终设计报告.docx》由会员分享,可在线阅读,更多相关《电子设计大赛最终设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
电子设计大赛最终设计报告
题目名称:
声音引导系统(B题)
摘要:
本系统采用两块STC89C54RD+单片机作为控制声源移动和音频信号检测的核心,实现音频信号的产生和检测、发射和接受装置之间的无线通信、控制声源到达指定位置等功能。
接收装置采集声源处发送的某一固定频率声波信号,经过滤波、放大和解码传送给单片机。
单片机通过识别不同点接收信号的时间差发出相应指令,通过无线传输模式控制声源移动到指定位置。
关键字:
单片机无线通信声音引导
VOICEGUIDANCESYSTEM
Abstract:
ThesystemusestwoSTC89C54RD+microcontrollerasacontrolcentreforsoundsourcemovementandtheaudiosignaldetectionofthecoreoftheaudiosignalgenerationanddetection,transmittingandreceivingwirelesscommunicationbetweendevicestocontrolthesoundsourcearrivesattheappointedlocationandotherfunctions.Receivercapturesoundsourcewavesatafixedfrequencysoundtosendsignals,afterfiltering,amplificationanddecodingtransmittedtothemicrocontroller.SCMreceivedsignalbyidentifyingthedifferentpointsoftimedifferencegivenoutaccordingly,throughthewirelesstransmissionmodecontrolsoundsourcemovestothespecifiedlocation
Keyword:
MCUwirelesscommunicationvoiceguidance
目录
1方案论证与比较……………………………………………………………3
1.1音频信号采集与比较…………………………………………………3
1.2误差信号传输方式…………………………………………………3
1.3声源控制方式比较与选择……………………………………………3
2单元电路设计………………………………………………………………3
2.1总体设计………………………………………………………………3
2.2单元电路设计及参数计算……………………………………………3
2.2.1单片机最小系统………………………………………………4
2.2.2音频接收器MIC电路…………………………………………4
2.2.3音频信号放大电路……………………………………………4
2.2.4音频解码电路…………………………………………………4
3软件设计……………………………………………………………………4
4.系统测试……………………………………………………………………
5结论…………………………………………………………………………
参考文献:
……………………………………………………………………
附录:
…………………………………………………………………………
附1:
元器件明细表……………………………………………………
附2:
仪器设备清单……………………………………………………
附3:
电路图图纸………………………………………………………
附4:
程序清单…………………………………………………………
1.方案选择与论证
1.1.音频信号采集与比较
方案一:
通过检测不同距离接收器收到音声强度不同判断声源离指定位置距离及是否到达指定位置。
但声强变化在一米范围内变化非常微弱很难检测到,而且极易受周围环境干扰,稳定性不好。
所以不易采用此方案。
方案二:
音频信号通过信号放大与调制以后变成数字信号,通过检测三路接收装置的数字信号由高电平跳变到低电平的先后顺序判断声源所处位置。
由于把模拟的一品信号转换成了数字信号,这种方案大大提高了检测的稳定性,而且通过单片机容易实现。
综上比较,本设计采用方案二。
1.2误差信号传输方式
方案一:
接收装置接收到声源发来的音频信号以后同样反馈以音频信号,控制声源的移动。
这种方案信号传输速率慢,不易实现实时的通信,而且易受周围环境的干扰。
所以不采用此方案。
方案二:
采用集成无线收发模块实现收发通信,由于信号以电磁波的形式传输所以收发双方能实现实时数据通信。
集成无线模块具有稳定性好,不易受干扰等优点,所以本设计采用方案二。
1.3声源控制方式比较与选择
方案一:
可移动声源通过不断地接收反馈回来的信号判断如何移动,这种方式占用单片机资源比较多,而且不利于提高到达指定位置的速度。
方案二:
可移动声源接收到反馈回来的信号以后走某一固定长度距离,然后再发送和接收一次信号判断是否到达指定位置。
这种方式不需要一直查询反馈信号,对单片机处理能力要求比较低,既节省了成本又提高了到达指定位置的速率。
所以本设计采用方案二。
2.单元电路设计
2.1总体设计
可移动声源发出声音信号后,接收装置收到音频信号很微弱,必须经过音频放大。
我们采用低电压音频功率放大器LM386进行信号放大。
LM386的电压增益内置为20,但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200,使用灵活方便。
经过放大的信号送入下一极进行音频调制,本设计采用通用音调译码器LM567。
LM567为锁相环音频译码电路、即只有当输入信号的频率和电路自身的振荡频率相一致时,电路输出低电平,否则输出高电平。
由于其中心频率可调,特别适合频率较高的音频信号调制,可减少低频噪音的干扰。
经调制后音频信号就变成了数字信号,三个接收器按接收信号的先后顺序传输给单片机。
当可移动声源在如图1所示ox轴右侧时,B点先于A点接收到信号首
先发生电压跳变,单片机发出指令通过无线传输模块传回可移动声源的无线接收器,控制可移动声源继续向前朝着ox线前进。
当可移动声源到达ox线时停止并发出声光报警,系统整体设计框图如图2。
2.2.单元电路设计及参数计算
2.2.1.单片机最小系统
电路图见附3图3
2.2.2音频接收器MIC电路
电路图见附3图4
2.2.3.音频信号放大电路
电路图见附3图5,LM386可以通过调节R13的阻值,从而达到放大音频的作用。
2.2.4.音频解码电路
经放大后的音频信号送入LM567后,信号频率与电路自身的振荡频率相比较,只有当信号频率与振荡频率相等时电路输出低电平。
电路图见附3图6.在本系统中,我们采用的是10KHz的频率,这样有利于区分环境中的低频干扰。
3.软件设计
主控芯片为STC89C54RD+,编程由C语言实现,软件流程图如下:
4.系统测试
在10K频率的音频信号下,可移动声源运动情况
控制模式
声源的运动速度
(cm/s)
声源任意时刻偏离OX线的最大距离(cm)
控制误差
(cm)
正向
反向
正向
反向
正向
反向
测试速度
11
8
3
4
2
3
测试结果:
由于实验室设备比较齐全,我们在实际制作系统的过程中做了大量的测试,直至示波器显示的音频信号排除了各种干扰之后才组装调试,所以系统测试数据都达到了题目要求的精度。
5.结论
在系统设计过程中我们发现,此题目最难之处在于对音频信号的处理。
若处理不当则会产生很大的噪声干扰,甚至出现自激振荡,这一部分的设计调试也占用了我们很大一部分时间。
但由于我们采用了将模拟的音频信号通过LM567转化为数字信号的方式进行了处理,最终很好的解决了这一问题,提高了系统的稳定性和抗干扰能力。
这也是本系统的最大亮点。
由于整体系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。
参考文献
《模拟电子技术》,华成英童诗白著,北京:
高等教育出版社,2006年;
《51单片机C语言教程》,郭天祥著,北京:
电子工业出版社,2009年;
《新编MCS-51单片机应用设计》,张毅刚等著,哈尔滨:
哈尔滨工业大学出版社,2009年;
《数字电子技术基础》,阎石著,北京:
高等教育出版社,1997年;
《全国大学生电子设计竞赛训练教程》,黄志伟著,北京:
电子工业出版社,2006年;
附录:
附1:
元器件明细表:
1、STC89C54RD+
2、LM386
3、LM567
4、CC1100
5、MMC-1
附2:
仪器设备清单
1、函数信号发生器
2、数字万用表
3、数字示波器
4、直流稳压电源
附3:
电路图图纸
图3单片机最小系统
图4音频接收器MIC电路
图5音频信号放大电路
图6音频解码电路
附四:
程序清单
#include "CC1100.h"
#include "delay_car.h"
void Delay(unsigned int s)
{
unsigned int i;
for(i=0; i
for(i=0; i
}
void timer1_init()//定时器1初始化子函数
{
TMOD = 0x01;//定时器1以方式1工作(16位)
TH0 = 0xff;//标准10K方波的初值
TL0 = 219;//
EA = 1;//开总中断
ET0 = 1;//开定时器1的中断
TR0= 1;//启动定时器1
}
void voice()
{
TR0=1;
delay_ms(33);
TR0=0;
delay_ms(150);
}
void voice_stop(INT16U n)
{INT8U m;
for(m=0;m{
beep=0;
delay_ms
(1);
beep=1;
delay_ms
(1);
}
}
void main(void)
{
INT8U leng =0;
INT8U tf =0;
INT8U order=0;
INT8U TxBuf[16]={0}; // 8字节, 如果需要更长的数据包,请正确设置
INT8U RxBuf[16]={0};
CpuInit();
timer1_init();
POWER_UP_RESET_CC1100();
halRfWriteRfSettings();
halSpiWriteBurstReg(CCxxx0_PATABLE, PaTabel, 8);
beep=1;
LED1 = 0;
LED2 = 0;
//TxBuf[0] = 8 ;
TxBuf[1] = 1 ;
TxBuf[2] = 1 ;
halRfSendPacket(TxBuf,16);// Transmit Tx buffer data
Delay(6000);
LED1 = 1;
LED2 = 1;
while
(1)
{
/
tRxMode();
if(KEY1 ==0 )
{
LED1 = 0;
TxBuf[1] = 1 ;
tf = 1 ;
//while(KEY1 ==0);
}
if(KEY2 ==0 )
{
LED2 = 0;
TxBuf[2] = 1 ;
tf = 1 ;
//while(KEY2 ==0);
}
if (tf==1)
{
halRfSendPacket(TxBuf,16);// Transmit Tx buffer data
TxBuf[1] = 0x00;
TxBuf[2] = 0x00;
tf=0;
Delay(500);
LED1 = 1;
LED2 = 1;
/
tRxMode();
}
leng =16;// 预计接受8 bytes
if(halRfReceivePacket(RxBuf,&leng))
{
if (RxBuf[1]==0x04)
{
LED1 = 0;
forward4cm();
}
if (RxBuf[1]==0x14)
{ LED2 = 0;
backward4cm();
}
if(RxBuf[1]==0xff)
{ Stop();
LED3=0;
LED4=0;
voice_stop(100);
}
if (RxBuf[1]==0x02)
{
forward2cm();
}
Delay(1000);
LED1 = 1;
LED2 = 1;
}
RxBuf[1] = 0x00;
RxBuf[2] = 0x00;
voice();//发音
}
}
void timer1() interrupt 1//中断子函数
{
TH0 = 0xff;// 配11.0592晶振,产生10K波的初值
TL0 = 219;//
beep=~beep;
}