用Raspberry Pi运行你自己的无线电台


您可以将Raspberry Pi用于各种令人讨厌的项目。但我最近发现你可以使用微小的设备作为FM发射器。这没有太多的修修补补。

Code Club pihack上的一群人写了一个程序,在Raspberry Pi上使用硬件,这意味着生成扩频时钟信号,而不是输出FM无线电信号。

 

背景

这里有一些背景知识。除了Raspberry Pi上熟悉的音频,以太网,HDMI和USB端口外,该器件还具有可直接与其他芯片和模块连接的接口。

这些通用输入/输出(GPIO)“ports” 端口是您在电路板上看到的26针(排列成2×13条)。这些接口不是即插即用的,但可以通过软件控制。

 

要传输令人惊讶的强大FM信号,您只需将电线连接到GPIO 4引脚即可。即使没有电线,Raspberry Pi广播的FM信号也会被附近的FM接收器接收。

pifm-GPIO

需要注意的是:广播调频信号的法律因国家而异。在尝试此项目之前,请检查您当地的法规。

获取,设置,去

启动Pi并通过SSH或直接登录设备前往命令行。

我们现在将获取Code Club hackfest中编写的代码并将其解压缩:

mkdir ~/pifm
cd pifm
wget http://omattos.com/pifm.tar.gz
tar zxvf pifm.tar.gz

该目录现在包含六个文件。令人惊讶的是,这就是它的全部。您现在可以广播包含的“sound.wav”文件:

sudo ./pifm sound.wav 102.3

现在抓住FM接收器并将其设置为FM 102.3,您应该听到星球大战主题音乐。实际上,只需在命令末尾附加频道频率,即可在88 MHz和108 MHz之间的任意位置更改广播频率。

pifm-RPI

广播曲目

您也可以播放其他音频文件,但它们必须是16位22050 Hz单声道,并且只能使用WAV格式。这似乎是一个真正的限制,但实际上并非如此。您只需要SoX声音交换音频编辑器,它将处理您的MP3文件并将其转换为动态WAV文件。

使用以下命令安装音频编辑器及其依赖项:

sudo apt-get install sox libsox-fmt-all

完成后,输入以下命令,将“SomeSong.mp3”替换为您要播放的MP3文件的名称:

sox -t mp3 SomeSong.mp3 -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3

该命令的第一部分将MP3文件转换为WAV文件,将其音频采样率更改为22050并将轨道向下混合为单声道。然后将转换后的轨道发送到标准输出,用连字符( - )表示,然后用管道输入(|)到pifm命令的标准输入。

pifm上面示例中命令的唯一区别是,我们要求脚本改为广播标准输入,而不是指定要广播的文件的名称。

 

如果你仍然将你的FM接收器调到102.3频率,你现在应该听到你的MP3!再次,就像原始示例一样,随意将频率替换为88 MHz和108 MHz之间的任何值。

广播播客

你可以用SoX做一些很棒的事情。例如,您可以使用它从互联网上直播您喜欢的流。

要广播Linux语音播客:

sox -t mp3 http://www.linuxvoice.com/episodes/lv_s02e01.mp3 -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3

此命令与前一个示例之间的唯一区别是,您现在指向的是一个驻留在线的MP3,而不是指向本地MP3。

您可以类似地广播在线广播电台。许多工作站发布M3U文件,您可以指向它:

sox -t mp3 http://www.ndr.de/resources/metadaten/audio/m3u/ndrloop5.m3u -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3

 

并非所有电台都播放MP3流。有些使用其他格式,如OGG。您只需要更改要使用sox转换的输入文件的类型。如:

sox -t ogg http://network.absoluteradio.co.uk/core/audio/ogg/live.pls?service=a6bb -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3

如果您正在寻找在线无线电,那么这里有大量在线流媒体的欧洲广播电台

图片来源:Robert Ashworth

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照以下步骤将树莓派配置为无线路由器: 1. 确保你的树莓派已经启用了 Wi-Fi,可以通过在终端输入 `sudo raspi-config` 进入 Raspberry Pi 配置界面,选择 Network Options -> Wi-Fi,接着输入你的 Wi-Fi 网络信息,如 SSID 和密码,以启用 Wi-Fi。 2. 安装所需软件包。在终端输入以下命令: ``` sudo apt-get update sudo apt-get install hostapd dnsmasq ``` 3. 配置静态 IP 地址。在终端输入以下命令: ``` sudo nano /etc/dhcpcd.conf ``` 在文件末尾添加以下内容: ``` interface wlan0 static ip_address=192.168.4.1/24 nohook wpa_supplicant ``` 保存文件并退出。 4. 配置 hostapd。在终端输入以下命令: ``` sudo nano /etc/hostapd/hostapd.conf ``` 在文件末尾添加以下内容: ``` interface=wlan0 ssid=YourSSID hw_mode=g channel=7 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=YourPassword wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP ``` 其中,`YourSSID` 和 `YourPassword` 分别是你想要设置的无线网络名称和密码。保存文件并退出。 5. 配置 dnsmasq。在终端输入以下命令: ``` sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig sudo nano /etc/dnsmasq.conf ``` 在文件末尾添加以下内容: ``` interface=wlan0 dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h ``` 保存文件并退出。 6. 配置 IP 转发。在终端输入以下命令: ``` sudo nano /etc/sysctl.conf ``` 找到以下行: ``` #net.ipv4.ip_forward=1 ``` 将其改为: ``` net.ipv4.ip_forward=1 ``` 保存文件并退出。 7. 配置 iptables。在终端输入以下命令: ``` sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" ``` 8. 启动服务。在终端输入以下命令: ``` sudo systemctl start hostapd sudo systemctl start dnsmasq ``` 如果你想让这些服务在启动时自动启动,可以输入以下命令: ``` sudo systemctl enable hostapd sudo systemctl enable dnsmasq ``` 9. 重启树莓派。在终端输入以下命令: ``` sudo reboot ``` 完成上述步骤后,你应该就可以使用你的树莓派作为一个无线路由器了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值