電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用nRF5340 DK進行DSP處理的震顫健康分析

使用nRF5340 DK進行DSP處理的震顫健康分析

2023-06-27 | zip | 0.91 MB | 次下載 | 免費

資料介紹

描述

介紹

震顫是某些疾病或失調(diào)的癥狀。難以控制肌肉運動,導(dǎo)致持續(xù)顫抖。它包括患有帕金森病 (PD)、多發(fā)性硬化癥 (MS) 或特發(fā)性震顫 (ET)的人。觀察這些震顫很重要,因為它將表明病情的嚴重程度。

在這個項目頁面中,我將構(gòu)建一個可穿戴設(shè)備來實時分析身體振動或震顫活動。我將使用 nRF5340 開發(fā)套件上的 DSP 支持庫監(jiān)控振動的頻率和幅度。通過使用振動傳感器,可以檢測到這些微小的震動。

這些數(shù)據(jù)將提供有關(guān)疾病隨時間進展的關(guān)鍵見解。例如,帕金森氏癥的震顫頻率一般在 3-8 赫茲之間,如果頻率出現(xiàn)偏差,則可能表明病情正在惡化。

pYYBAGNs5NqAcHj2AAGsceVpXCw543.png
?

硬件規(guī)劃

對于振動感測,將使用Kemet VS-BV203振動傳感器單元。它是一種模擬傳感器,可根據(jù)其感應(yīng)到的振動幅度輸出變化的電壓。

poYBAGNs5NyAI9iRAAApibdkctk565.png
?

使用微控制器上的 ADC 連接數(shù)據(jù),并通過快速傅里葉變換算法獲得信號的基頻。在這里,我們了解到振動頻率是我們想要為震顫健康分析分析的頻率。

pYYBAGNs5OCASKNgAABDJZKWp2o998.png
?

在這里,我還將必要的硬件焊接到原型板屏蔽上。OLED 顯示器連接到 I2C 引腳,振動傳感器有一個連接到模擬引腳的連接器。

pYYBAGNs5OuAbKfBAAPF9Gy7Fb4825.png
?

原理框圖

請在下面找到系統(tǒng)的引腳連接

poYBAGNs5QOAfM5fAAbpRVvApKo049.png
?

設(shè)置 nRF Connect 桌面工具

首先從這個頁面下載并安裝nRF Connect for Desktop

pYYBAGNs5QWAFOESAADhYZK4jCc423.png
為您的操作系統(tǒng)選擇最新版
?

這是設(shè)置的樣子

pYYBAGNs5QeAdhuGAAAefEiIuu8664.png
?

安裝后,程序應(yīng)如下所示。在這里,您可以管理與 nRF 系統(tǒng)相關(guān)的不同應(yīng)用程序。

pYYBAGNs5QqAa6u7AADDUY7yevI929.png
?

在我的情況下,首先單擊Toolchain Manager應(yīng)用程序的“安裝”,這是對示例代碼進行編程以測試板的 IDE。

稍后,也安裝Power Profiler應(yīng)用程序,因為我們將使用 Power Profiler Kit 2 (PPK2) 進行一些測量。

設(shè)置工具鏈和 IDE

打開工具鏈管理器。在這里,我們安裝了SEGGER Embedded Studio IDE附帶的最新 SDK

pYYBAGNs5QyAShZ2AAAZN-lDCoI117.png
?

完成后,閱讀說明“構(gòu)建的第一步”并單擊“打開 IDE”。

pYYBAGNs5Q6AOo89AABBpF1mwYM469.png
?

編譯 Blinky 示例代碼

我們將通過將 Blinky 示例代碼下載到板上來測試 nRF5340 DK 板。這些示例是 nRF Connect SDK 的一部分。

要導(dǎo)入樣本:

文件 → 打開 nRF Connect SDK 項目…

選擇“ blinky ”作為項目,選擇“ nrf5430dk_nrf5430_cpuapp ”作為板子。

poYBAGNs5RSANM1vAADi7DphPqg738.png
?

構(gòu)建項目 hex 文件

構(gòu)建 → 構(gòu)建 zephyr/zephyr.elf (F7)

將開發(fā)板連接到 PC 并將其連接到 IDE:

目標 → 連接 J-Link (Ctrl+T, C)

將十六進制文件下載到板上:

目標 → 下載 zephyr/zephyr.elf (Ctrl+T, L)

檢查板右上角的 LED 是否閃爍

poYBAGNs5RiAeLjEAABQND4zlcE365.png
?

您可以使用示例來熟悉環(huán)境。

為我們的應(yīng)用程序修改示例

為了制作我們自己的應(yīng)用程序,我們將從示例中修改并從那里構(gòu)建。從此位置復(fù)制項目:blinky

  • C:\Users\[用戶名]\ncs\v1.5.0\zephyr\samples\basic\

您可以隨意命名項目。對我來說,我復(fù)制blinkyhackster-wearable.

pYYBAGNs5R2AILJrAABgiyLVnWc687.png
?

現(xiàn)在我們將修改項目以包含我們的應(yīng)用程序的一些庫。

這些項目使用具有非常強大的構(gòu)建系統(tǒng)的 Zephyr RTOS。它有許多配置,您可以在prj.conf.

poYBAGNs5R-AZwdqAABEN4Xpk7c071.png
?

從這里開始,考慮項目需求很重要。在這個項目中,我決定使用GPIO、ADC 和 I2C 設(shè)備外設(shè)另外,我將使用CMSIS-DSP 庫(這個庫也需要浮點支持)

有了這個,我編輯我的文件是這樣的:

pYYBAGNs5SKAKwpZAABhtBaJd9Y699.png
?
請參閱此頁面是配置選項的完整列表:- Zephyr 配置選項(北歐半導(dǎo)體)

再次返回Open nRF Connect SDK Project ,這一次您將看到您的項目文件夾。

poYBAGNs5SWAUdKAAACLwMG1EII130.png
?

選擇板名稱為nrf5430dk_nrf5430_cpuapp 。還將構(gòu)建目錄更改為較短的路徑(我將其放在 C:/ 驅(qū)動器的根目錄中)

pYYBAGNs5SeAEbW3AABtoDbpiJU761.png
?
如果構(gòu)建目錄路徑太長,您可能會遇到編譯問題。這就是我們必須縮短它的原因(我只是刪除了中間的文件夾,并且該文件夾位于 C:/ 驅(qū)動器的根目錄)

有關(guān)此錯誤的信息,請參見此論壇主題:-
https://devzone.nordicsemi。 com/f/nordic-qa/50935/http-application-update-problem-compiling

導(dǎo)入工程后,可以測試是否可以編譯下載到板子上。

注意:如果您對prj.conf文件進行進一步修改,則需要再次重新導(dǎo)入項目更新依賴項。

安裝 CMSIS-DSP 包

由于 CMSIS-DSP 庫由 ARM 提供,默認情況下不捆綁在項目中。

要安裝它,請轉(zhuǎn)到工具 > 包管理器

poYBAGNs5SqAEdKCAAAe_Qrv4b8343.png
?

右鍵單擊并安裝CMSIS 5 CMSIS-DSP 支持包

poYBAGNs5SyAbVgjAACfVL1e5QE049.png
?

安裝后,它看起來像這樣

pYYBAGNs5S6Abh6nAAAh2JVUBCk507.png
?

我們現(xiàn)在準備開始我們的應(yīng)用程序!

GPIO 代碼

該板有 4 個 LED,在電路板上標記為LED1LED4 。但是,在代碼中,它們被標記為led0led3 。請注意這個區(qū)別!

poYBAGNs5TCAQVf_AABQlSCAc0k031.png
?
  • LED1 = P0.28 (led0)
  • LED2 = P0.29 (LED1)
  • LED3 = P0.30 (LED2)
  • LED4 = P0.31 (led3)

這是設(shè)置 LED 的代碼部分

pYYBAGNs5TOAWJhDAAC_j51kEI8988.png
在左側(cè),LED0 的定義是示例的一部分,我為 LED1 復(fù)制了它。右邊是我對 led0 和 led1 的初始化函數(shù)。
?

ADC 代碼

我們將使用 ADC 連接到振動傳感器模塊。

pYYBAGNs5TWAK4StAAAiBJMNnSM278.png
?

對于 ADC,我將使用開發(fā)板上的 A0 輸入引腳。

poYBAGNs5TiAMzNKAAA-ZHy-RXw241.png
?

這是設(shè)置 ADC 的代碼部分。

pYYBAGNs5TqAeiUoAAEHNlI0QiU168.png
?

I2C 代碼

I2C OLED 顯示屏將用于顯示信息

poYBAGNs5TyAKMzrAACaRJU6SUw292.png
?

將 OLED 顯示器連接到 I2C 的專用引腳。

poYBAGNs5T-AU2aZAABcYvRceH8244.png
?
  • SDA = D14 (P1.02)
  • SCL = D15 (P1.03)

這是設(shè)置 I2C 的代碼部分。

pYYBAGNs5UGAGTIZAAET7t7pOkk190.png
?

定時器代碼

定時器用于定期觸發(fā) ADC,這樣我們就可以為 FFT 分析獲得一致的讀數(shù)。此處代碼設(shè)置為具有 512Hz 的頻率。這是因為稍后我將使用 1024 個樣本的 FFT 大小,這意味著更新每個結(jié)果需要 2 秒。

poYBAGNs5UWAIY7TAADGU6ze6B4837.png
?

為了確認定時器工作正常,我使用了 PPK2 套件中的邏輯分析儀。我將它連接到 LED 引腳,在這里我們確認頻率為 512Hz(約 1.95ms)。稍后我將更詳細地解釋如何設(shè)置 PPK2。

pYYBAGNs5UiAGV7zAACOkG5_yKY734.png
?

CMSIS DSP FFT 代碼

現(xiàn)在對 FFT 分析過程進行編碼...確保安裝了 CMSIS DSP 包。

poYBAGNs5UqAXkm3AAD4T1Drcb8660.png
?

UART 代碼

這部分代碼負責(zé)使用printk()函數(shù)將數(shù)組中的 FFT 結(jié)果發(fā)送到 PC。

pYYBAGNs5UyADsgKAABupS8iWI4820.png
?

每次在 while 循環(huán)中處理 FFT 時都會發(fā)送它。

poYBAGNs5U-AdhtbAAD6Sl5aIXk718.png
?

最終構(gòu)建產(chǎn)品

綜上所述,我將最終代碼上傳到我的 Github 帳戶。

這些是最終構(gòu)建中的關(guān)鍵組件

pYYBAGNs5V2AIAedAAWwWlhNMbI375.jpg
?

我用橡皮筋將振動傳感器牢牢地固定在手腕上。

poYBAGNs5aqAGHVNAAtjL6TLAeY485.jpg
?

并且顯示會隨著震顫頻率分析而相應(yīng)更新。

pYYBAGNs5a6ABX7yAAL-7-SrBlo151.png
?

OLED 顯示屏的特寫

poYBAGNs5TyAKMzrAACaRJU6SUw292.png
?

繪制數(shù)據(jù)

可以使用 UART 從 nRF5340 中提取傳感器數(shù)據(jù)。在 nRF5340 上,JLink 處理微控制器和 PC 之間的 UART 通信。

我們可以使用TeraTermPuTTY等串行軟件接收它。在設(shè)備管理器下,記下JLink CDC UART Port

poYBAGNs5bSAbRuAAACWbUu0PK4963.png
?

在 TeraTerm 中連接到設(shè)備:

  • 文件 > 創(chuàng)建新連接 > 串行 >(選擇 COM 端口)。
pYYBAGNs5baAfTMEAAA8he9pyX8731.png
?
pYYBAGNs5biAdlwiAAB2W5BZJFk784.png
?

nRF5340 SDK示例的默認串口設(shè)置如下:

  • 速度:115200
  • 數(shù)據(jù):8位
  • 奇偶性:無
  • 停止位:1位

在 TeraTerm 中,轉(zhuǎn)到串行端口設(shè)置設(shè)置并進行相應(yīng)設(shè)置

poYBAGNs5buAa6waAAAz4mEUNfM763.png
?

它應(yīng)該看起來像這樣。

pYYBAGNs5b6AZ5w6AABYlMf1gts956.png
?

數(shù)據(jù)將開始在終端中流動。你可以從這里復(fù)制出來進行分析。

poYBAGNs5cCAeC77AAB_KvtjsfU499.png
?

對我來說,我決定使用 Google Sheets 來繪制圖表,我們可以將逗號分隔的數(shù)據(jù)分成 2 列

  • 數(shù)據(jù) > 將文本拆分為列 > 分隔符:逗號。
pYYBAGNs5cOAGCu4AAHiVfIFJtg001.png
?

創(chuàng)建了一個面積圖來可視化結(jié)果。

  • 插入 > 圖表 > 面積圖

此處圖表的峰值是5 Hz 手顫的結(jié)果。

pYYBAGNs5ceAORWfAADhuTjQz9s091.png
?

通過將數(shù)據(jù)范圍更改為前 50 個值來放大。我們確認幅度峰值在 5Hz 處。

pYYBAGNs5cuACvh-AAEsK9ugjHc192.png
?

這是一個模擬7-10Hz之間震顫的動畫

?
未來改進:
由于學(xué)習(xí)曲線陡峭,我無法在比賽前及時啟動 BLE 功能。將來,數(shù)據(jù)可以通過BLE發(fā)送來制作實時數(shù)據(jù)分析儀表板

設(shè)置電源分析器套件 2 (PPK2)

使用 nRF Connect 啟動 Power Profiler 工具

poYBAGNs5c-AfLElAABDOlIeRk0176.png
?

將 PPK2 設(shè)備連接到 PC,然后單擊“選擇設(shè)備”。

pYYBAGNs5dGACh1gAABE0gI6KY4821.png
?

在這里,您將看到可用的設(shè)備,選擇您的 PPK2 設(shè)備。

pYYBAGNs5daAHCkIAAAam4h3Azc680.png
?

您可以在源表和安培表之間進行選擇。這取決于您希望被測設(shè)備 (DUT) 的功率如何。

poYBAGNs5diARvXrAADQVb1vX8Q713.png
?

在安培計中,PPK2 將簡單地測量電流。PPK2 將亮起藍色。電源由 DUT 本身提供。

在源表中,PPK2 將為 DUT 提供電并從那里測量電流。PPK2 將亮起紅色。

您必須選擇從 0.8V 到 5.0V 的電源電壓。注意不要選擇錯誤的電壓而損壞 DUT。

我將提供 3.3V 電源并在兩端放置一些電阻以測量電流作為測試用例。這是我在軟件中的選擇

pYYBAGOIJb2ABWqwAADGAXu7Cm8393.png
?

我只是在 PPK2 的電源電壓上連接了一個電阻器和一個電位器。(選擇的值是任意的)

pYYBAGOIJcCAONcfAAA0BpxLpkM596.png
?
poYBAGOIJcOABMVAAAFsJb-nfrA667.png
?

單擊“開始”開始記錄數(shù)據(jù)。當我將電位器從最大電阻掃到最小值并返回到最大值時,圖表將更新。帶電電流波形會在 PC 上做出相應(yīng)反應(yīng)。

?
?
?
pYYBAGOIJcaAC_KFAAFNM2YWlOo045.png
?
1 / 2
?

在這里,我們看到的結(jié)果是最大值為 2.88mA,最小值為 2.00mA。我們可以通過一些計算來驗證這一點(請注意,電阻器的容差約為 5%)

pYYBAGOIJciAehDtAAAXYP-X1p0821.png
?

如您所見,結(jié)果與我們的計算相符(請注意,電阻器的容差約為 5%)。

帶 PPK2 的邏輯分析儀

您還可以使用邏輯分析儀功能。在這張照片中,我正在探測 P0.29 以找到 LED2 的頻率。

poYBAGOIJcuABWcUAAJnHl_37Jg997.png
?
  • 紅線= 邏輯5V
  • 線 = 邏輯GND
  • 線 = 邏輯D0

這是通道 0 上方波(閃爍的 LED)的測量值。

pYYBAGOIJc6AUBQZAABQKjBGKOI563.png
?

如本文前面所述,我將定時器頻率設(shè)置為 512Hz。并且在每次定時器中斷時,都會切換 LED。我們看到兩次切換之間的時間約為 1.95ms (512Hz)

準備 nRF5340 DK 與 PPK2 一起使用

參考官方硬件指南準備nRF5340 DK板測量電流-準備DK(Nordic Semiconductor)

我們將不得不剪掉一個跳線 SB40。它位于標有“nRF 電流測量”標簽的插頭引腳旁邊。

pYYBAGOIJdKAS_o1AAChAsyhFXQ783.png
?

用小刀小心地劃線。花點時間,因為該地區(qū)的空間有限!剪完后應(yīng)該是這個樣子。

pYYBAGOIJdWAXUntAAE9J_m64Nc475.png
?

我們將在電流源模式下使用 PPK2,因此像這樣連接 PPK2。只有VOUT和GND一起連接到電路板的電源。

poYBAGOIJeCAAujkABCD733WZts897.png
?

使用 PPK2 進行測量

測量后,這是電流消耗的結(jié)果。

poYBAGOIJeKAcGDmAADtL-zK6yg754.png
?

從結(jié)果來看,平均電流消耗為3.83mA 。它也是低功耗的,為持久的可穿戴設(shè)備應(yīng)用打開了大門。尤其是在醫(yī)療和保健領(lǐng)域,電池壽命對于減少對患者和護理人員的不便非常重要。

?
?
?
pYYBAGOIJeiAeIeqAAalOPMlJRo103.jpg
?
1 / 2
?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費