立创开源DIY:基于STM32的多功能示波器音乐视频手表(ZHAO-Watch 2设)

发布时间:2026/7/3 5:40:42

立创开源DIY:基于STM32的多功能示波器音乐视频手表(ZHAO-Watch 2设) 立创开源DIY基于STM32的多功能示波器音乐视频手表ZHAO-Watch 2设大家好最近在立创开源社区看到一个特别有意思的项目——ZHAO-Watch 2设。这可不是一块普通的手表它基于STM32单片机把示波器、MP3播放器、视频播放器这些“大家伙”的功能硬是塞进了一块手表大小的设备里。今天我就带大家一起来拆解这个项目看看它是怎么实现的如果你也想动手复刻一块需要注意哪些坑。这个项目是之前ZHAO-Watch的升级版作者砍掉了语音识别换上了更实用的3.5mm耳机接口还重构了菜单框架操作更流畅。虽然外壳设计暂时搁置了但功能一点不含糊。咱们接下来就从硬件选型、功能实现到复刻注意事项一步步把它讲明白。1. 硬件资源与核心芯片选型要在一块手表上实现这么多功能硬件的选型和搭配是关键。这个项目的主控是STM32具体型号需要查看源码但我们可以根据功能来推断其需求。1.1 核心功能与对应硬件这块手表的功能相当丰富每一项功能背后都对应着特定的硬件模块。我把它整理成了一个表格方便大家理解功能模块实现方式/核心芯片关键参数/说明主控与显示STM32微控制器 1.3寸OLED屏OLED通过SPI通信驱动屏幕显示菜单、波形、视频等。电压测量内部ADC 分压电路测量范围约0V~30V软件支持校准精度取决于ADC和分压电阻。简易示波器内部ADC高速采样采样率可达200kHz用于捕捉和显示低频信号波形。音乐播放YX6200音频解码芯片 TF卡支持MP3格式最大支持32GB TF卡当前版本电路有轻微底噪。视频播放W25Q128 Flash芯片 Python预处理视频需经PC端Python脚本二值化后通过串口存入Flash播放。运动感知MPU6050六轴传感器实现“翻腕唤醒”和“拿起唤醒”功能但功耗较高。手电筒高亮LED作者特别提醒“不要眼睛看”说明亮度非常可观。供电503035规格锂电池容量约600mAh配合低功耗设计实现长续航。注意音频芯片YX6200存在一点底噪作者提到后续可能会改进电路或尝试其他芯片。如果你对音质要求高复刻时可以关注这一点。1.2 功耗管理是关键对于可穿戴设备续航是命根子。这个项目在功耗管理上做得挺细致咱们来看看不同模式下的耗电情况深度待机什么都不开电流仅0.1mA左右。按600mAh电池算能待机大约8.3个月。这得益于STM32优秀的低功耗模式。翻腕唤醒待机开启MPU6050的唤醒功能后待机电流上升到3.3mA。此时续航约为7.3天。可见运动传感器的持续工作对功耗影响很大。音乐播放这是耗电大户工作电流约65mA。满电情况下可以连续听歌8.5小时。所以在实际使用中如果不需要运动唤醒最好关闭它能极大延长待机时间。2. 核心功能实现原理浅析了解了硬件咱们再聊聊这些炫酷的功能是怎么通过软件实现的。这里不涉及复杂的代码只讲清思路帮你理解整个系统是如何运作的。2.1 菜单与用户交互作者提到重构了菜单函数使其“更加丝滑流畅”并感谢了B站大佬提供的OLED UI框架。这说明项目采用了一个较好的菜单管理系统。对于嵌入式设备一个好的菜单框架至关重要它负责管理时间显示、电压表、示波器、音乐播放器等各个功能界面的切换和渲染。通过旋转编码器或按键根据硬件设计可以流畅地在不同功能间导航。2.2 示波器功能如何工作虽然作者谦虚地称其为“玩具”但实现一个200kHz采样率的简易示波器思路很清晰信号输入外部信号经过分压和保护电路后接入STM32的某个ADC引脚。高速采样STM32的ADC以最高200kHz的频率对输入电压进行采样将模拟信号转换为数字值。数据处理与显示MCU将采集到的一串电压数据经过适当缩放和计算在OLED屏幕上以时间-电压的波形图形式画出来。这需要用到一些基本的图形绘制函数。2.3 音乐与视频播放的“黑科技”这是两个非常有趣的功能实现方式很巧妙。音乐播放STM32本身处理MP3解码很吃力所以外挂了专用的YX6200音频解码芯片。STM32只需要通过串口或I2C向YX6200发送控制命令如播放、暂停、选曲并读取TF卡中的MP3文件数据流送给YX6200剩下的解码和模拟音频输出就由这颗芯片全权负责了。这是一种非常高效的分工协作。视频播放在1.3寸的小OLED上播视频听起来不可思议但实现原理其实很取巧预处理在电脑上用Python脚本将原始视频处理成黑白二值化的图像序列因为OLED是单色并压缩数据。传输与存储通过串口将处理好的图像数据发送给STM32STM32再将其存储到外部的W25Q128 Flash芯片中。这颗Flash有128Mbit16MB容量作者测算大约能存10.8分钟的25帧视频。播放播放时STM32从Flash中读取图像数据一帧一帧地刷新到OLED屏幕上同时可以同步播放TF卡里的背景音乐。这本质上是在播放一串连续的静态图片。3. 项目复刻指南与避坑要点如果你心动了想自己动手做一块那么这部分就是为你准备的“实战手册”。复刻一个开源项目除了焊接调试更要注意那些容易踩坑的细节。3.1 硬件准备与焊接获取资料首先你需要去项目的开源页面通常在立创EDA或Gitee/Github下载附件里的压缩包。里面应该包含原理图、PCB文件、BOM清单和源代码。采购元件BOM清单上的大部分元件可以在立创商城找到。对于立创商城没有的元件比如某些特殊封装的传感器或接插件作者也给出了方向——“去淘宝找”。这是DIY的常态。PCB打板将PCB文件发给制板厂如JLCPCB打样。这里有一个重要提示作者特别指出压缩包里的PCB工程文件用立创EDA打开后耳机座顶部的电容可能有错位。所以打板前务必仔细检查或者直接在立创EDA的网页版打开设计图进行核对。焊接挑战板子上有很多0402封装的电阻电容。这个尺寸非常小比米粒还小手工焊接难度很大需要很好的眼力、手感和工具如尖头烙铁、助焊膏、放大镜。提示如果你觉得自己是“手残党”作者也提供了解决方案可以去B站私信他支付一定费用35元寻求帮助或者直接购买200元的成品。这为不同能力的爱好者提供了选择。3.2 软件烧录与配置开发环境你需要搭建STM32的开发环境比如Keil MDK-ARM或者STM32CubeIDE。编译源码打开项目中的工程文件根据你实际使用的STM32型号可能与原作者略有不同可能需要微调一下芯片型号、晶振频率等基础配置然后编译代码。烧录程序使用ST-Link、J-Link或者串口下载工具将编译生成的.hex或.bin文件烧录到STM32芯片中。准备资源文件音乐将MP3格式的音乐文件存入TF卡。视频按照作者提供的Python脚本将自己想看的短视频处理成二值化数据通过串口工具发送给手表并存入Flash。3.3 外壳与装配作者放弃了最初设计的外壳因为觉得“太丑”且增加体积。但他提供了一个电池半包保护的STL文件可以用来3D打印一个电池盖让内部看起来更整洁。你可以直接打印或者根据这个文件自己修改设计再打印出来。最后将所有模块主板、电池、屏幕组装起来你的多功能智能手表就诞生了。从这样一个开源项目中我们不仅能学到STM32、各种外设驱动、低功耗设计、UI编程等硬核技术更能体会到创客“想法-设计-实现-分享”的完整乐趣。希望这篇拆解能帮你更好地理解这个精彩的项目。

相关新闻