STM32单片机项目实例:基于TouchGFX的智能手表设计(2)UI交互逻辑的设计

STM32单片机项目实例:基于TouchGFX的智能手表设计(2)UI交互逻辑的设计

目录

一、UI交互逻辑的设计

1.1 硬件平台的资源

1.2 界面切换功能

​​​​​​​1.3 表盘界面

1.4 运动界面

​​​​​​​1.6 设置界面

​​​​​​​1.7 应用界面


一、UI交互逻辑的设计

1.1 硬件平台的资源

STM32U5核心板采用STM32U575RIT6微控制器,基于32位Cortex-M33内核,运行频率可达160MHz,内部Flash容量为2MB,RAM容量786KB。核心板采用最小系统设计,板载16MB的Flash存储器,用于存储大容量数据,例如图片(分辨率240*320的16位彩色图片大小240*320*16=150KB)、升级的固件等等。供电端口采用USB TypeC接口,板载USB转UART芯片,用于ISP功能或串口调试。核心板提供复位、BOOT与用户按键,提供2.8寸电容触摸屏接口。核心板提供电源指示灯与运行指示灯(用户编程控制)。

 图 1-1 STM32U5核心板资源

  STM32开发板底板,支持5V电源适配器与TypeC供电。提供RTC时钟电源,提供三轴加速度与角速度传感器,用于姿态感知。板载ESP-12F无线模组,用于物联网云平台项目开发。提供1路五向按键,采用中断与A/D模式采样。提供1路有源蜂鸣器,1路2*17P扩展接口,用于资源扩展板的接入。核心板接口通过2.54mm间距的插针引出,方便用户外接其它设备。

图 1-2 STM32开发板底板

  电容触摸显示屏在很多智能设备上得到应用,提升了设备的交互感。在开发板套件中使用方型显示屏用来模拟圆形的一个手表项目。显示屏尺寸为2.8寸,分辨率320*240(RGB)。驱动IC采用ILI9341,自带172,800字节的 GRAM存储。电容触摸屏采用I2C接口,驱动IC采用FT6336G。

图 1-3 2.8寸显示屏

  资源扩展板提供基于I2C总线的温湿度传感器、环境光感知、心率/脉搏测量。基于模数转换接口的电压/电流采集。基于EXTI事件/中断控制类型的人体红外、光电开关、火焰感知传感器。基于SPI总线的数码管驱动电路。基于PWM控制的风扇、蜂鸣器、震动马达。基于GPIO的按键、LED指示灯。基于异步串行通信的485总线电平转换。基于控制器局域网总线的CAN电平转换等外设。资源扩展板主要用于微控制器入门外设的使用,硬件图纸原理以及项目案例的应用开发学习。

图 1-4 资源扩展板

  仿真器在单片机程序开发过程中起着重要的作用。通过仿真器,使开发者能够在计算机上运行和调试单片机程序,开发者可以逐步执行程序并观察变量的值、寄存器的状态以及程序的执行流程,从而快速发现和解决程序中的错误。推荐采用的仿真器:FS-DAP-Link或者ST-LINK V3.0,用于程序烧写和仿真调试。

图 1-5 华清远见DAP-Link/ST-Link仿真器

  基于TouchGFX的智能手表项目,硬件包含STM32U5核心板、底板、2.8寸显示屏、资源扩展板以及仿真器,进行智能手表的设计。手表主要功能包括健康监测、运动模式、环境检测、电池电量检测、RTC时钟、状态提醒、模式切换(运行/待机,LPBAM功能演示)和网络连接等功能。

​​​​​​​1.2 界面切换功能

  开发板套件包含了丰富的传感与控制资源,智能手表项目可以通过这些资源,实现许多有趣的功能。作为手表,时间的显示是必不可少的。项目设计了表盘页面,表盘界面主要负责时间的显示,除此之外,心率、步数、温度、日期等信息由于查看频率相对较高,且不需要太复杂的交互,在表盘页面上进行了这些信息的显示。

  运动功能是目前市面上的大部分智能手表的主打卖点之一,手表可以通过陀螺仪、心率传感器等等外设检测用户的运动状态与健康监测,并对其运动进行记录,符合现代人对健康的追求。因此本项目设计了运动模式页面。在该页面中,不同的运动功能以列表的形式展示。用户可以通过手指的上下滑动浏览不同的运动种类,且可以通过点击相应的运动图标切换到对应运动的记录页面。

  智能手表的应用程序很多,在项目中增加了应用页面,与实际手表不同的是,该页面下的应用程序主要用于UI控件的学习与使用。在该页面中,不同的应用程序图标以列表的形式展示。用户可以通过手指的上下滑动浏览不同的应用程序,且可以通过点击相应的应用程序图标切换到对应的应用程序页面。由于本项目为单片机裸机编程实现智能手表功能的项目,因此无法实现app的安装,在应用程序页面以操作不同的外设,实现对应用程序功能的模拟。

  在设置界面与工具页面,包含智能手表的常用小工具或快捷设置功能,在表盘页面通过物理按键的方式进行页面的切换。

  除此之外,需要设计在表盘页面、运动页面、工具界面、应用页面以及设置界面之间的切换方法。项目中使用开发板上的五向按键完成页面的切换。在表盘页面上按切换到应用界面,下按切换到设置页面;在应用程序中,通过五向按键的中间按键切换回应用界面。

图 1-6 基于TouchGFX的智能手表界面

​​​​​​​1.3 表盘界面

  智能手表的时间可以通MCU内部的RTC时钟功能产生,优点是成本低,缺点是时钟精度不高。也可以通过外置的RTC实时时钟芯片进行获取,缺点是成本会增加。在本项目中,采用STM32U575的内部RTC时钟功能与备份域寄存器,实现时间的设置与产生。

  项目中设计了两个时间显示的页面,分别是模拟时钟表盘页面与数字时钟表盘页面。这两种时钟表盘的设计是目前市面上绝大多数智能手表或传统手表采用的时间显示方法。采用左右滑动的方式进行表盘切换。

图 1-7 表盘界面

1.4 运动界面

  “智能可穿戴”这个理念现在深入人心,从智能手表、智能手环,到其他一系列智能可穿戴设备,都有着类似的功能,例如追踪身体运动,监测温度、血氧饱和度、心率等等。在这些功能的背后,是传感器技术的应用。以运动传感器和生物传感器为例,可穿戴设备的运动传感器可以随时随地测量、记录和分析人体的活动情况,用户可以知道跑步步数、游泳圈数、骑车距离、能量消耗和睡眠时间等;而生物传感器则可以通过动态的、非侵入性测量的方式对心率、血氧饱和度、心电、脑电波等状况进行连续的、实时的监测,用户可以实时观察“健康信号”,及时发现并处理身体出现的异常状况。

  STM32开发板底板包含一个六轴运动传感器MPU6050,MPU6050 是 InvenSense 公司推出的全球首款整合性 6 轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了安装空间。MPU6050 内部整合了 3 轴陀螺仪和 3 轴加速度传感器,并且含有一个第二 IIC 接口,可用于连接外部磁力传感器,并利用自带的数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主 IIC 接口,向应用端输出完整的 9 轴融合演算数据。有了 DMP,我们可以使用 InvenSense 公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度。

  运动界面采用物理按键触发进入。在运动界面采用上下滑屏的方式,实现户外步行、户外跑步、室内游泳、自由训练与户外骑行模式间的切换,上下滑屏的逻辑部分采用C++代码编写,五种运动模式,主要实现户外步行模式的应用。

图 1-8 运动界面

    1. 工具界面

  工具界面主要包含倒计时、呼吸训练、压力训练以及快捷支付等。该界面不涉及太复杂的UI交互逻辑,主要用到TouchGFX的按钮控件与界面的交互设置。在快捷支付方面,实现了二维码页面的弹出与返回。

图 1-9 工具界面

​​​​​​​1.6 设置界面

  设置界面用于系统的便捷设置,例如静音、排水、低功耗、信息等功能,设置界面通过物理按键进行切换,设置界面根据开发板的资源,实现静音、背光亮度、排水以及低功耗模式的应用。快捷设置界面实现排水功能,点击排水后,振动电机启动4秒后停止。

 

图 1-10 设置界面 

​​​​​​​1.7 应用界面

  应用界面主要包含健康监测、姿态信息、环境信息、芯片信息、设备控制、电源电压以及无线连接七个应用,应用界面中采用上下滑动的交互方式,通过点击应用的图标进入应用程序。在应用程序中,通过物理按键切换回应用界面。

健康监测

  资源扩展板上搭载了心率血氧传感器MAX30102。可以实现心率、血氧数据的读取。在表盘页面设计了心率信息的实时显示。如下图所示,心率血氧检测页面可以通过应用页面点击相应图标进入。

图 1-11 健康监测页面

姿态信息

  开发板上搭载了MPU6050陀螺仪,通过陀螺仪可以实现欧拉角的读取以及步数信息的读取。在表盘页面设计了步数信息的实时显示。如下图所示,陀螺仪页面可以通过应用页面点击陀螺仪图标切换进入。在该页面可以完成欧拉角的实时显示(包括横滚、俯仰、偏航角)。

图 1-12 姿态感知页面

环境信息

   开发板上搭载了光照传感器AP3216C、温湿度传感器SI7006/SHT20。可以实现温湿度以及光照的信息读取。在表盘页面设计了温度信息的实时显示。如下图所示,温湿度光照可以通过应用页面点击相应图标进入。在该页面中可以完成温度、湿度、光照度信息的实时更新和显示。

图 1-13 环境信息页面

芯片信息

  通过ADC内部/外部通道,可以实时监测芯片温度、VREF、RTC等数据。如下图所示,芯片电压测量页面可以通过应用页面点击相应图标进入。可以在该页面实时显示芯片温度、VREF、RTC电池等数据。

图 1-14 芯片信息页面

设备控制

  开发板与资源扩展板搭载了振动马达\蜂鸣器\风扇,可以实现对震动马达、蜂鸣器、风扇控制的功能。如下图所示,振动马达及蜂鸣器页面可以通过应用页面点击相应图标进入。可以在该页面控制振动马达及蜂鸣器,点击相应按钮即可打开或关闭相应的外设,按钮按下后会有状态的变化。

图 1-15 设备控制页面

电源电压

  可以通过ADC测量资源扩展板的电位器电压,资源扩展板的电流来模拟电池电量的采集与显示,该页面的电池图标与显示电位器的实时电压,采集的电流进行动态显示与绘制波形。

图 1-16 电源电压页面

无线连接

  开发板上搭载了ESP8266无线WIFI模块,可以实现WIFI连接的功能。通过手机生成热点,热点名称HQYJ-YF,密码STM32G070,点击下面的无线连接后,文本框显示连接信息,连接成功,获取连接的RSSI值,并进行显示。

图 1-17 无线连接页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/236321.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Axure的安装与基本使用

目录 一.Axure是什么 二.Axure安装 2.1 一键式安装 2.2 汉化 2.3 授权登录 三.Axure的界面介绍及基本使用 3.1 菜单栏的使用 3.2 工具栏的使用 3.3 页面概要的使用及组件的使用 3.4 组件的样式设计 一.Axure是什么 Axure是一个流行的交互式原型设计工具,一般是…

函数的栈帧

我们每次在调用函数的时候,都说会进行传参。每次创建函数,或者进行递归的时候,也会说会进行压栈。 那么,今天我们就来具体看看函数到底是如何进行压栈,传参的操作。 什么是栈? 首先我们要知道,…

基于SSM+MySQL学生宿舍管理系统的设计与实现(源码+数据库+文档)

摘 要 近年来,随着计算机技术的不断发展和运用,许多实际问题都得到了较好地解决。随着现代社会对企业经营的需求日益增长,企业的无纸办公也逐渐得到了推广。本学生宿舍管理系统的设计开发,目标就是解决宿舍管理复杂的人为管理&a…

聚观早报 |极氪金砖电池发布;微信湾事通小程序上线

【聚观365】12月11日消息 极氪金砖电池发布 微信湾事通小程序上线 华为自拍专利曝光 鸿蒙智行App上架华为应用市场 苹果“播客”应用将登陆特斯拉汽车 极氪金砖电池发布 极氪汽车官方此前宣布极氪能源日 2023 暨电池新品发布会将于 12 月 14 日举行,slogan 为…

钓鱼网站域名识别工具dnstwist算法研究

先上一个AI的回答: dnstwist是一种钓鱼网站域名识别工具,可帮助用户识别和检测可能被恶意使用的域名。它通过生成类似的域名变体来模拟攻击者可能使用的钓鱼域名,并提供了一系列有用的功能和信息。 dnstwist能够生成一组类似的域名变体&…

管理类联考——数学——真题篇——按知识分类——几何

文章目录 2023真题(2023-07)-几何-解析几何-最值真题(2023-10)-几何-立体几何-正方体:体积: V a 3 Va^3 Va3;表面积: S 表 6 a 2 S_表6a^2 S表​6a2;体对角线外接球的半…

电源模块测试系统测试LED电源项目的优势

LED电源测试是电源在设计、生产过程中的关键环节,也是确保LED照明产品可靠性和稳定性的重要步骤。LED电源测试一般包括电压、电流、效率、稳定性等。电源模块测试系统测试LED电源,实现自动化测试,保证测试结果的可靠性。 LED电源测试项目及方…

低代码云MES系统才是工业互联网的未来

众所周知,传统制造业目前已更多向智能化、绿色化方向发展。减少资源浪费、跟踪产品信息、提升生产品质、减少库存数量等有益企业的决策,成为管理层所考虑的企业基本问题。因此,制造业现场需解决此类难题才能带动企业数字化转型,以…

NXP应用随记(一):S32K3xx手册阅读随记

目录 1、概述 1.1、S32k组合和应用程序 1.2、技术概述 2、Safety 3、Low Power 3.1、RUN mode 3.2、Standby mode 4、外设概述与互联 ADC WDG STM PIT 1、概述 1.1、S32k组合和应用程序 核心和平台:跨S32K3系列的ArmCortex-M7核心,用于软件重用 安全性…

Python 数据库操作SQL基础

文章目录 SQL 基础数据库和表的创建数据的插入、查询、更新和删除索引、连接和子查询 Python 中的数据库操作关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Pytho…

tamcat乱码

学习springmvc时tamcat乱码 ①、启动时tomcat控制台乱码 解决方法是:1、先把idea设置里的默认字节码改成utf-8 ​ 2、把idea显示编码改成utf-8,在末尾加上( -Dfile.encodingUTF-8) ​ 3、最后重启idea 加上这个 -Dfile.encodingU…

promethesu告警规则配置,alertmanager通过webhook通知

文章目录 前言一、promethesu告警二、告警配置编写rule文件prometheus配置prometheus产生告警 三、告警通知prometheus 配置 alertmanageralertmanager 配置 webhook通知编写接口接收 webhook 总结 前言 如果没有学习过prometheus的基础和监控的同学,可以先过一遍这…

利用工具JStack排查:死锁问题和CPU100%问题

无论是再面试过程中还是再实际项目开发当中我们都有可能遇到这两个问题。我之前有同学面试这两个问题都有问道过。哈哈哈。所以我绝对把他们了解下并利用博客记录。 1、工具JStack是什么? JStack可以显示Java应用程序中每个线程的堆栈跟踪,帮助开发人员…

Linux系统中的信号

文章目录 01. 学习目标02. 信号的概述信号的概念信号的特点 03. 信号的编号(了解)04. 信号四要素05. 信号的状态1) 产生2) 未决状态:没有被处理3) 递达状态:信号被处理了 06. 阻塞信号集和未决信号集6.1 阻塞信号集(信号屏蔽字)6.2 未决信号集 07. 信号产…

Win10操作系统安装Python

1 Python解释器下载 1.1 安装环境 Windows 10 专业工作站版22H2 python-3.9.6-amd64.exe 1.2 下载地址 Python官网:Welcome to Python.org Python镜像:CNPM Binaries Mirror 2 Python解释器安装 2.1 Install Python 3.9.6 (64-bit)界面 双击运行下…

【FAQ】推送前台应用的通知处理功能没生效,如何进行排查?

一、前台应用的通知处理简介 在调用推送接口时可以设置“foreground_show”字段控制前台应用的通知栏消息是否通过NC展示。“foreground_show”默认值为“true”,应用在前台时由NC展示通知栏消息;当设置为“false”时,应用在前台时&#xff…

骁龙8 Gen 3 vs A17 Pro

骁龙8 Gen 3 vs A17 Pro——谁会更胜一筹? Geekbench、AnTuTu 和 3DMark 等基准测试在智能手机领域发挥着至关重要的作用。它们为制造商和手机爱好者提供了设备性能的客观衡量标准。这些测试有助于评估难以测量的无形方面。然而,值得注意的是&#xff0c…

2024年江苏省职业院校技能大赛信息安全管理与评估 理论题(样卷)

2024年江苏省职业院校技能大赛信息安全管理与评估 理论题(样卷) 理论技能与职业素养(100分) 2024年江苏省职业院校技能大赛(高职学生组) 模块三“信息安全管理与评估”理论技能 【注意事项】 Geek极安云…

分布式锁实现方案 - Lock4j 使用

一、Lock4j 分布式锁工具 你是不是在使用分布式锁的时候,还在自己用 AOP 封装框架?那么 Lock4j 你可以考虑一下。 Lock4j 是一个分布式锁组件,其提供了多种不同的支持以满足不同性能和环境的需求。 立志打造一个简单但富有内涵的分布式锁组…

java web系统的常见安全问题

一、背景 java开发的系统在发布到互联网后都需要进行安全扫描,本文主要总结开发web系统需要注意的与系统安全相关的问题。因为在做需求开发时,很少产品会将系统安全的因素考虑在内,总觉得实现个需求很简单,就是一些页面&#xff0…