树莓派调频发射机
使用 Raspberry Pi 作为 FM 发射器。适用于所有 Raspberry Pi 板。
只需准备一个 FM 接收器,将一根 20 - 40 厘米的普通电线连接到 Raspberry Pi 的 GPIO4(GPIO 接头上的 PIN 7)作为天线,就可以开始广播了。
该项目使用通用时钟输出来产生调频无线电通信。它基于PiFM 项目中Oliver Mattos 和 Oskar Weigl最初提出的想法。
要使用该软件,您必须构建可执行文件。首先,安装所需的依赖项:
sudo apt-get update sudo apt-get install make build-essential
根据操作系统(例如 Ubuntu Server 20.10),可能还需要安装 Broadcom 库:
sudo apt-get install libraspberrypi-dev
安装依赖项后,克隆此存储库并使用make命令来构建可执行文件:
git clone https://github.com/markondej/fm_transmitter cd fm_transmitter make
成功构建后,您可以通过执行“fm_transmitter”程序开始传输:
sudo ./fm_transmitter -f 100.6 acoustic_guitar_duet.wav
注意:
-f频率-指定频率,单位MHz,如果不通过则默认100.0
Acoustic_guitar_duet.wav - 示例 WAV 文件,您可以使用自己的
其他选项:
-d dma_channel - 指定要使用的 DMA 通道(默认为 0),输入 255 禁用 DMA 传输,将使用 CPU
-b 带宽 - 指定带宽(以 kHz 为单位),默认为 100
-r - 循环播放
传输开始后,只需将 FM 接收器调谐到所选频率,您就应该听到播放声音。
在 Raspberry Pi 4 上,其他内置硬件可能会以某种方式干扰该软件,从而无法在所有标准 FM 广播频率上进行传输。在这种情况下,建议:
编译可执行文件,并选择使用 GPIO21 而不是 GPIO4(GPIO 接头上的 PIN 40):
make GPIO21=1
将 ARM 核心频率调节调节器设置更改为“省电”,或将 ARM 最小和最大核心频率更改为一个恒定值(请参阅:https://www.raspberrypi.org/forums/viewtopic.php ?t= 152692)。
echo "powersave"| sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
传输时使用较低的 FM 广播频率(低于 93 MHz)。
Hydranix提出了使用发射器作为通用音频输出设备的简单方法。为了实现这一点,您应该加载“snd-aloop”模块并将输出从环回设备流式传输到发射器应用程序:
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 - &
请记住环回设备应设置为默认 ALSA 设备(请参阅本文)。另外,参数“-D hw:X,1,0”应该指向该设备(使用卡号而不是“X”)。
为了使用麦克风实时输入,请使用命令arecord,例如:
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这样:
arecord -D plughw:1,0 -c 1 -d 0 -r 22050 -f S16_LE | sudo ./fm_transmitter -f 100.6 -
您可以直接传输未压缩的 WAV (.wav) 文件或从 stdin 读取音频数据,例如。使用 MP3 文件:
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 -
请注意,仅支持未压缩的 WAV 文件。如果您收到“数据损坏”错误,请尝试转换文件,例如。通过使用 SoX:
sudo apt-get install sox libsox-fmt-mp3 sox example.mp3 -r 22050 -c 1 -b 16 -t wav converted-example.wav sudo ./fm_transmitter -f 100.6 converted-example.wav
或者你也可以使用 FFMPEG:
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
请记住,未经特殊许可在某些频率上进行传输在您所在的国家/地区可能是非法的。
DMA 外设支持
允许自定义频率和带宽设置
适用于所有 Raspberry Pi 型号
读取单声道和立体声文件
从标准输入读取数据
原文地址:https://github.com/markondej/fm_transmitter
免责声明:
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
侵删请致信E-mail:fubuki@soxlola.edu.kg
