OV-WATCH手表
硬件部分:
一、硬件选型
-
MCU选型
-
选择STM32F4411C1U6,因为它具备较大的ROM和RAM,能够运行FreeRTOS和VIGL。
-
-
显示屏
-
采用触摸显示屏,具体型号可在淘宝搜索。
-
-
电源部分
-
充电芯片:采用TP4056,用于3.7V锂电池的充电。
-
升降压芯片:采用TPS63020,用于解决电池在3V-4V波动时的放电问题。
-
-
通信部分
-
NFC:采用UID卡,通过模拟开关连接。
-
蓝牙:采用HC-04。
-
-
传感器
-
包括心率传感器、海拔指南针等,具体型号未提及,但需按照说明手册连接。
-
-
看门狗
-
由于STM32内部看门狗无法关闭,进入休眠模式会导致重启,因此采用外部看门狗TPS3823。
-
二、原理图设计
-
MCU部分
-
不使用外部高速时钟源,直接使用内部HSI。
-
RTC时钟源需使用外部32.768kHz晶振。
-
-
电源部分
-
放电电路:根据TPS63020手册设计,通过电阻和二极管连接到MCU的IO口,实现按键和IO口控制放电。
-
充电电路:按照TP4056手册设计。
-
电池电量检测:通过两个大电阻分压后连接到MCU的ADC端口。
-
-
通信部分
-
NFC通过模拟开关连接到UID芯片。
-
蓝牙模块的VCC通过模拟开关连接到3.3V。
-
-
传感器部分
-
所有传感器的I2C接口统一连接到总线上。
-
三、PCB设计
-
结构设计
-
手表分为两块板:主板和背板,通过FPC连接器连接。
-
背板放置心率传感器,贴近手腕皮肤。
-
磁吸充电接口设计为两层焊盘,尺寸根据磁吸充电线定制。
-
-
层级关系
-
第一层:屏幕。
-
第二层:主板。
-
第三层:电池。
-
第四层:背板
-
UI设计:
一、UI设计部分概述
本节内容分为三个部分:
-
Square Nice Studio的使用:用于设计UI界面。
-
生成代码的说明:将设计好的UI界面转换为代码。
-
Code Blocks的仿真:在开发环境中运行和测试代码。
二、Square Nice Studio的使用
1. 新建文件与基础设置
-
打开Square Nice Studio,新建文件。
-
设置屏幕尺寸为240×280像素。
-
修改工程名称,选择工程存放路径。
-
选择版本和主题,点击生成。
2. 界面设计
-
初始界面:生成后界面为黑色背景,需要手动调整控件布局。
-
控件操作:从左下角的控件库中选择控件(如Label控件)并拖动到设计区域。
-
命名规范:为控件命名时需符合规范,便于后续代码生成和维护。
3. 自定义字体的生成与使用
-
字体来源:从阿里巴巴矢量图库下载字体文件(.ttf格式)。
-
字体导入:
-
将下载的.ttf文件复制到工程文件夹的
assert
文件夹中。 -
在Square Nice Studio中点击
Font Manager
,选择.ttf文件。 -
设置字体参数(如BPP、字体大小)。
-
为字体命名(如“阿里巴巴”),并点击生成。
-
-
字体应用:
-
在主界面中拖动Label控件,输入文字(如“你好”)。
-
选择自定义字体(如“阿里巴巴”)并调整字体大小。
-
生成不同字号的字体文件时,建议在名称中注明字号(如“阿里巴巴32”)。
-
4. 图标字体的生成与使用
-
图标来源:从阿里巴巴矢量图库中搜索并选择图标(如心跳图标)。
-
图标导入:
-
将图标加入购物车并下载项目文件,提取其中的.ttf文件。
-
在
Font Manager
中选择图标字体文件(.ttf)。 -
命名图标字体(如“icon_font16”)。
-
使用
Range
选项,复制并粘贴图标编码。
-
-
图标应用:
-
在网页中复制图标编码,通过在线工具(如UIQ和UTF编码转换)生成字符。
-
将字符复制到Label控件的文本框中,完成图标显示。
-
可以调整图标颜色等属性。
-
三、生成代码
1. 导出代码
-
完成UI设计后,点击
Export
按钮。 -
选择
CREUIFI
,指定代码存放路径(如创建一个UIQ
文件夹)。 -
生成的文件包括:
-
字体文件(.ttf)。
-
UI界面代码文件(.c文件)。
-
2. 代码结构
-
字体文件:用于存储自定义字体和图标字体。
-
UI代码文件:包含界面布局和控件的代码。
四、Code Blocks的仿真
1. 开发环境准备
-
假设已经安装了Code Blocks开发环境。
-
使用韦东山的LVGL工程作为基础框架。
-
可以从相关教程网站下载工程资源。
2. 代码移植与配置
-
将生成的UI代码文件复制到工程文件夹中。
-
在Code Blocks中创建一个文件夹(如
user_test
),并将代码文件放入其中。 -
将新文件夹添加到工程中。
-
修改代码中的屏幕宽高设置,以匹配手表屏幕尺寸。
-
修改颜色深度设置,以适应硬件需求。
3. 代码运行与仿真
-
编译工程,运行代码。
-
如果需要添加事件(如按钮点击事件):
-
在Square Nice Studio中添加事件并生成代码。
-
替换工程文件夹中的旧代码。
-
重新编译并运行。
-
五、其他注意事项
-
设计规范:
-
控件命名需规范,便于代码维护。
-
字体和图标文件需妥善管理,避免混淆。
-
-
功能限制:
-
Square Nice Studio无法实现所有功能,部分复杂功能需手动编写代码。
-
-
学习资源:
-
可以通过在线教程和社区(如QQ群)获取帮助。
-
多尝试和熟悉控件操作,逐步掌握UI设计技巧。
-