树莓派zero音频解决方案

本文章翻译自hackster.io的一篇示例型项目。
先上项目完成效果图:
这里写图片描述

所需材料:

材料 数量
树莓派zero x1
pHAT DAC X1
Mono 2.5W Class D Audio Amplifier x1
3.4W 8欧姆扬声器 x1
100欧姆电阻 x2
USB wifi x1
USB连接线 x1
热熔胶 若干
3D打印机 仅限外壳打印

正文:

准备好材料,我们就开始着手该项目。在做之前先说一下该项目的起源,这是作者在寻找做一个树莓派zero的新项目,这时一道闪光从天而降,作者遇到了Pimoroni家出的新声卡pHAT DAC,这货身材小巧,从尺寸上来看,完全适应树莓派zero,同时还扩展了树莓派的gpio不会阻碍zero再插入其他的组件,同时usb还不占用,同时可以使用usbwifi,简直是一个不可多得的树莓派zero音频解决方案。(但丫居然没有在某宝上有卖,只能用其他的声卡代替了)

先看看项目的内涵是什么样的:
树莓派zero音频解决方案_第1张图片

在之上的组件可以看出,树莓派zero是整个项目的核心组件,也就是大脑,通过开启Shairport组件并配合OTG线连接一个USB网卡来进行音乐的传输。其中可以看到,phat DAC是一个完美适应树莓派zero的声卡,其中PDAC拥有一个耳机孔输出,同时并支持RCA接口。并且pDAC的RCA没有进行预焊接,这样我们可以利用RCA接口输出模拟信号,并将之与Mono 2.5W Class D Audio Amplifier组件进行连接,通过单声道放大器将声音输出到扬声器中,并播放出来。

其实Mono 2.5W Class D Audio Amplifier组件是支持左右声道同时输出的,但我为了将项目保持的相对微型,所以我只采用了单声道输出。

如图所示,这是PDAC与Mono 2.5W Class D Audio Amplifier连接并进行单声道输出的连接方式:

硬件连接完成后我们着手进行软件的部分的开发:

1、安装镜像:
根据树莓派官网所示进行镜像的下载并烧录到一张TF卡中。
安装完镜像后,进行更新系统。

sudo apt-get update
sudo apt-get upgrade

2、安装PDAC声卡的驱动:
pDAC官方文档这是PDAC驱动安装的官方文档,但我并没有使用该文档进行驱动安装,在这里我们使用通用的声卡安装方式。因为pDAC同样采用了HiFi Berry驱动方案,所以我们可以通过在config.txt文件中注册的方式来驱动该声卡。

 sudo nano /boot/config.txt
# pHAT DAC
dtoverlay=hifiberry-dac 

添加完该属性后,进行重启,重启后,我们可以列出我们设备中的音频设备。

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0 

这时我们可以看到,声卡已经启用card 1: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 []并将该设备放置在card1中,这时我们需要修改默认的音频输出,将原音频输出的card0改为pDAC的card1。

sudo nano /etc/asound.conf
//或 sudo nano $HOME/.asoundrc
pcm.!default {
  type hw
  card 1
}

ctl.!default {
  type hw
  card 1
} 

保存设置,并重启设备。

3、安装ShairPort组件:
ShairPort组件是一款云音乐软件,它支持通过移动设备进行关联,并通过移动设备将音乐共享到该设备上。
首先安装依赖:

sudo apt-get install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils libmodule-build-perl 
cd
git clone https://github.com/njh/perl-net-sdp.git perl-net-sdp
cd perl-net-sdp/
perl Build.PL
sudo ./Build
sudo ./Build test
sudo ./Build install

依赖软件安装完毕后,开始安装ShairPort。

cd
git clone https://github.com/hendrikw82/shairport.git
cd shairport/
make

make完毕后,可以通过运行shairport.pl脚本来检查系统是否满足shairport的安装条件。

./shairport.pl -a AirPi 

确认无误后,我们就可以安装shairport了,这里我们安装完shairport后,并将该软件添加到开机启动中。

sudo make install
sudo cp shairport.init.sample /etc/init.d/shairport
sudo chmod +x /etc/init.d/shairport
sudo update-rc.d shairport defaults

最后,我们需要设定shairport设备的默认名称,那么我们就可以通过该名称来寻找设备并播放了。这里我们将设备名称设定为airpi

sudo nano /etc/init.d/shairport
#DAEMON_ARGS="-w $PIDFILE"
DAEMON_ARGS="-w $PIDFILE -a AirPi" 

保存配置并重启设备,然后我们就可以通过应用来播放我们喜欢的音乐了。

你可能感兴趣的:(树莓派)