侵权投诉
订阅
纠错
加入自媒体

DIY:用NanoPi neo制作网络音箱了解一下?

2020-08-25 08:51
DLGG创客DIY
关注

因为手上有个NanoPi neo,想着做个什么东西,这货有网络接口,没有直接的HDMI之类接口,想着要把做个网络音箱吧,可以用PC或者手机去控制播放,多方便啊!

说干就干!

可光这货也不能搞啊,再找找家里的存货,有老的适配PC的有源音箱,有淘汰的手机5V电源,小容量(8G)的中速tf卡(差不多可以放系统啦)其实光这个也够了,不过NanoPi neo自身的DAC输出也存在接线问题,效果吗,还不够,遂想着升级一下,搞个高大上的专门DAC(因为NanoPi neo支持I2S)。

其实官方有个高大上的专门音频DAC,NanoHat PCM5102A,不过价格嘛,有点小贵,还是自力更生吧,还可以自己安排接线,遂在某宝上用官方四分之一的价格淘到同样用PCM5102A的DAC模块。
它长这样:

东西齐备,可以开工啦。

基本系统安装

基本是参考官方wiki来安装基本系统,下载的是最新的nanopi-neo_sd_friendlycore-xenial_4.14固件(这里吐槽一下,官方是某度网盘下载,无会员真心慢啊!)

固件写入工具是windows下的Etcher(推荐这个工具,固件写入很方便)。具体操作就略过啦,只要固件下载完整,tf卡没有问题,写入是一次成功的。

设备的连接也省略啦,参考官方的wiki就好。

因为NanoPi neo没有直接的视频输出,就采用的串口连接来监视(接线也参考官方wiki),比特率是115200,官方没有介绍这个情况。

直接从串口USB取电来进行首次启动。一次启动成功,连接网线后自动获取到地址,后面就可以用网络ssh登录来进行管理啦。

I2S DAC的连接与启用

因为不是官方的I2SDAC,当然不能一插启用,不过也不是难事,购买的PCM5102A模块随配了管脚针,也有详细的接线图,就先焊接用到的脚,一共需要5根线(不需要6根线,可以省略时钟信号线,4根线也是不够的!),接线关系如下图

连接好后,还需要在系统中配置一下,才能正式启用这个I2S音频DAC的输出,主要的步骤是先登录进系统,运行

sudo npi-config

启动配置,依次进入 Advanced Options -> I2S,选择启用(Enable) I2S设备即可,设置后需要重启。

重启后用,安装音频相关应用(主要是alsa应用),并列出系统音频设备

apt-get updateapt-get install libasound2apt-get install alsa-baseapt-get install alsa-utilsaplay -l

查看音频设备,我的有4个设备,其中设备4是I2S对应的PCM5102A设备,所以测试

sudo aplay /root/Music/test.wav -D plughw:4

看是否有声音(可以插耳机试),确认后再看是否把I2S设备设置为默认音频设备:
查看/etc/asound.conf中是否和检测到的I2S设备编号一致,比如我的就是(设备编号是4):

pcm.!default {    type hw    card 4    device 0}ctl.!default {    type hw    card 4}

这时(不指定输出设备的播放)运行

sudo aplay /root/Music/test.wav

应该正常出声。至此I2S设备的连接成功,可以进行下一步。

音箱硬件改造

主要涉及开孔安装固定NanoPi neo,并且能外接网线(同时提供了外露USB接口),固定I2S音频DAC,固定针对NanoPi neo的专用电源适配器(那个5V的手机,I2S的电是经过NanoPi 取的),同时电源和原来的有源音箱公用电源开关(220V的输入开关)。

以及相应的连接线。

因为个人的物件情况不同,所以图的参考价值不大(其实除了电源外,和外部连接差不多,和音箱连接的就是把I2S音频DAC的输出接到音箱的音频输入去而已),所以这里就不放图啦,不过有一个大致DIY过程的视频可以参考下。

这个过程主要注意各种接线的准确,还要保证接线的稳定耐用,因为我主要采用的杜邦线,个别用到了焊接,对杜邦线,其实可以点点热熔胶协助固定下(我就是这么搞的)。

真正网络音箱功能的实现

真正实现网络音箱功能,还需要安装一个专门的客户端软件,就是squeezelite,这个软件是罗技Logitech Media Server 的无头(headless)客户端,可以算作是罗技Squeezebox的一种模拟器。
在NanoPi neo的标准系统中安装它是很方便的,直接:

sudo apt-get updatesudo apt-get install squeezelite

即可安装完成,且自动启动squeezelite(同时加入到自动启动中,即下次重启也会自动启动)。
如果在同一个内网段中有罗技Logitech Media Server服务,则就可以实现网络音箱功能啦。

我是有一个罗技Logitech Media Server服务的,在NanoPi neo 安装了squeezelite后,就检测到了一个支持的NanoPi neo播放设备(因为它们在一个内网网段中,跨网段的不行),这样就可以在罗技Logitech Media Server中进行网络播放啦,如下图所示:

至此(详细演示可以参考DIY过程的视频中相关部分),我的网络音箱功能实现。

可能的升级

前面网络音箱功能确实实现啦,但还有点可能的升级空间,比如网线也不接的网络音箱。这对NanoPi neo来说,不能直接实现,还需要添加个无线网口设备,需要用到唯一的USB接口,它兼容的(测试成功的)USB wifi卡有

RTL8188CUS/8188EU 802.11n WLAN Adapter

RT2070 Wireless Adapter

RT2870/RT3070 Wireless Adapter

RTL8192CU Wireless Adapterv

小米WiFi mt7601

5G USB WiFi RTL8821CU

5G USB WiFi RTL8812AU

选择任意一款后,使用nmcli来完成无线联网即可,如果是其它不在列表中的wifi卡,也可以尝试

sudo apt-get install linux-firmware

安装更多的wifi网口驱动来看看是否能正确驱动起来。

具体nmcli管理无线网络的步骤如下:

切换到root账户

sudo su root

查看网络设备列表

注意,如果列出的设备状态是 unmanaged 的,说明网络设备不受NetworkManager管理,你需要清空 /etc/network/interfaces下的网络设置,然后重启.

nmcli dev

开启WiFi

nmcli r wifi on

扫描附近的 WiFi 热点

nmcli dev wifi

连接到指定的 WiFi 热点

注意请将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。
连接成功后,下次开机,WiFi 也会自动连接。

nmcli dev wifi connect "SSID" password "PASSWORD" ifname wlan0

这样网络有源音箱就升级为无线有源音箱,可以摆脱网线束缚啦。

声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

    电子工程 猎头职位 更多
    扫码关注公众号
    OFweek电子工程网
    获取更多精彩内容
    文章纠错
    x
    *文字标题:
    *纠错内容:
    联系邮箱:
    *验 证 码:

    粤公网安备 44030502002758号