树莓派作为pc级别的linux开发板,功能非常强大,也正基于此,也就产生了很多非常有创意的想法和功能,在这里我们想实现一个小电台的功能,但是在这里需要说明,私人架设电台是违法行为,所以本案只作为自我娱乐所用,不能发射大功率的信号干扰正常电台的fm频段。
这里需要用到一个开源的小软件pifmrds [下载地址 https://github.com/christophejacquet/pifmrds],这个小软件最早是由两位外国朋友oliver mattos and oskar weigl 开发的,后来,richard hirst把这个小软件改成由dma实现,减少了cpu资源的占用。再后来christophe jacquet继续修改软件,添加了rds数据生成器和调制器,发射器使用raspberry pi的pwm发生器产生vhf信号,该软件与raspberry pi 1、2和3都兼容。
该小软件依赖sndfile库,首先安装该库:
sudo apt-get install libsndfile1-dev
接下来克隆小软件的源码:
git clone https://github.com/christophejacquet/pifmrds.git
然后进行编译:
cd pifmrds/src
make clean
make
编译完成后,输入以下命令运行程序
sudo ./pi_fm_rds
此时就会在树莓派的gpio 4 (40针p1接口的第7管脚)上产生fm发射波,默认频率107.9,这个辐射范围通常在100厘米左右,增加20cm的杜邦线,可以使得发射范围增加到100米。
在pi_fm_rds源码目录中有五个wav声音文件作为示例,可以执行如下命令播放音频。
sudo ./pi_fm_rds -audio sound.wav -freq 100.6
此时就可以听到一段英文发音,这个时间非常短,只有4秒钟左右,重复执行就可以多次听到了。
更多的应用语法如下:
pi_fm_rds [-freq freq] [-audio file] [-ppm ppm_error] [-pi pi_code] [-ps ps_text] [-rt rt_text]
所有参数都是可选的:
-freq指定载波频率(以mhz为单位)。例如:-freq 107.9。
-audio指定一个音频文件作为音频播放。如果提供立体声文件,则pi-fm-rds将产生fm立体声信号。例如:-audio sound.wav。支持的格式取决于libsndfile。这包括wav和ogg / vorbis(等),但不包括mp3。
-pi指定rds广播的pi代码。4个十六进制数字。例如:-pi ffff。
-ps指定rds广播的电台名称(节目服务名称,ps)。限制:8个字符。例如:-ps rasp-pi。
-rt指定要传输的无线文本(rt)。限制:64个字符。例如:-rt 'hello, world!'。
-ctl 指定一个命名管道(fifo)作为控制通道在运行时改变ps和rt(见下文)。
-ppm 以百万分率(ppm)为单位指定树莓派的振荡器误差,如下所示。
默认情况下,ps在两者之间来回切换,pi-fmrds并从一个序列号开始00000000。ps每秒改变一次。
如果您使用参数-audio -,pi-fm-rds将读取标准输入上的音频数据,这允许您将程序的输出传送到pi-fm-rds。他有什么作用呢,这就为我们播放mp3预留了接口,例如,这可以用于使用sox读取mp3文件:
sox -t mp3 music.mp3 -t wav - | sudo ./pi_fm_rds -audio -
这个操作的意思是使用sox工具读取music.mp3,转换成wav格式并输出到标准输出,同时使用pi_fm_rds来播放(发射)标准输入中的文件(流)。
或者将声卡的aux输入传送到pi-fm-rds:
sudo arecord -fs16_le -r 44100 -dplughw:1,0 -c 2 - | sudo ./pi_fm_rds -audio -
cpu使用率
cpu使用情况如下:
无音频:9%带单声道音频:33%带立体声音频:40%。
添加音频时,cpu使用率显著增加,因为程序必须将输入音频文件的采样率采样到228 khz,即其内部操作采样率,这一动作还是非常消耗cpu资源的。
通过以上操作,一个小小的私人电台就搭建好了,但是在此重申,搭建私人电台是违法行为,自己短时间,小范围的玩玩可以,不要干扰了正常的fm频段,否则后果很严重。
车联网无线通信安全技术详细报告书
超级法拉电容到底有哪些关键作用呢?
悬浮滑板DIY图解
可调电缆均衡器将宽带差分接收器与模拟开关相结合
学技术 | Microchip: 面向下一代网络需求,以太网PHY产品如何“超前布局”?
你会用树莓派搭建小电台?
大电量磁悬浮储能飞轮技术将正式落地于济南
了解让AI真正破坏COVID-19的装甲
锂电池高低温试验箱为电池安全性能检测助力
浅谈电瓶修复技术,延长电池组寿命的方法是什么
如何使用树莓派设置土壤湿度传感器
从上海分时电价机制调整看转供电用户电能计费
对深度迁移学习的当前研究进行了回顾和分类
深圳启用电子哨兵设备,可刷“粤康码”、深i您健康码实现智能防疫通行
四种BJT模型概述 BJT的外围交流等效电路详解
示波器数学函数有助于热插拔电路分析
蓝牙时控开关怎么修改密码
中软国际云速云盘荣获华为云云软件认证
百度UNIT:如何快速实现闲聊个性化干预
赛灵思推出Versal HBM自适应计算加速平台,应对网络与云端大数据的双重挑战