项目简介
本项目以Raspberry Pi作为FM发射器,可将音频文件广播为FM信号。用户仅需连接一根20 - 40厘米的导线到Raspberry Pi的GPIO4(PIN 7)作为天线,就能轻松实现FM广播。此项目基于Oliver Mattos和Oskar Weigl的原始想法,并做了扩展与优化。
项目的主要特性和功能
- FM广播:能把音频文件广播成FM信号。
- 频率和带宽设置:用户可自定义广播的频率与带宽。
- DMA支持:借助DMA(直接内存访问)进行数据传输,提升效率。
- 多平台支持:适用于所有Raspberry Pi型号。
- 音频格式支持:可直接传输未压缩的WAV文件,还能从标准输入读取音频数据。
- 麦克风支持:支持实时麦克风输入,并将其转换为FM信号广播。
- 循环播放:支持音频文件循环播放。
安装使用步骤
1. 安装依赖
更新系统并安装必要依赖:
bash
sudo apt-get update
sudo apt-get install make build-essential
依据操作系统,可能需安装Broadcom库:
bash
sudo apt-get install libraspberrypi-dev
2. 复制并编译项目
复制项目仓库并编译可执行文件:
bash
cd fm_transmitter
make
3. 开始广播
编译成功后,使用以下命令开始广播:
bash
sudo ./fm_transmitter -f 100.6 acoustic_guitar_duet.wav
参数说明:
- -f frequency
:指定广播频率(默认100.0 MHz)。
- acoustic_guitar_duet.wav
:要广播的WAV文件。
其他选项:
- -d dma_channel
:指定使用的DMA通道(默认0),输入255以禁用DMA。
- -b bandwidth
:指定带宽(默认100 kHz)。
- -r
:循环播放音频文件。
4. 接收广播
广播开始后,将FM接收器调至设定频率即可收听。
5. 其他功能
Raspberry Pi 4 特定设置
在Raspberry Pi 4上,需进行如下设置确保广播正常:
1. 使用GPIO21代替GPIO4:
bash
make GPIO21=1
2. 调整ARM核心频率:
bash
echo "performance" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
3. 使用低于93 MHz的FM广播频率。
使用为通用音频输出设备
通过加载snd-aloop
模块,将输出从环回设备流式传输到发射器应用程序:
bash
sudo modprobe snd-aloop
arecord -D hw:1,1,0 -c 1 -d 0 -r 22050 -f S16_LE | sudo ./fm_transmitter -f 100.6 - &
麦克风支持
使用麦克风实时输入:
bash
arecord -D hw:1,0 -c 1 -d 0 -r 22050 -f S16_LE | sudo ./fm_transmitter -f 100.6 -
性能下降时,用plughw:1,0
代替hw:1,0
:
bash
arecord -D plughw:1,0 -c 1 -d 0 -r 22050 -f S16_LE | sudo ./fm_transmitter -f 100.6 -
6. 支持的音频格式
支持直接传输未压缩的WAV文件,也可从标准输入读取音频数据。如使用MP3文件:
bash
sudo apt-get install sox libsox-fmt-mp3
sox example.mp3 -r 22050 -c 1 -b 16 -t wav - | sudo ./fm_transmitter -f 100.6 -
若遇“数据损坏”错误,可用SoX或FFMPEG转换:
bash
sox example.mp3 -r 22050 -c 1 -b 16 -t wav converted-example.wav
sudo ./fm_transmitter -f 100.6 converted-example.wav
或使用FFMPEG:
bash
ffmpeg -i example.webm -f wav -bitexact -acodec pcm_s16le -ar 22050 -ac 1 converted-example.wav
sudo ./fm_transmitter -f 100.6 converted-example.wav
法律声明
在某些频率上进行广播可能需要特殊许可,请确保遵守当地法律法规。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】