查看: 1878|回復: 0
打印 上一主題 下一主題

【瘋殼·智能穿戴開(kāi)發(fā)教程11】開(kāi)源藍牙心率防水運動(dòng)手環(huán)-整機功能代碼講解

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2022-9-1 15:42:51 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
開(kāi)源藍牙心率防水運動(dòng)手環(huán)
——瘋殼·智能穿戴開(kāi)發(fā)系列
整機功能代碼講解




整機代碼

1 軟件設計
  本節,我們將融合前面的藍牙收發(fā)、三軸記步、電量檢測、外部 Flash 讀寫(xiě)、 心率檢測和 Led 屏幕顯示,完成手環(huán)的制作。
  以上各個(gè)部分可以參考前面的章節。
  首先,看一下我們手環(huán)的整個(gè)軟件主函數流程。


圖1
  代碼運行后,首先進(jìn)入初始化,初始化系統時(shí)鐘、外設和藍牙。除此之外, 還開(kāi)啟了定時(shí)中斷和 GPIO 中斷。
  我們的定時(shí)中斷每 10ms 觸發(fā)一次,用于 ADC 定時(shí)采集心率數據,以及定時(shí)和時(shí)間更新。另外,由于一些原因,主函數中的步數讀取、電量檢測、心率檢測、屏幕顯示并不是每一次循環(huán)都執行一次。這里的定時(shí)中斷也作為一個(gè)計時(shí)功能, 步數 20 秒更新一次,心率模塊 1 分鐘打開(kāi)一次,亮屏無(wú)操作,5 秒熄滅屏幕。
  這里的 GPIO 中斷主要是用來(lái)切換屏幕顯示頁(yè)面。


代碼1
  從 GPIO 的中斷回調函數中可以看出,每次中斷只是把變量 Touch_release 置1,并沒(méi)有直接對顯示做任何處理,而在定時(shí)中斷的回調函數中,判斷變量Touch_release 的值,從而確定我們是長(cháng)時(shí)間按鍵,還是短時(shí)間按鍵,來(lái)完成相應的處理。
  在定時(shí)器中斷函數中,檢測到短時(shí)間觸摸,就打開(kāi)顯示標志位,同時(shí)設置顯示的頁(yè)面。
  關(guān)于藍牙收發(fā)部分,我們在藍牙收發(fā)章節的基礎上進(jìn)行了修改,通過(guò)手機軟件 Wolverine BLE 發(fā)送 step 獲取步數、發(fā)送 cal 獲取卡路里、發(fā)送 heart 獲取心率值、發(fā)送 rtc 加時(shí)間完成手環(huán)的時(shí)間設置。下面是函數


代碼2.1


代碼2.2

  每當手環(huán)收到來(lái)自手機軟件 Wolverine BLE 的數據時(shí),首先從 Flash 中讀取步數和心率數據。然后對比接收到字符串。最后發(fā)送或設置相應的數據。這里有一點(diǎn)要注意,我們從 Flash 中讀取到的是數據,而通過(guò)藍牙發(fā)送的是字符串,就需要將數字轉換成字符就如同代碼中將一個(gè)位的數字加上 0x30,換算成該數字對應的 ASCII 碼值。
  對于發(fā)送給手機的卡路里數據,其實(shí)是通過(guò)三軸步數計算過(guò)來(lái)的。消耗的卡
路里跟步數以及個(gè)人的體重等因素呈比例關(guān)系,大家可以根據自己的情況修改卡路里與步數之間的系數。


代碼3
關(guān)于其他部分代碼,請參考我們的我整機代碼例程。


2  實(shí)驗現象

  首先打開(kāi) SmartSnippets。


圖2
  設置好 SmartSnippets 之后,點(diǎn)擊上圖中的 Open。
  (1)點(diǎn)擊 Connect,連接我們的單片機。


圖3

  (2)點(diǎn)擊 Erase,擦除 Flash。


圖4

  (3)點(diǎn)擊 Browse,找到我們工程的.hex 文件。


圖5

  (4)點(diǎn)擊 Burn,完成代碼下載。


圖 6
  代碼下載完成之后,運行代碼,能看到屏幕顯示時(shí)間。


圖 7
  在時(shí)間顯示界面下,觸摸一下按鍵,會(huì )顯示心率。


圖8

  在心率顯示界面下,觸摸一下按鍵,會(huì )顯示步數界面。


圖 9

   再觸摸一下按鍵,就會(huì )進(jìn)入卡路里顯示界面。


圖10

  打開(kāi)手機軟件 Wolverine BLE。


  (1)點(diǎn)擊 Connect。


圖11

  (2)選擇我們的藍牙設備 DIALOG-PRFL。


圖12

  我們發(fā)送 step,會(huì )獲取步數。


圖 13
  發(fā)送 cal,會(huì )獲取卡路里。


圖14
  發(fā)送 heart,會(huì )獲取心率。


圖15



文件下載請點(diǎn)擊: 9_(100%開(kāi)源)藍牙心率防水運動(dòng)手環(huán)_整機功能代碼講解.pdf (1.86 MB)


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页