如何使用Hexabitz單導聯EXG監(jiān)測模塊和Arduino Uno捕獲和可視化生物信號
使用Arduino接收來自Hexabitz單導聯EXG監(jiān)視器的肌肉信號數據。處理和可視化數據與LED指示燈。
在這個項目中,我們將使用Hexabitz單導聯EXG監(jiān)測模塊(H2BR0)捕獲肌肉信號數據,并使用Arduino Uno進行處理。目標是創(chuàng)建一個易于使用和視覺上吸引人的生物信號可視化工具。
單引腳,EXG監(jiān)視器(H2BR0x):
Hexabitz單導聯EXG監(jiān)測模塊(H2BR0)是一種可以記錄來自心臟(ECG),大腦(EEG),眼睛(EOG)和肌肉(EMG)的出版級生物電位信號的模塊之一。
是什么讓它與眾不同?
記錄出版質量的生物電位信號,如ECG, EMG, EOG或EEG。
小尺寸允許易于集成到移動和空間有限的項目。
H2BR0基于STM32G0單片機。
使用我們易于使用的api編寫高級C代碼。
您可以連接到外部硬件或與其他Hexabitz模塊組合!
一步一步的指示:
設置Hexabitz EXG監(jiān)控模塊:
請查看本文,了解如何使用STM32CubeIDE編寫代碼。
ExG模塊主代碼:
此代碼設計用于與肌電傳感器的接口,讀取肌肉信號并通過串行通信將其傳輸到樹莓派(它初始化傳感器,讀取樣本并將其發(fā)送到端口P3)
UserTask函數是主要的用戶定義任務。
它使用‘ EXG_Init(EMG) ’初始化EMG(肌電)傳感器。
在無限循環(huán)中,我們使用‘ PlotToTerminal ’讀取emg樣本。
設置硬件:
將Hexabitz EXG監(jiān)視器模塊連接到Arduino Uno上的TX/RX引腳(數字引腳0和1)。
將led連接到Arduino Uno上的數字輸出引腳(例如,引腳6)。
使用USB線或外部電源為Arduino Uno供電。
初始化串行通信:
打開Arduino IDE并創(chuàng)建一個新的草圖。
在setup()函數中初始化波特率為921600的串行通信。
讀取和處理數據:
從Hexabitz EXG監(jiān)視器模塊讀取傳入數據。
可視化數據:
控制led以顯示信號強度。
使用Arduino IDE中的串行繪圖儀以圖形格式可視化數據
代碼
解釋:
該代碼處理從Hexabitz EXG監(jiān)控模塊傳入的串行數據,以控制led的亮度,提供生物信號強度的視覺表示。它首先初始化led作為輸出并設置高速串行通信。當數據到達時,它被存儲在緩沖區(qū)中,直到檢測到消息的結尾。消息的最后四個字節(jié)被提取為ascii編碼的數值,轉換為浮點數,并映射以確定應該點亮多少個led。這種映射反映了信號的強度,led作為被監(jiān)測生物信號的視覺指示器。代碼優(yōu)雅地處理較短或無效的消息,確保其操作的可靠性。
功能概述:
1. 從串口讀取數據字節(jié)。
2. 緩沖最多63字節(jié)的數據。
3. 將最后4字節(jié)(60-63)合并為單個值(' sensorValue ')。
4. 使用‘ sensorValue ’來確定應該點亮多少led,將傳感器值映射到led的數量。
5. 將組合的傳感器值打印到串行監(jiān)視器。
項目測試
結論:
本項目演示了如何使用Hexabitz單導聯EXG監(jiān)測模塊和Arduino Uno捕獲和可視化生物信號。通過LED和串行繪圖儀將數據可視化,我們可以創(chuàng)建一個有效的生物信號分析工具。
本文編譯自hackster.io