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?無線連接頁面

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210416.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210416.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210416.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

不一樣的年會彩瞳推薦,綺芙莉多款彩瞳彰顯個性

臨近年底,各種公司年會、跨年晚會活動也逐漸排上日程,出席這種正式場合,每個人都有自己的“殺手锏”,從發型妝容到穿搭都是變美小細節,作為心靈之窗的雙眸,更需要一副彩瞳來提升我們的眼妝質感,…

微前端 ---- wujie-vue3 原理

目錄 前言 設置子應用? 預加載? 啟動子應用? 封裝 1.創建文件 2.安裝依賴 3.編寫組件 4.配置打包規則 5.執行打包命令 swc技術 SWC Babel Babel VS SWC 更改使用 swc 解析 使用swc 完成 esm 模式 (export--import) 發布到npm 更改p…

【SpringBoot】解析Springboot事件機制,事件發布和監聽

解析Springboot事件機制,事件發布和監聽 一、Spring的事件是什么二、使用步驟2.1 依賴處理2.2 定義事件實體類2.3 定義事件監聽類2.4 事件發布 三、異步調用3.1 啟用異步調用3.2 監聽器方法上添加 Async 注解 一、Spring的事件是什么 Spring的事件監聽(…

持續集成交付CICD:使用Jenkins插件上傳Nexus制品

目錄 一、實驗 1.使用Jenkins插件上傳Nexus制品 一、實驗 1.使用Jenkins插件上傳Nexus制品 (1)Jenkins安裝插件Nexus Artifact Uploader (2)添加憑據 (3)使用片段生成器生成DSL (4&#xf…

基于Java物業管理系統

基于Java物業管理系統 功能需求 1、房產信息管理:系統需要提供房產信息管理功能,包括房產的基本信息、租賃狀態、業主信息等。 2、報修管理:系統需要提供報修管理功能,業主可以通過系統提交報修申請,物業管理人員可…

docke網絡之bridge、host、none

一、bridge網絡 1.創建一個測試容器 [rootlocalhost ~]# docker run -d -it --name busybox_1 busybox /bin/sh -c "while true;do sleep 3600;done" 03b308c847edd23f21ba69afb825d92f7aaeb05b1ff4431dd47ccee439a0361a 2.查看當前機器docker有哪些網絡 [rootlocal…

C++ 訪問限定符

目錄 訪問修飾符概述 protected在類的內部和派生類中訪問調用 private在類的內部訪問和調用 訪問修飾符概述 在C中,有三個主要的訪問修飾符:public、private和protected。這些修飾符用于控制類的成員(變量和函數)的訪問權限。…

2023年9月8日 Go生態洞察:gopls的擴展與Go生態系統的成長

🌷🍁 博主貓頭虎(🐅🐾)帶您 Go to New World?🍁 🦄 博客首頁——🐅🐾貓頭虎的博客🎐 🐳 《面試題大全專欄》 🦕 文章圖文…

AI材料專題報告:AI革命催生新需求國產替代推動新方向

今天分享的AI系列深度研究報告:《AI材料專題報告:AI革命催生新需求國產替代推動新方向》。 (報告出品方:光大證券) 報告共計:25頁 1、算力需求增長催生 800G 光模塊需求 算力是數字經濟時代新生產力&…

2023年10月9日 Go生態洞察:深入了解類型推斷及其更多細節

🌷🍁 博主貓頭虎(🐅🐾)帶您 Go to New World?🍁 🦄 博客首頁——🐅🐾貓頭虎的博客🎐 🐳 《面試題大全專欄》 🦕 文章圖文…

【C++ Primer Plus學習記錄】if語句

目錄 一、if語句 二、if else語句 三、格式化if else語句 四、if else if else結構 一、if語句 if語句讓程序能夠決定是否應執行特定的語句。 if有兩種格式:if和if else。 if語句的語法與while相似: if(test-condition)statement; 如果test-con…

Android 從assets讀取文件裝載成Bitmap,Kotlin

Android 從assets讀取文件裝載成Bitmap,Kotlin /*** fileName assets里面圖片文件名*/fun readBitmapFromAssets(ctx: Context, fileName: String): Bitmap? {val assetManager: AssetManager ctx.assetsvar bitmap: Bitmap? nulltry {val inputStream assetMa…

Java預科知識

以下內容是根據狂神的Java說、chatgpt和csdn相關博客,結合自己的理解完成的。 Java了解 基于Java 開發了巨多的平臺,系統,工具 構建工具: Ant, Maven, Jekins應用服務器:Tomcat, Jetty, Jboss, Websphere, weblogic…

程序員入門:打造抖音同城外賣小程序的技術解析

在當今數字化時代,外賣平臺已經成為人們生活中不可或缺的一部分,而抖音作為一款社交媒體平臺,也開始涉足同城外賣服務。本文將為初學者提供一份關于如何打造抖音同城外賣平臺的技術解析,探討其中的關鍵技術和步驟。 一、項目規劃…

【C++】輸入輸出流 ⑤ ( cin 輸入流對象 | cin.ignore() 函數 | cin.peek() 函數 | cin.putback() 函數 )

文章目錄 一、cin.ignore() 函數1、cin.ignore() 函數簡介2、cin.ignore() 函數原型3、代碼示例 - cin.ignore() 函數 二、cin.peek() 函數1、cin.peek() 函數簡介2、代碼示例 - cin.peek() 三、cin.putback() 函數1、cin.putback() 函數簡介2、代碼示例 - cin.putback() 一、c…

if語句和switch語句來確定金額之下的優惠折扣

一、優惠規則 輸入相應的金額,可以獲得規則之下,金額相應的享受的折扣,需要先定義金額,然后就是使用if語句進行判斷,使用switch語句選擇判斷規則之下對應的優惠折扣。 二、相關代碼 public class DiscountPrice {p…

<DB2>《DB2使用期間一些注意事項》

1 建存儲過程時 Create 后不能使用 TAB 鍵 create procedure create 后只能用空格,而不可用 tab 健,否則編譯會通不過。 2 查看語句執行計劃 dynexpln -d testdb -f test.sql -o test.out -g -z ; sql 語句放在 test.sql 中,結果輸出到 te…

git 拉取項目指定目錄或者指定文件

因為要做數據庫自動更新,需要拉取Gitlab項目中/bm-server-biz/docs目錄下的表更新sql文件,其他的都不需要,這時候可以利用git的“sparse checkout”方法(設置稀疏檢出)來實現。 1、在項目目錄下git 初始化 [rootxcc-…

開源軟件:JumpServer、DataEase、MeterSphere

FIT2CLOUD 認識開源軟件之前,先了解一下開發團隊FIT2CLOUD。FIT2CLOUD(飛致云)是一家中國領先的開源軟件公司,成立于2014年。公司專注于提供工業操作系統技術平臺與解決方案,是中國工業互聯網行業的領軍企業&#xff…

矩陣處理—Zigzag矩陣打印

與其明天開始,不如現在行動! 文章目錄 Zigzag矩陣打印1.1 題目描述1.2 解決思路1.3 代碼實現 💎總結 Zigzag矩陣打印 1.1 題目描述 有一個n行m列的矩陣,要求按照Z字形打印出數據,如圖: 1.2 解決思路 用一…