0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用树莓派zero实现AirPlay扬声器的设计

科技观察员 来源:Frederick Vandenbosch 作者:Frederick Vandenbosch 2022-05-26 17:36 次阅读

这款 Pi Zero AirPlay 扬声器融合了现代和经典风格。

背景

在寻找围绕 Raspberry Pi Zero 构建的新项目时,我发现了 Pimoroni 的 pHAT DAC。这个小插件板为 Pi Zero 添加了音频播放功能。因为 pHAT 使用 GPIO 引脚,所以 USB OTG 端口仍可用于 wifi 加密狗。非常适合小型无线扬声器项目,从而诞生出了制作这个项目的想法!

硬件

该项目相当简单,需要以下组件:

树莓派

pHAT DAC

单声道 2.5W D 类放大器

WiPi 无线加密狗

两个 100 欧姆电阻

扬声器(4-8 欧姆)

Raspberry Pi Zero 显然是该项目的大脑,它将运行 Shairport 软件以无线传输音乐。pHAT DAC 是一个简洁的小插件板,可为 Raspberry Pi 添加音频。它有一个插孔输出,并且可以向其添加 RCA 连接器。RCA 连接器没有预焊的事实是一个好处,因为它暴露了音频线。然后,Adafruit 的小型单声道放大器从 pHAT 获取音频并放大,从扬声器播放音频。通过 USB OTG 端口连接的 wifi 加密狗为流媒体提供无线网络连接。

我决定制作一个单声道扬声器以保持整个项目的体积不会太大,使用立体声支持制作这个项目意味着拥有第二个扬声器并用立体声扬声器替换单声道放大器。

pYYBAGKPSM-AIfolAAkQzB3qKng223.png

我知道这不是将立体声转换为单声道的最佳方式,但它确实有效。我试图从软件的角度通过将立体声下混为单声道来解决这个问题,但没有完全成功。如果有人对如何以简单的方式实现这一点有提示,请随时在评论中留下!

软件

在软件方面,跟硬件也是差不多难度。

首先从 Raspberry Pi 官方网站下载最新 Raspbian Jessie 图像开始。

使用“dd”,我将下载的图像放在 8Gb microSD 卡上,然后用它来启动 Pi Zero。

sudo diskutil list
sudo diskutil unmountDisk /dev/disk3
sudo dd if=Downloads/2015-11-21-raspbian-jessie.img of=/dev/disk3 bs=1m
sudo diskutil unmountDisk /dev/disk3

启动后,通过选择正确的 SSID 并输入 wifi 密码在图形桌面环境中设置 wifi。将 Pi Zero 连接到网络后,可以更新软件。

sudo apt-get update
sudo apt-get upgrade

然后是安装项目特定软件的时候了:支持 pHAT DAC 和 AirPlay 软件。

pHAT DAC
Pimoroni 网站上提供了有关如何安装和使用 pHAT DAC的教程。不过,我的做法略有不同,因为我没有禁用默认声音驱动程序。

设备树覆盖用于描述硬件。由于 pHAT DAC 使用与 HiFi Berry 相同的硬件,因此可以通过将以下行附加到配置文件来使用相同的覆盖:

pi@raspberrypi:~ $ sudo nano /boot/config.txt

# pHAT DAC
dtoverlay=hifiberry-dac

重新启动后,我使用“aplay”应用程序列出了音频设备,它是:卡 1 - HiFi Berry 。

pi@raspberrypi:~ $ 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

为了使其成为音频播放的默认设置,我更新了 asound.conf 文件并将对“card 0”的所有引用替换为“card 1”。

pi@raspberrypi:~ $ sudo nano /etc/asound.conf

pcm.!default {
type hw
card 1
}

ctl.!default {
type hw
card 1
}

最后重新启动确保所有内容都已应用。

Shairport
Shairport 是一个 Airtunes 模拟器,允许兼容的 iOS 设备或 iTunes 将音频流式传输到运行它的设备。

在安装和运行 Shairport 之前,需要满足一些依赖项。

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

处理好依赖关系后,可以安装实际的 Shairport 软件。

pi@raspberrypi:~ $ git clone https://github.com/hendrikw82/shairport.git
pi@raspberrypi:~ $ cd shairport/
pi@raspberrypi:~/shairport $ make

在这个阶段,可以通过手动运行 shairport.pl 脚本来测试是否一切都安装正确。

pi@raspberrypi:~/shairport $ ./shairport.pl -a AirPi

在确认一切都按预期工作后,可以对 shairport 应用程序进行守护,以使其在启动时自动启动。

pi@raspberrypi:~/shairport $ sudo make install
pi@raspberrypi:~/shairport $ sudo cp shairport.init.sample /etc/init.d/shairport
pi@raspberrypi:~/shairport $ sudo chmod +x /etc/init.d/shairport
pi@raspberrypi:~/shairport $ sudo update-rc.d shairport defaults

最后,需要修改 shairport 文件以指定 AirPlay 设备的名称。这可以是你想要的任何东西。就我而言,我选择了一些通用的东西,比如“AirPi”。

pi@raspberrypi:~/shairport $ sudo nano /etc/init.d/shairport

#DAEMON_ARGS="-w $PIDFILE"
DAEMON_ARGS="-w $PIDFILE -a AirPi"

重新启动 Pi。Hairport 应该会自动运行。

外壳

是时候将工作中的 AirPlay 扬声器包装成漂亮的东西了,为它制作一个漂亮的外壳。

这实际上是该项目中最困难的部分。主要是因为我想用木头制作它,并且形状有点复杂。这意味着在使用斜切锯切割正确长度的零件之前做一些数学运算,然后确保切割正确的角度以便正确连接零件。由于我不是木工,而且我可以使用的工具也不是最合适的,因此结果并不总是像您期望的那样准确。

poYBAGKPSN6AeRuNAAVVW5aNZ9I403.png

通过添加 3D 打印部件为构建赋予了一些重点:侧面板和扬声器格栅。其中一个侧面板没有粘在适当的位置,如果需要,可以将其移除,以便访问电子设备。我犹豫是否将 3D 打印部件涂成不同的颜色以获得镀铬或黄铜外观,但最终还是将这些部件保持原样。总的来说,它给构建带来了一些时髦的一面,不是吗?

这就是这个项目最终的样子:

poYBAGKPSO2ACGqGAAcCxejCy4s576.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 扬声器
    +关注

    关注

    29

    文章

    1231

    浏览量

    60427
  • AirPlay
    +关注

    关注

    0

    文章

    12

    浏览量

    10326
  • 树莓派
    +关注

    关注

    114

    文章

    1656

    浏览量

    104948
收藏 人收藏

    评论

    相关推荐

    极致小巧的树莓新成员,仅 5 美金的 Raspberry Pi Zero 登场

    `树莓 Paspberry Pi 创办人当初的原始想法就是利用价格便宜的单板计算机,让年轻学子有机会能从头学习程序开发,而后也连带兴起一股以树莓
    发表于 11-26 22:46

    把古董收音机改造成Airplay播放

    的声音——保留古典感嘛至少一个原来的旋钮还能够用原来提示灯能够使用我遇到了一些障碍:想要用原来的扬声器,我需要一个放大器想要用原来提示灯,需要120V的电源树莓只需要5V我不想要搞成两个插头...囧
    发表于 12-30 11:07

    Multi-Cade:树莓游戏机(一)——材料和工具

    :根据游戏的不同数量自选1个游戏到USB转换(可选):这个是可选的,因为你可以通过树莓的GPIO引脚连,但它简化了流程扬声器/音响系统(推荐):如果您的显示
    发表于 01-05 10:36

    树莓之鬼影实录(≖ ‿ ≖)✧

    到投影仪、热释电红外运动传感树莓和一块薄喷了反光漆的有机玻璃做屏幕。视频投影仪:用HDMI接口和转换电缆将投影仪接到树莓三脚架(可选
    发表于 01-08 14:03

    树莓Zero小夜灯

    `找个自己喜欢的小灯(带两脚插头),用树莓zero做一个能用手机控制的小夜灯。其实如果用树莓2做的话容易得多因为不需要焊引脚,但是既然是
    发表于 01-28 15:03

    树莓Zero什么时候会有货?

    树莓Zero虽然功能较2B、3B若了点儿,但是其可改造性、嵌入性非常好,去年及发布了,但是迟迟没有货,是不是不会再生产了?
    发表于 03-19 10:57

    树莓zero使用USB HUB集线器的问题

    本帖最后由 makersky 于 2017-7-6 11:05 编辑 请教一下大家,树莓zero板子插上hub集线器能正常使用吗?为什么我的树莓
    发表于 07-06 10:59

    【NanoPi Duo开发板试用申请】基于NanoPi Duo的家庭Airplay点播中心

    项目名称:基于NanoPi Duo的家庭Airplay点播中心试用计划:NanoPi Duo板子小巧做工精致,搭载全志H2+512MB内存,既有树莓Zero W的小巧与无线功能,可谓
    发表于 09-21 16:21

    树莓 Zero 添加一个RCA视频输出插头

    你知道吗?树莓 Zero 也是有集成视频输出接口的。如果你希望用老式的电视作为树莓 Zero
    发表于 05-24 07:00

    请问树莓 PI ZERO哪里买?

    树莓 PI ZERO 10美元不知道到哪里买
    发表于 08-21 03:18

    请问如何实现新型压电陶瓷扬声器的设计?

    如何实现新型压电陶瓷扬声器的设计?压电陶瓷扬声器的工作原理是什么?动圈扬声器的工作原理是什么?采用陶瓷扬声器的优点有哪些?
    发表于 04-14 06:43

    陶瓷扬声器有哪些特性?陶瓷扬声器对放大器有什么要求?

    陶瓷扬声器有哪些特性?陶瓷扬声器的声压与频率和幅度有什么关系?陶瓷扬声器对放大器有什么要求?陶瓷扬声器与电动式扬声器的效率有什么不同?
    发表于 04-14 06:12

    如何利用树莓实现物联网?

    如何利用树莓实现物联网?
    发表于 10-19 06:58

    树莓zero wh坑分享

    树莓型号:树莓zero wh坑一:电源线按照网上的教程烧录好SD卡,使用5v2a的电源,结果能看到电源灯一直闪,死活看不到
    发表于 01-13 06:25

    如何实现树莓zero w网络穿透远程跨网络监控功能呢

    如何对树莓zero w摄像头进行配置从而实现内网监控功能?如何实现树莓
    发表于 03-01 06:00