工程作者:realTiX
为了提升听歌体验,我用免费PCB,做了个唱片机摆件!

通过USB连接电脑使用
自带屏幕,能显示当前播放音乐的专辑封面
封面旋转让人感觉自己在听古老的唱片机~~~听歌体验大大提升~~
能控制音乐播放/暂停:拨动唱臂,能控制电脑端播放/暂停;电脑端播放/暂停状态下,唱臂也会离开/回到唱片
大多播放器都能联动:只要系统媒体服务能看到音频信息选项卡的播放器基本都能使用,网页 b 站也支持,对于咱开不起 vip 的 b 站听歌选手很友好,部分播放器可能需要手动打开 smtc 设置才能支持
演示一下↓


那么,想实现这些功能,具体要怎么设计呢↓
作者用嘉立创EDA设计了一块PCB板。
硬件参数
主控:AT32F403A
圆形显示屏:GC9A01 240*240
线圈:两个 9*10 带铁芯,用于驱动唱臂,唱臂原理类似于磁保持继电器;唱臂的磁铁可不分极性随意安装,算法会自动识别
使用全速 usb cdc 虚拟串口来收发上位机数据
开启拓展ram,使用一个115.2 KB全局数组来存储图片
使用 50M spi dma 刷屏,设置了两个十分之一屏幕尺寸的 buffer 进行双缓冲刷屏;spi dma 部分非 at32 官方库,而是自己移植了 stm32 hal 库,因为 at 的 spi 库连多字节发送都没有,dma 收发也没有;很难不吐槽 at32 的官方库为什么不像 py32 一样直接套 st 的 hal 库,反正 bsd 协议;
使用自研 ltx 裸机调度器,显示屏初始化和唱臂自检可同时运行,包括后续的运行阶段
工作原理
上位机通过 windows smtc 服务(win10 及以上)获取系统当前正在播放的音频的各种信息
通过 usb 向单片机发送封面和暂停/播放等信息来控制唱片机的状态
当手动拨动唱臂时,单片机会向上位机发送请求,上位机收到请求后会通过 smtc 来控制系统音频的播放或暂停状态,然后回传状态给单片机。
上位机会每秒发送一次系统音频的播放状态给唱片机,在上位机超过一分钟没有发过来命令后,唱片机会进入休眠。
这是一个简单,但能提升生活体验的小摆件!
想象一下,当你在雷雨交加的夜晚洗完热水澡,拨动了一下它的唱臂,酣畅淋漓的听了一曲《阳光宅男》……

是不是很爽???哈哈~
小编OS:
之前看到有创友在评论区提出:“觉得有时候一些开源分享太简单了”。
小编认为,开源作品总是百花齐放的。
我们也会努力多提供硬核技术的分享,但随着开源平台的发展,随着用户的增加,平台上除了技术的分享,也有创意的分享,生活方式的分享。小编都想分享给大家!
最后,希望本次的作品分享,能带给你愉悦的心情~
如果你想给作者点个赞
或想了解开源项目[源码][硬件]等资料
就下滑吧!
▼▼