0x00
未尽有关部门批准私人架设FM电台是违法的,轻则拘留重则判刑。本教程仅供实验、学习研究,切勿用作实际用途。
0x01 安装
安装依赖组件
$ sudo apt install libsndfile1-dev
检查是否有rpi-mailbox
驱动,该驱动在2015年以后的Raspbian自带。
下载并安装所需程序
$ git clone https://github.com/ChristopheJacquet/PiFmRds.git
$ cd PiFmRds/src
$ make clean
$ make
0x02 使用
FM发射信号的发射天线定义在GPIO 4(pin 7)号针脚上,可以在此针脚连接杜邦线增强信号。
发射信号:
$ sudo ./pi_fm_rds -audio sound.wav
运行pi_fm_rds的一般语法:
pi_fm_rds [-freq 信号频率] [-audio 音频文件] [-ppm 振荡器误差] [-pi 广播代码] [-ps 电台名称] [-rt 传输无线电文本]
参数介绍:
-freq
指定载波频率(以MHz为单位)。示例:-freq 107.9
-audio
指定要作为音频播放的音频文件。采样率无关紧要:Pi-FM-RDS将重新采样并对其进行过滤。如果提供立体声文件,Pi-FM-RDS将产生FM立体声信号。示例:-audio sound.wav
。支持的格式取决于libsndfile
。这包括WAV和Ogg / Vorbis(以及其他),但不包括MP3。指定-
作为文件名来读取标准输入上的音频数据(用于将音频传输到Pi-FM-RDS,见下文)。-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)表示您的Raspberry Pi振荡器误差,请参见下文。
默认情况下,PS在Pi-FmRds
序列号之间来回切换,从00000000
开始。PS每秒变化一次。
高级发射音频:
如果使用参数-audio -
,Pi-FM-RDS将读取标准输入的音频数据。这允许您将程序的输出传输到Pi-FM-RDS。例如,这可以用于使用Sox读取MP3文件:
sox -t mp3 http://www.linuxvoice.com/episodes/lv_s02e01.mp3 -t wav - | sudo ./pi_fm_rds -audio -
或者将声卡的AUX输入传输到Pi-FM-RDS:
sudo arecord -fS16_LE -r 44100 -Dplughw:1,0 -c 2 - | sudo ./pi_fm_rds -audio -
0x03 END
其他问题请查看该项目说明文件