分享

教你制作2.4GHz数字无线话筒

 为学而乐 2019-03-08

《爱情公寓》里有句台词是:“跟我赌,不是看你要什么,而是看我有什么!”我最近做项目,手头剩下几片ATmega16L单片机和一对NRF24L01+无线模块,闲来无聊,于是做了个数字无线话筒玩玩儿,没想到效果还不错。

如今,越来越多的2.4GHz无线产品进入了我们的生活,如蓝牙、无线上网和无线键鼠等,这些产品极大地方便了我们的生活。接下来我所制作的就是一款简单的2.4GHz数字无线话筒。

2.4GHz无线技术采用的频段处于2.405~2.485GHz (科学、医药、农业),这个频段里是国际规定的免费频段,这为2.4GHz无线技术的可发展性提供了必要的有利条件。2.4GHz无线技术的工作方式是采用全双工模式传输,这个优势决定了它的超强抗干扰性。此外,相比采用蓝牙等其他无线传输技术的产品,采用2.4GHz无线技术的产品,制造成本更低,提供的数据传输速率更高,它的抗干扰性、最大传输距离以及功耗更远远超出采用同样免费的27MHz无线技术。

设计思路

这个设计的思路非常简单,首先将驻极体话筒采集到的声音模拟信号转换成便于存储和处理的数字信号,即AD转换;然后通过2.4GHz的无线模块发送到接收端;接收端收到数据后,再利用PWM将数字信号还原成声音信号。

由于话筒传输的是实时的语音信号,而声音的数字化和还原都会有延迟。因此,这个设计的关键是怎么做才能保证语音信号实时传输。

元器件选择

这款无线话筒结构简单,用到的主要元器件有nRF24L01+无线模块、AVR单片机、晶体振荡器和驻极体话筒,当然,还得有几只电阻、电容。

至于nRF24L01+无线模块,现在很容易买到,也不贵。通常,这类模块官方给出的传输速度有3种,分别是1Mbit/s、2Mbit/s和250kbit/s,可通过软件选择。然而这只是一次传输32字节的速度,应用中由于每次发送需要等待器件进入发送状态,内部PLL电路工作稳定,每发送一次大约需要700μs(自动应答2Mbit/s时),所以实际能达到的最大速度大概是40~60kbit/s。

根据Atmel官方文档,ATmega16L的AD在10位分辨率时能达到的最大采样率大约为15kHz。而我们在这个设计中给它来点“超频”,设置它的AD时钟频率为1MHz,8位分辨率,这样可以稍稍提高AD转换速度,达到8位16kHz采样的目的。32字节可以存储2ms的声音信息:1s/16kHz=62.5μs,62.5μs×32=2ms,不要担心,这只是个不太讨厌的计算题。根据计算可以知道,发送一次数据需要大约700μs,而接收一次数据存储了2ms的声音数据,因此完全可以在播放这2ms声音时进行下次的发送—接收。这就达到了实时传输语音信号的目的。系统流程图见图20.1。

教你制作2.4GHz数字无线话筒

图20.1 系统结构图

当然,并不是一定要用ATmega16L单片机,也可以用ATmega8单片机。其实只要带有AD转换且速度够快的单片机都能使用。

电路原理图简介

1.发送端电路

发送端电路有数据传输、数据处理和声音采集3个部分。数据传输部分用单片机的硬件SPI接口与NRF24L01+无线模块连接,提高传输速率,简化程序设计,如果是没有SPI接口的单片机可以用I/O模拟SPI,这里不再说明。声音采集部分就是用驻极体话筒将声音信号转换成连续变化的电压信号,然后通过单片机自带AD转换部分转换成数字信号。从原理图(见图20.2)可以看出,驻极体话筒的电路之外接了一个电阻,那这个电阻的阻值(R)是怎么确定的呢?这个设计中ATmega16L单片机AD的参考电压选择AVCC引脚电压,而AVCC=VCC,所以AD输入电压(Vin)范围应该在0~VCC。驻极体的工作电流(I)为0.1~1mA;Vin=VCC-I×R,如果取VCC=4.2V,则可以确定R取值应在4.2~42kΩ,这里取R为10kΩ,保证信号不失真。数据处理部分就是单片机了,单片机控制AD的采样率,存储数字信号,并且控制无线模块发送数据。

教你制作2.4GHz数字无线话筒

图20.2 发送端原理图

2.接收端电路

接收端电路用到的数据传输部分与发送端完全相同。只是在单片机PWM输出引脚接了个低通滤波器,滤去高频噪声,还原语音信号。整个设计从简单出发,因此低通滤波器只用一个电阻(10Ω)和一个电容(2.2μF)组成,截止频率大约为7kHz,具体原理图见图20.3。如果想要更好的效果,可以用5532接一个带通滤波器,效果会更好。

3.电源

发送端用一块电压为4.2V的锂电池供电,方便手持使用。接收端由于要和耳机或功放连接,采用稳压电源供电,电压为3.3~5V。需要特别说明的是NRF24L01+对电源特别敏感,电源质量差可能会导致接收变差,甚至收不到数据,因此应注意电源滤波,最好在NRF24L01+电源附近接一个0.1μF电容。

教你制作2.4GHz数字无线话筒

图20.3 接收端原理图

程序编写

电路简单不代表程序就简单,程序是这个数字无线话筒的灵魂。按原理图接好电路(见图20.4),接下来要面对的就是编程问题了。程序同样也分为发送端和接收端。

教你制作2.4GHz数字无线话筒

图20.4 初步完成后的发射电路实物

1.发送端程序

发送端所做的工作是AD转换、数据暂存和数据发送。发送端程序设计的关键是准确地控制AD采样率为16kHz,还能及时将数据发送出去。为此发送端ATmega16L单片机的AD工作在自动触发模式,以定时器0为触发源,并且以中断方式读取转换结果,从而准确地控制采样率。

2.接收端程序

接收端程序完成的工作是接收到数据后将数字信号转换成占空比不同的连续脉冲。程序设计的关键是保证PWM工作频率与发送端采样率相同,这样才能准确地还原声音信号。ATmega16L单片机带有硬件PWM,大大简化了程序设计。需要特别注意的是,如果没有收到数据,要关闭PWM输出,否则会有非常大的噪声。

这是我的qq群657864614,我会不定时的把一些程序源代码发布到qq群里面,有兴趣的可以加下。

实际使用效果

原以为单片机自带AD16kHz采样8位分辨率,PWM变换,还有简陋的滤波器和驻极体话筒,这样的话筒音质一定“惨不忍听”,制作完成后小心试用,没想到得到是惊喜:基本无噪声,清晰地还原了说话的声音,接上功放(见图20.5),音质更好。在使用PCB天线时,室内测试有效距离为6m。2.4GHz数字无线话筒使用的就是最简单的AD转换,没有使用声音的采样量化编码技术,音质勉强,比FM无线话筒音质稍差,比电话语音稍强。如果对音质有很高的要求,可以使用专用的音频ADC芯片和音频DAC芯片,但是成本就高了。

教你制作2.4GHz数字无线话筒

图20.5 接收电路与自制的功放音箱连接

2.4GHz的无线信号非常适合于在小范围内进行数据传输。动手试一试吧,洞洞板也可轻松搞定哦。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多