OV-Watch 开源智能手表

type
status
slug
summary
tags
category
icon
password
Date
概述
功能强大的智能手表
如果你觉得这个手表的硬件难焊接复刻,又想进行代码的学习,可以试一下新的STM32F411开发板:
notion image
notion image
🔗视频链接:
🚀增加其说明
V2.4.0相对V2.3.2修改的功能包括:
  1. 更改了Backboard硬件,将蓝牙的使能电路修改,以前不能完全关闭,现在可以不用蓝牙时直接关闭蓝牙,就可以不用KT6328A了,直接使用KT6368A,有SPP功能,可以无线升级。
  1. 增加了BootLoader程序,即分离了Boot和App。
  1. 增加IAP OTA功能,即可以通过蓝牙升级程序。
  1. 修改一个bug。
✒️如何烧录:
由于具体的步骤太多这里不放了, 详细见Firmware中的README文件: BootLoader和APP烧录说明
如果你觉得带BootLoader的V2.4.0版本太麻烦了,可以自行去下载ver2.3.2版本,用以前的代码。
📑功能表如下图所示:
notion image
🌟实物图
notion image
notion image
notion image
notion image
notion image
💻软件部分设计细节:
1.设计
手表的模式分为3个。第一个是正常的运行模式,手表正常运行;第二个是睡眠模式,MCU进入STOP模式,MPU6050仍在记步数;第三个是关机模式,TPS63020直接关闭使能,此时无3V3供电,只有Vbat有供电。
在最开始的时候,手表到唤醒设备的MPU6050的运动功能,打开中断,唤醒,尝试过,有个问题就是需要抖动幅度很大才能触发中断。所以最后还是用的RTC 定时中断,然后定时检测当前手势,如果有抬头动作则唤醒。
MPU6050使用DMP库,初始化后功耗空间,需要进行一些扩展,才能让功耗下来,具体看工程代码。
蓝牙使用了KT6328A后,不建议关闭蓝牙使能,他的待机功耗很低。
最后接3V3测试,运行模式70-80mA,待机模式1mA左右,关机模式基本不耗电RTC在工作。当然后面没有测试电源接到Vbat端经过DCDC供电的情况,这个功耗就完全看DCDC的效率。
2.心率血氧
血氧部分暂时还没有写。
心率计算本来使用的库,但是计算太慢了,后面改为自己写的一个简易的峰值检测算法。EM7028的PPG信号如下图所示
notion image
3..
目前使用外部的EEPROM进行存储,可以进行存储设置等,详细可以看Datasave.c文件。
4.页面切换逻辑
: 为了实现页面切换,可以返回到主菜单,这里使用一个应用程序来存储页面,例如,使用user_Stack_Pop(&ScrRenewStack);弹出一个应用程序,然后进入一个新应用程序user_Stack_Push(&ScrRenewStack,(long long int)&ui_HomePage);的目录。注意:在push操作使用类似ui_HomePage程序时,它会动态变化,这很大。
5.计算器逻辑
化妆品的逻辑就是很经典的化妆品问题,化妆品的逻辑就是开两个,一个存放数字,然后进行计算操作,以1+2*6/3举例说明,具体的操作图所示。但是会有一个小数点,这个动图展示的只是整体计算的逻辑,带小数点的详细见代码。
具体过程是:
  1. 遍历表达式,当遇到操作数,将其压入操作数栈。
  1. 遇到汇率时,如果汇率为空,则将其纳入汇率体系。
  1. 谚语“A”表示“真”,谚语“B”表示“假”,谚语“C”表示“真”,谚语“D ...
  1. 继续将当前真理与真理进行比较。
  1. 继续按照步骤进行,然后将当前目录下的元素导入到数据库中并运行结果即可。
notion image
6.LVGL在windows在vscode的仿真配置参考
已经将这个代码放在lv_sim_vscode_win这个文件夹中,可以直接使用 vscode。
notion image
大语言模型电子书LanguageBind:通过基于语言的语义对齐将视频语言预训练扩展到N模态