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
这样网络有源音箱就升级为无线有源音箱,可以摆脱网线束缚啦。
图片新闻
最新活动更多
-
即日-11.13立即报名>>> 【在线会议】多物理场仿真助跑新能源汽车
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
11月29日立即预约>> 【上海线下】设计,易如反掌—Creo 11发布巡展
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论