DIY:用NanoPi neo制作网络音箱了解一下?
因为手上有个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
这样网络有源音箱就升级为无线有源音箱,可以摆脱网线束缚啦。
图片新闻
技术文库
最新活动更多
-
1月8日火热报名中>> Allegro助力汽车电气化和底盘解决方案优化在线研讨会
-
1月9日立即预约>>> 【直播】ADI电能计量方案:新一代直流表、EV充电器和S级电能表
-
即日-1.16立即报名>>> 【在线会议】ImSym 开启全流程成像仿真时代
-
即日-1.20限时下载>>> 爱德克(IDEC)设备及工业现场安全解决方案
-
即日-1.24立即参与>>> 【限时免费】安森美:Treo 平台带来出色的精密模拟
-
即日--2.7了解详情>> 【森海塞尔】TeamConnect系列产品——提升视听之体验,塑造音频之未来
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论