littlebot
Published on 2025-04-17 / 0 Visits
0

【源码】基于 Raspberry Pi 的 FM 广播系统

项目简介

本项目利用 Raspberry Pi 实现 FM 发射器功能,适用于所有 Raspberry Pi 板。用户只需准备一个 FM 接收器,并连接一根 20 - 40 厘米的普通电线到 Raspberry Pi 的 GPIO4(GPIO 引脚的第 7 针)作为天线,就能进行广播。项目基于通用时钟输出实现调频无线电通信,核心思路源自 Oliver Mattos 和 Oskar WeiglPiFM 项目

项目的主要特性和功能

  1. 支持 DMA 外设,提升数据传输性能。
  2. 可自定义频率和带宽设置,满足不同需求。
  3. 兼容所有 Raspberry Pi 型号,适用性广泛。
  4. 能读取单声道和立体声文件,支持多种音频格式。
  5. 支持从标准输入读取音频数据,可接入麦克风实现实时音频输入。

安装使用步骤

安装

假设已下载项目源码文件,需先构建可执行文件,按以下步骤操作: cd fm_transmitter make

使用

构建成功后,执行 “fm_transmitter” 程序开始发射: sudo ./fm_transmitter -f 102.0 acoustic_guitar_duet.wav 参数说明: - -f frequency:指定发射频率(MHz),未传入则默认为 100.0。 - acoustic_guitar_duet.wav:示例 WAV 文件,可使用自己的文件。

其他可选参数: - -d dma_channel:指定要使用的 DMA 通道(默认为 0),输入 255 可禁用 DMA 传输,改用 CPU 传输。 - -b bandwidth:指定带宽(kHz),默认为 100。 - -r:循环播放。

发射开始后,将 FM 接收器调至所选频率,即可听到播放内容。

Raspberry Pi 4 特殊处理

在 Raspberry Pi 4 上,其他内置硬件可能干扰软件,导致无法在所有标准 FM 广播频率上发射。建议: 1. 使用以下命令编译可执行文件,以使用 GPIO21 而非 GPIO4(GPIO 引脚的第 40 针): make GPIO21=1 2. 将 ARM 核心频率缩放调节器设置为 “performance”,或者将 ARM 最小和最大核心频率设置为恒定值(参考:https://www.raspberrypi.org/forums/viewtopic.php?t=152692 ): echo "performance"| sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 3. 发射时使用较低的 FM 广播频率(低于 93 MHz)。

支持的音频格式

可直接传输未压缩的 WAV(.wav)文件,也可从标准输入读取音频数据,例如: sudo apt-get install sox sox acoustic_guitar_duet.wav -r 22050 -c 1 -b 16 -t wav - | sudo ./fm_transmitter -f 100.6 - 仅支持未压缩的 WAV 文件。若收到 “corrupted data” 错误,可尝试转换文件,如使用 FFMPEG: ffmpeg -i not_wav_song.webm -f wav -bitexact -acodec pcm_s16le -ar 22050 -ac 1 song.wav sudo ./fm_transmitter -f 100.6 song.wav 也可使用 SoX: sudo apt-get install sox libsox-fmt-mp3 sox my-audio.mp3 -r 22050 -c 1 -b 16 -t wav my-converted-audio.wav sudo ./fm_transmitter -f 100.6 my-converted-audio.wav

麦克风支持

若要使用麦克风进行实时输入,可使用 arecord 命令,例如: arecord -D hw:1,0 -c1 -d 0 -r 22050 -f S16_LE | sudo ./fm_transmitter -f 100.6 - 若出现性能下降的情况,可将 hw:1,0 替换为 plughw:1,0arecord -D plughw:1,0 -c1 -d 0 -r 22050 -f S16_LE | sudo ./fm_transmitter -f 100.6 -

法律注意事项

在某些国家,未经特殊许可在特定频率上进行发射可能违法,请留意相关法律规定。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】