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

其他问题请查看该项目说明文件

Last modification:October 24, 2019
如果觉得我的文章对你有用,请随意赞赏