如何制作基于树莓派的收音机
收音机听起来像是“老旧”的技术,但这恰恰是它的魅力所在:简单、可靠,而且在娱乐和教育项目中仍然非常实用。使用树莓派,你可以打造一台现代化的、功能灵活的收音机——它可以是网络电台、本地音乐播放器,甚至(通过额外的模块)还能变成调频收音机。本文将以实用的方式介绍如何搭建一台基于树莓派的收音机,从硬件设置到软件配置,一应俱全。
-
1. 基于树莓派的无线电概念
一般来说,主要有两种方法:
1. 网络电台(流媒体)
树莓派可以通过 Wi-Fi/以太网连接播放来自互联网的无线电广播。这是最简单、最常用的方法,因为它不需要任何特殊的射频设备。
2. FM/AM收音机(需另购设备)
需要一个调谐器模块(例如,通过 I2C/SPI 接口的 FM 接收器)或软件定义无线电 (SDR) 设备。配置较为复杂,且通常取决于所使用的设备。
本文主要关注网络电台,因为它对初学者最友好,也最适合在短时间内创建。
-
2.所需设备
以下是推荐组件列表:
– 树莓派(推荐使用 Pi 3/4/Zero 2W)
– MicroSD卡最小容量8–16 GB
– 稳定的电源(5V,电流根据树莓派型号而定)
– 互联网连接(Wi-Fi 或网线)
– 音频输出:
– 通过 3.5 毫米插孔连接有源扬声器(适用于支持的型号),或
– USB扬声器/放大器,或
– DAC 音频扩展板(可选,音质更佳)
– 显示器和键盘(用于初始设置)或 SSH 访问
– 项目外壳/盒子(可选,为了美观)
如果您想要一台带有实体按键的收音机,您可以添加:
– 按钮、旋转编码器或 OLED/LCD 屏幕。
-
3. 安装树莓派操作系统
1. 在您的电脑/笔记本电脑上下载并安装 Raspberry Pi Imager。
2. 插入 microSD 卡,然后刷入 Raspberry Pi OS Lite(不带桌面)以节省资源,或者如果您想要图形界面,则刷入桌面版。
3. 在写入图像之前,您可以设置:
– Wi-Fi(SSID 和密码)
用户名和密码
– SSH 激活
4. 启动树莓派并确保互联网连接正常。
登录系统后,更新软件包:
“`重击
sudo apt update
sudo apt升级-y
“`
-
4. 在树莓派上设置音频
检查检测到的音频设备:
“`重击
aplay-l
“`
如果您使用 HDMI 或音频插孔(取决于您的型号)输出音频,您可以选择默认输出。某些版本的 Raspberry Pi OS 会自动配置音频设置,但您也可以通过以下方式测试输出:
“`重击
speaker-test -t wav -c 2
“`
如果您使用的是 USB 声卡或 DAC HAT,它通常会显示为一个新设备。请确保您的输出设置正确,以便收听广播。
-
5. 安装网络电台播放器(MPD + MPC)
最稳定的方法之一是使用 MPD(音乐播放器守护程序)播放音频,并使用 MPC 作为终端控制器。
安装软件包:
“`重击
sudo apt install -y mpd mpc
“`
请确保 MPD 正在运行:
“`重击
sudo systemctl enable mpd
sudo systemctl start mpd
“`
查看状态:
“`重击
systemctl status mpd
“`
-
6. 添加电台列表
MPD可以播放URL流媒体。您可以将电台添加到MPD播放列表中。
添加一个广播流的示例:
“`重击
mpc 添加 http://streamurl-radio-anda:8000/stream
“`
然后播放:
“`重击
MPC Play
“`
查看列表:
“`重击
mpc播放列表
“`
创建收藏电台播放列表
您可以创建 `.m3u` 播放列表文件:
1. 创建播放列表文件夹(如果不存在):
“`重击
mkdir -p ~/playlists
“`
2. 创建一个文件:
“`重击
nano ~/playlists/radio.m3u
“`
3. 填写一些流媒体网址,例如:
“`
http://example.com/stream1
http://example.com/stream2
http://example.com/stream3
“`
您可以将它们单独加载到 MPD 中,也可以设置 MPD 音乐/播放列表目录。快捷方法:直接从文件添加(可选,取决于您的 MPD 配置),或将播放列表复制到您的 MPD 播放列表文件夹(通常为 `/var/lib/mpd/playlists/`)。
-
7. MPD配置使其更适合无线电
编辑 MPD 配置:
“`重击
须藤纳米 /etc/mpd.conf
“`
一些重要部分:
– 请确保音频输出正确。常见示例:
“`conf
音频输出 {
输入“alsa”
名称“ALSA 输出”
混音器类型“软件”
}
“`
– 您可以设置缓冲区以使流媒体播放更加稳定(可选,取决于网络状况)。
完成后,重启 MPD:
“`重击
sudo systemctl restart mpd
“`
-
8. 设置收音机在启动时自动开启
让树莓派在开机后立即播放广播:
1. 创建一个简单的脚本,例如:
“`重击
nano ~/start-radio.sh
“`
伊西:
“`重击
!/bin/bash
睡5
mpc 清晰
mpc 添加 http://streamurl-radio-anda:8000/stream
mpc 音量 70
MPC Play
“`
保存后再授予执行权限:
“`重击
chmod +x ~/start-radio.sh
“`
2. 创建 systemd 服务:
“`重击
须藤纳米 /etc/systemd/system/radio.service
“`
伊西:
“`伊尼
[单元]
描述=收音机自动播放
After=network-online.target mpd.service
Wants=network-online.target
[服务]
用户=pi
ExecStart=/home/pi/start-radio.sh
失败时重启
[安装]
WantedBy = multi-user.target
“`
使能够:
“`重击
sudo systemctl守护进程重新加载
sudo systemctl enable radio.service
sudo systemctl start radio.service
“`
注意:如果用户名不是 `pi`,请调整路径和 `User=`。
-
9. 添加控件(可选)
为了让它感觉像一台真正的收音机,你可以添加物理控制按钮:
– 下一站/上一站按钮用于切换电台:
– `mpc 下一个`
– `mpc prev`
– 播放/停止按钮:
– `mpc 切换`
– `mpc stop`
– 音量旋转编码器:
– `mpc 音量 +5`
– `mpc volume -5`
要实现按钮功能,可以使用 Python(GPIO)并调用 `mpc` 命令。这种组合非常流行,因为它简单易用,开发方便。
-
10. 开发技巧和故障排除
一些常见问题及其解决方法:
1. 无声音
– 确保音频输出正确(ALSA 设备)。
– 尝试更换扬声器/USB声卡。
– 确保音量不为 0:`mpc volume 80`
2. 流媒体播放断断续续
– 尽量使用局域网连接。
– 在启动时播放前添加延迟(`sleep 5` 或 `sleep 10`)。
– 选择较低比特率的视频流。
3. MPD 无法播放 URL
– 请确保 URL 正确,并且可以从同一网络打开。
– 确保支持包可用(通常在最新的 Raspberry Pi OS 上就足够了)。
4. 想要一个更“无线电”风格的界面
– 安装像 ncmpcpp(终端 UI)这样的前端,或者创建一个简单的 Web UI。
-
关闭
用树莓派搭建一台收音机既有趣又有成就感。通过结合 MPD 和 MPC,你可以创建一个稳定的网络收音机,它能在开机后自动启动,并且可以轻松扩展,添加带有物理按键、小屏幕甚至定制外壳的设备。一旦掌握了基本功能,你还可以更进一步:添加 OLED 屏幕来显示电台名称,创建预设菜单,甚至添加 FM 收音机调谐器模块。
如果您愿意,我可以提供更具体的版本:例如,一个可直接使用的印尼广播电台列表(URL)、一个用于 GPIO 开关的 Python 代码示例,或者一个关于如何使用 DAC HAT 来获得更好音质的指南。