当前位置: 首页 > article >正文

OV-WATCH手表

硬件部分:

一、硬件选型

  1. MCU选型

    • 选择STM32F4411C1U6,因为它具备较大的ROM和RAM,能够运行FreeRTOS和VIGL。

  2. 显示屏

    • 采用触摸显示屏,具体型号可在淘宝搜索。

  3. 电源部分

    • 充电芯片:采用TP4056,用于3.7V锂电池的充电。

    • 升降压芯片:采用TPS63020,用于解决电池在3V-4V波动时的放电问题。

  4. 通信部分

    • NFC:采用UID卡,通过模拟开关连接。

    • 蓝牙:采用HC-04。

  5. 传感器

    • 包括心率传感器、海拔指南针等,具体型号未提及,但需按照说明手册连接。

  6. 看门狗

    • 由于STM32内部看门狗无法关闭,进入休眠模式会导致重启,因此采用外部看门狗TPS3823。

二、原理图设计

  1. MCU部分

    • 不使用外部高速时钟源,直接使用内部HSI。

    • RTC时钟源需使用外部32.768kHz晶振。

  2. 电源部分

    • 放电电路:根据TPS63020手册设计,通过电阻和二极管连接到MCU的IO口,实现按键和IO口控制放电。

    • 充电电路:按照TP4056手册设计。

    • 电池电量检测:通过两个大电阻分压后连接到MCU的ADC端口。

  3. 通信部分

    • NFC通过模拟开关连接到UID芯片。

    • 蓝牙模块的VCC通过模拟开关连接到3.3V。

  4. 传感器部分

    • 所有传感器的I2C接口统一连接到总线上。

三、PCB设计

  1. 结构设计

    • 手表分为两块板:主板和背板,通过FPC连接器连接。

    • 背板放置心率传感器,贴近手腕皮肤。

    • 磁吸充电接口设计为两层焊盘,尺寸根据磁吸充电线定制。

  2. 层级关系

    • 第一层:屏幕。

    • 第二层:主板。

    • 第三层:电池。

    • 第四层:背板

UI设计:

一、UI设计部分概述

本节内容分为三个部分:

  1. Square Nice Studio的使用:用于设计UI界面。

  2. 生成代码的说明:将设计好的UI界面转换为代码。

  3. Code Blocks的仿真:在开发环境中运行和测试代码。


二、Square Nice Studio的使用

1. 新建文件与基础设置
  • 打开Square Nice Studio,新建文件。

  • 设置屏幕尺寸为240×280像素。

  • 修改工程名称,选择工程存放路径。

  • 选择版本和主题,点击生成。

2. 界面设计
  • 初始界面:生成后界面为黑色背景,需要手动调整控件布局。

  • 控件操作:从左下角的控件库中选择控件(如Label控件)并拖动到设计区域。

  • 命名规范:为控件命名时需符合规范,便于后续代码生成和维护。

3. 自定义字体的生成与使用
  • 字体来源:从阿里巴巴矢量图库下载字体文件(.ttf格式)。

  • 字体导入

    1. 将下载的.ttf文件复制到工程文件夹的assert文件夹中。

    2. 在Square Nice Studio中点击Font Manager,选择.ttf文件。

    3. 设置字体参数(如BPP、字体大小)。

    4. 为字体命名(如“阿里巴巴”),并点击生成。

  • 字体应用

    • 在主界面中拖动Label控件,输入文字(如“你好”)。

    • 选择自定义字体(如“阿里巴巴”)并调整字体大小。

    • 生成不同字号的字体文件时,建议在名称中注明字号(如“阿里巴巴32”)。

4. 图标字体的生成与使用
  • 图标来源:从阿里巴巴矢量图库中搜索并选择图标(如心跳图标)。

  • 图标导入

    1. 将图标加入购物车并下载项目文件,提取其中的.ttf文件。

    2. Font Manager中选择图标字体文件(.ttf)。

    3. 命名图标字体(如“icon_font16”)。

    4. 使用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. 代码运行与仿真
  • 编译工程,运行代码。

  • 如果需要添加事件(如按钮点击事件):

    1. 在Square Nice Studio中添加事件并生成代码。

    2. 替换工程文件夹中的旧代码。

    3. 重新编译并运行。


五、其他注意事项

  1. 设计规范

    • 控件命名需规范,便于代码维护。

    • 字体和图标文件需妥善管理,避免混淆。

  2. 功能限制

    • Square Nice Studio无法实现所有功能,部分复杂功能需手动编写代码。

  3. 学习资源

    • 可以通过在线教程和社区(如QQ群)获取帮助。

    • 多尝试和熟悉控件操作,逐步掌握UI设计技巧。


http://www.kler.cn/a/560638.html

相关文章:

  • 当我问了DeepSeek关于网络安全行业影响的问题
  • 阶跃星辰 Step-Vedio-T2V Docker 推理
  • 【技术笔记】Cadence 创建元器件 Pin 引脚的创建与设置
  • 深入理解 Redis 设计与集群管理
  • 抖音营销创新策略与案例分析:以奈雪的茶为例及开源AI智能名片2+1链动模式S2B2C商城小程序的启示
  • ubuntu22.04 升级 gcc 12.3
  • SBOM情报预警 | 恶意NPM组件窃取Solana智能合约私钥
  • 算法刷题-字符串-151.反转单词
  • (网络安全)如何建立安全运营中心
  • Css3重点知识讲解
  • Flutter使用permission_handler请求通知权限不会弹出权限弹窗
  • SSE/Fetch API+Stream/WebSocket实时流式接收Node后端传来的处理过后的Coze API数据
  • (七)趣学设计模式 之 适配器模式!
  • DeepSeek 助力 Vue 开发:打造丝滑的滚动动画(Scroll Animations)
  • Python游戏编程之赛车游戏6-4
  • 关于<<DeepSeek-R1:通过强化学习激励大语言模型的推理能力>>的解读
  • Teigha(ODA<Open Design Alliance>_开放设计联盟)——cad c# 二次开发
  • 原生稀疏注意力NSA 替换transformer 注意力进行文本生成训练
  • 【开源免费】基于SpringBoot+Vue.JS物流管理系统(JAVA毕业设计)
  • 普通人使用生成式语言模型的几个阶段