第6讲:用树莓派搭建FM广播,播放音乐和实时语音

您所在的位置:网站首页 有不用网的收音机吗怎么用 第6讲:用树莓派搭建FM广播,播放音乐和实时语音

第6讲:用树莓派搭建FM广播,播放音乐和实时语音

2024-07-16 15:49| 来源: 网络整理| 查看: 265

用树莓派搭建FM广播,播放音乐和实时语音

树莓派开启FM广播台,广播指定的音乐或实时语音

本教程仅供科研与学习交流之用,广播功率很小。请务必遵守国家相关电信管理法规。

基本原理:从奥斯特、法拉第,到麦克斯韦,从电容、电感到电磁波天线。

本文配套B站视频:子豪兄的树莓派零基础教程

树莓派FM广播站

【子豪兄的树莓派零基础教程】第5讲:用树莓派搭建FM广播电台,播放音乐和实时语音

作者:张子豪(同济大学在读研究生)

博客文档、源代码、更新、勘误,请看本教程Github代码仓库

目录 材料准备安装配置广播内置歌曲:吉他音乐广播歌曲:星球大战广播实时语音潜在应用领域声明调频广播和天线基本原理 高中物理课本相关内容电波发射与信号采样调频与调幅搭载信息PWM:脉冲宽度调制树莓派的硬件基础:CPU、GPIODMA直接内存访问与扩频时钟调频得到传输信号树莓派天线长度传播距离估计 扩展阅读与参考文献 材料准备

树莓派3B或树莓派3B+

SD卡已烧录好系统并完成一系列配置(换源等),具体操作可按照第3讲:一劳永逸配置树莓派【子豪兄的零基础树莓派教程】步骤一步步进行

一台收音机,或安装有收音机app的手机

(可选)麦克风。用于广播实时语音

(可选)USB声卡。用于广播实时语音

USB声卡

声卡是干啥的?

声卡是将话筒接受到的外界声音信号(连续的模拟信号)转换为离散数字信号(数模转换)并传输给计算机(树莓派)进行处理的数字电路。USB声卡就是通过USB口提供声音功能(耳机、麦克风)的装置。

安装配置

在树莓派的命令行界面依次运行以下八条命令

mkdir fm cd fm sudo git clone https://github.com/markondej/fm_transmitter sudo apt-get install mpg123 sudo apt-get install gcc g++ make cd fm_transmitter sudo make sudo apt-get install sox

注意,后文的所有命令都需要在fm/fm_transmitter目录下执行。可以通过cd fm/fm_transmitter命令切换到这个目录下。

广播内置歌曲:吉他音乐 sox acoustic_guitar_duet.wav -r 22050 -c 1 -b 16 -t wav - | sudo ./fm_transmitter -f 100.6 -

广播吉他音乐

也可以把这条命令中的100.6改成其它数字,即可在新频道上广播。不要和已有电台频率冲突。

也可以将你自己的wav格式的声音文件放到/fm/fm_transmitter文件夹中,替换命令中的star_wars.wav文件。

WAV是最接近无损的音乐格式,所以文件也比较大。

在树莓派GPIO的BCM4号引脚上接一条跳线,可以提升广播效果。

本教程仅供科研与学习交流之用,广播覆盖范围不超过十米。如想搭建大功率电台请遵守国家法律法规按正规流程申请备案。(请看文末声明)

接线图

树莓派GPIO上的BCM4号引脚

广播歌曲:星球大战 sudo git reset --hard 71e7e23a0e sox star_wars.wav -r 22050 -c 1 -b 16 -t wav - | sudo ./fm_transmitter -f 100.6 -

广播星球大战音乐

按ctrl+c结束广播。

git reset命令是使所在目录回退到之前的指定版本,如果你想切换回最新版本,可以运行sudo git reset --hard 6111460命令。

广播实时语音

语音实时广播

在树莓派的USB口插上USB声卡,在USB声卡的麦克风孔里插入麦克风,运行以下命令,在即可在调频100.6MHz频道广播实时语音,你也可以把这条命令中的100.6改成其它数字,那样就会在新频道上广播:

arecord -D plughw:1,0 -c1 -d 0 -r 22050 -f S16_LE | sudo ./fm_transmitter -f 100.6 -

按ctrl+c结束广播。

潜在应用领域

用移动电源给树莓派供电,设置开机免密码自动登录和自动运行广播脚本,将整个系统装在书包里,即可实现走到哪里,广播开到哪里(旅游景点、重要会场讲话、窃听器、位置信标)。与无线供电或太阳能相结合,可以实现半永久性的窃听广播站。

应用领域:警用军用情报、边防与国家安全、智能安保安防、环境灾害、地质灾害预警

例如,大佬做讲座的报告厅人满为患,就可以做一个fm广播站,让堵在门外的人也能听到实时语音。

例如,如果有窃贼或非法入侵者触发了信号(如红外探头、微动开关等),就立刻开启fm广播电台。

例如,树莓派每次开机的时候都在指定频段广播自己的ip地址。

声明

本教程仅供科研与学习交流之用,广播覆盖范围不超过十米。如想搭建大功率电台请遵守国家法律法规按正规流程申请备案。

中华人民共和国无线电管理条例

摘录:

第五条 国家鼓励、支持对无线电频谱资源的科学技术研究和先进技术的推广应用,提高无线电频谱资源的利用效率。

第十四条 使用无线电频率应当取得许可,但下列频率除外:

(一)业余无线电台、公众对讲机、制式无线电台使用的频率;

调频广播和天线基本原理

参考资料:知乎:树莓派 FM 发射机小电台原理解析

高中物理课本相关内容

幻灯片3.JPG

幻灯片4.JPG

幻灯片5.JPG

幻灯片6.JPG

幻灯片7.JPG

幻灯片8.JPG

幻灯片9.JPG

幻灯片10.JPG

幻灯片11.JPG

电波发射与信号采样

调制电磁波信息

信号采样 信号采样

调频与调幅搭载信息

调频与调幅

PWM:脉冲宽度调制

PWM脉冲宽度调制(Pulse Width Modulation) 是使用离散的数字信号生成连续的模拟信号的方法。主要由 2 个参数来定义:占空比和频率。如果以保持一定的速率开关数字信号并且保持一定的占空比,那么输出看起来就像恒定电压模拟信号。

PWM

树莓派的硬件基础:CPU、GPIO

树莓派3B的CPU芯片

GPIO四号引脚

DMA直接内存访问与扩频时钟

DMA: 直接内存访问(Direct Memory Access)。不用跟CPU打招呼就可以直接访问内存。

DMA:直接访问内存

绝大多数的的微处理器都有扩频时钟(Spread-spectrum clock),目的是为了降低电磁干扰(EMI),在树莓派 BCM28XX 系列芯片上,扩频时钟的范围为 1MHz 到 250MHz,这正好用作 FM 的载波信号。

为了减少CPU占用,作者对程序进行了改进,使用树莓派 DMA 产生基础时钟。

时钟信号

扩频时钟

调频得到传输信号

基带信号 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Xq2g5AD-1650426440085)(https://www.zhihu.com/equation?tex=x_%7Bm%7D%28t%29)] ,载波频率 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zis6g5sl-1650426440085)(https://www.zhihu.com/equation?tex=+f_%7Bc%7D)] ,正弦载波为 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VVmKHYmI-1650426440086)(https://www.zhihu.com/equation?tex=x_%7Bc%7D%28t%29%3DA_%7Bc%7D+%5Ccos+%5Cleft%282+%5Cpi+f_%7Bc%7D+t%5Cright%29)] 将基带数据信号与载波结合起来得到了传输信号

调频公式

其中 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PGPPfWow-1650426440086)(https://www.zhihu.com/equation?tex=f%28%5Ctau%29)] 为传输信号的瞬时频率, [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l7gJFKLf-1650426440087)(https://www.zhihu.com/equation?tex=f_%7B%5CDelta%7D)] 为频偏表示相对载波频率 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PJTKZKCj-1650426440087)(https://www.zhihu.com/equation?tex=f_%7Bc%7D)] 的最大频率偏移。

调频输出的是模拟信号,利用时钟产生 PWM 调整占空比和频率,就可以利用数字信号生成模拟信号。

树莓派天线长度 波长: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1HDcVvJ1-1650426440087)(https://www.zhihu.com/equation?tex=%5Clambda%3Dc%2Ff)]偶极子天线:制作偶极子天线时,会通过工作波长来确定天线的长度。最常见的偶极子天线是半波天线,它的总长度近似为工作波长的一半,即 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IlPLXDSk-1650426440088)(https://www.zhihu.com/equation?tex=+L%3D%5Clambda+%2F+2)]

天线

如果需要发射100MHz的FM信号,根据上面的公式来计算,就需要1.5m长的天线。

>>> 3*10**8 / (2 * 100 * 10**6) 1.5

所以理论上如果给树莓派 GPIO(PIN4) 加上了一根 1.5m 的天线,那么就可以输出最大功率的 FM 信号。

传播距离估计

首先需要计算有效全向辐射功率(EIRP)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ghWmbLEf-1650426440088)(https://www.zhihu.com/equation?tex=EIRP+%3D+P±+Loss+%2BG)]

其中 P 为发射机的输出功率(dBm),Loss 为发射机输出端与天线馈源之间的馈线损耗(dB),G 为天线的发送增益(dBi)。求出 EIRP 后可以进而获得自由空间路径损失(Free Space Path Loss,FSPL)。

但是使用这个公式估算,意义不是太大。实际测量,如果使用一根 10cm 的杜邦线作为天线,一个楼梯拐角信号就已经非常弱了。

扩展阅读与参考文献

让树莓派说出自己的ip地址

Bilibili视频:【熟肉】教你用树莓派制作可以进行语音直播的FM调频无线电台

知乎:树莓派 FM 发射机小电台原理解析

国外参考文献:

[1] Eben Upton and Gareth Halfacree. Raspberry Pi user guide. John Wiley & Sons, 2014.[2] Oliver Mattos and Oskar Weigl. Turning the Raspberry Pi Into an FM Transmitter. http://www.icrobotics.co.uk/wiki/index.php/Turning the Raspberry Pi Into an FM Transmitter, 2015.[3] Christophe Jacquet. FM-RDS transmitter using the Raspberry Pi’s PWM . https://github.com/ChristopheJacquet/PiFmRds, 2014.[4] Richardson. Turning the Raspberry Pi Into an FM Transmitter. http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter, 2015.

子豪兄的树莓派系列教程

树莓派接线

欢迎加入树莓派全球开源社区



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3