资料介绍
描述
介绍
震颤是某些疾病或失调的症状。难以控制肌肉运动,导致持续颤抖。它包括患有帕金森病 (PD)、多发性硬化症 (MS) 或特发性震颤 (ET)的人。观察这些震颤很重要,因为它将表明病情的严重程度。
在这个项目页面中,我将构建一个可穿戴设备来实时分析身体振动或震颤活动。我将使用 nRF5340 开发套件上的 DSP 支持库监控振动的频率和幅度。通过使用振动传感器,可以检测到这些微小的震动。
这些数据将提供有关疾病随时间进展的关键见解。例如,帕金森氏症的震颤频率一般在 3-8 赫兹之间,如果频率出现偏差,则可能表明病情正在恶化。
硬件规划
对于振动感测,将使用Kemet VS-BV203振动传感器单元。它是一种模拟传感器,可根据其感应到的振动幅度输出变化的电压。
使用微控制器上的 ADC 连接数据,并通过快速傅里叶变换算法获得信号的基频。在这里,我们了解到振动频率是我们想要为震颤健康分析分析的频率。
在这里,我还将必要的硬件焊接到原型板屏蔽上。OLED 显示器连接到 I2C 引脚,振动传感器有一个连接到模拟引脚的连接器。
原理框图
请在下面找到系统的引脚连接
设置 nRF Connect 桌面工具
首先从这个页面下载并安装nRF Connect for Desktop
这是设置的样子
安装后,程序应如下所示。在这里,您可以管理与 nRF 系统相关的不同应用程序。
在我的情况下,首先单击Toolchain Manager应用程序的“安装”,这是对示例代码进行编程以测试板的 IDE。
稍后,也安装Power Profiler应用程序,因为我们将使用 Power Profiler Kit 2 (PPK2) 进行一些测量。
设置工具链和 IDE
打开工具链管理器。在这里,我们安装了SEGGER Embedded Studio IDE附带的最新 SDK
完成后,阅读说明“构建的第一步”并单击“打开 IDE”。
编译 Blinky 示例代码
我们将通过将 Blinky 示例代码下载到板上来测试 nRF5340 DK 板。这些示例是 nRF Connect SDK 的一部分。
要导入样本:
文件 → 打开 nRF Connect SDK 项目…
选择“ blinky ”作为项目,选择“ nrf5430dk_nrf5430_cpuapp ”作为板子。
构建项目 hex 文件
构建 → 构建 zephyr/zephyr.elf (F7)
将开发板连接到 PC 并将其连接到 IDE:
目标 → 连接 J-Link (Ctrl+T, C)
将十六进制文件下载到板上:
目标 → 下载 zephyr/zephyr.elf (Ctrl+T, L)
检查板右上角的 LED 是否闪烁
您可以使用示例来熟悉环境。
为我们的应用程序修改示例
为了制作我们自己的应用程序,我们将从示例中修改并从那里构建。从此位置复制项目:blinky
您可以随意命名项目。对我来说,我复制blinky
到hackster-wearable
.
现在我们将修改项目以包含我们的应用程序的一些库。
这些项目使用具有非常强大的构建系统的 Zephyr RTOS。它有许多配置,您可以在prj.conf
.
从这里开始,考虑项目需求很重要。在这个项目中,我决定使用GPIO、ADC 和 I2C 设备外设。另外,我将使用CMSIS-DSP 库(这个库也需要浮点支持)
有了这个,我编辑我的文件是这样的:
请参阅此页面是配置选项的完整列表:- Zephyr 配置选项(北欧半导体)
再次返回Open nRF Connect SDK Project ,这一次您将看到您的项目文件夹。
选择板名称为nrf5430dk_nrf5430_cpuapp 。还将构建目录更改为较短的路径(我将其放在 C:/ 驱动器的根目录中)
如果构建目录路径太长,您可能会遇到编译问题。这就是我们必须缩短它的原因(我只是删除了中间的文件夹,并且该文件夹位于 C:/ 驱动器的根目录)
有关此错误的信息,请参见此论坛主题:- https://devzone.nordicsemi。 com/f/nordic-qa/50935/http-application-update-problem-compiling
导入工程后,可以测试是否可以编译下载到板子上。
注意:如果您对prj.conf
文件进行进一步修改,则需要再次重新导入项目以更新依赖项。
安装 CMSIS-DSP 包
由于 CMSIS-DSP 库由 ARM 提供,默认情况下不捆绑在项目中。
要安装它,请转到工具 > 包管理器
右键单击并安装CMSIS 5 CMSIS-DSP 支持包。
安装后,它看起来像这样
我们现在准备开始我们的应用程序!
GPIO 代码
该板有 4 个 LED,在电路板上标记为LED1到LED4 。但是,在代码中,它们被标记为led0到led3 。请注意这个区别!
- LED1 = P0.28 (led0)
- LED2 = P0.29 (LED1)
- LED3 = P0.30 (LED2)
- LED4 = P0.31 (led3)
这是设置 LED 的代码部分
ADC 代码
我们将使用 ADC 连接到振动传感器模块。
对于 ADC,我将使用开发板上的 A0 输入引脚。
这是设置 ADC 的代码部分。
I2C 代码
I2C OLED 显示屏将用于显示信息
将 OLED 显示器连接到 I2C 的专用引脚。
- SDA = D14 (P1.02)
- SCL = D15 (P1.03)
这是设置 I2C 的代码部分。
定时器代码
定时器用于定期触发 ADC,这样我们就可以为 FFT 分析获得一致的读数。此处代码设置为具有 512Hz 的频率。这是因为稍后我将使用 1024 个样本的 FFT 大小,这意味着更新每个结果需要 2 秒。
为了确认定时器工作正常,我使用了 PPK2 套件中的逻辑分析仪。我将它连接到 LED 引脚,在这里我们确认频率为 512Hz(约 1.95ms)。稍后我将更详细地解释如何设置 PPK2。
CMSIS DSP FFT 代码
现在对 FFT 分析过程进行编码...确保安装了 CMSIS DSP 包。
UART 代码
这部分代码负责使用printk()函数将数组中的 FFT 结果发送到 PC。
每次在 while 循环中处理 FFT 时都会发送它。
最终构建产品
综上所述,我将最终代码上传到我的 Github 帐户。
这些是最终构建中的关键组件
我用橡皮筋将振动传感器牢牢地固定在手腕上。
并且显示会随着震颤频率分析而相应更新。
OLED 显示屏的特写
绘制数据
可以使用 UART 从 nRF5340 中提取传感器数据。在 nRF5340 上,JLink 处理微控制器和 PC 之间的 UART 通信。
我们可以使用TeraTerm或PuTTY等串行软件接收它。在设备管理器下,记下JLink CDC UART Port。
在 TeraTerm 中连接到设备:
- 文件 > 创建新连接 > 串行 >(选择 COM 端口)。
nRF5340 SDK示例的默认串口设置如下:
- 速度:115200
- 数据:8位
- 奇偶性:无
- 停止位:1位
在 TeraTerm 中,转到串行端口设置设置并进行相应设置
它应该看起来像这样。
数据将开始在终端中流动。你可以从这里复制出来进行分析。
对我来说,我决定使用 Google Sheets 来绘制图表,我们可以将逗号分隔的数据分成 2 列
- 数据 > 将文本拆分为列 > 分隔符:逗号。
创建了一个面积图来可视化结果。
- 插入 > 图表 > 面积图
此处图表的峰值是5 Hz 手颤的结果。
通过将数据范围更改为前 50 个值来放大。我们确认幅度峰值在 5Hz 处。
这是一个模拟7-10Hz之间震颤的动画
未来改进:
由于学习曲线陡峭,我无法在比赛前及时启动 BLE 功能。将来,数据可以通过BLE发送来制作实时数据分析仪表板
设置电源分析器套件 2 (PPK2)
使用 nRF Connect 启动 Power Profiler 工具
将 PPK2 设备连接到 PC,然后单击“选择设备”。
在这里,您将看到可用的设备,选择您的 PPK2 设备。
您可以在源表和安培表之间进行选择。这取决于您希望被测设备 (DUT) 的功率如何。
在安培计中,PPK2 将简单地测量电流。PPK2 将亮起蓝色。电源由 DUT 本身提供。
在源表中,PPK2 将为 DUT 提供电压并从那里测量电流。PPK2 将亮起红色。
您必须选择从 0.8V 到 5.0V 的电源电压。注意不要选择错误的电压而损坏 DUT。
我将提供 3.3V 电源并在两端放置一些电阻以测量电流作为测试用例。这是我在软件中的选择
我只是在 PPK2 的电源电压上连接了一个电阻器和一个电位器。(选择的值是任意的)
单击“开始”开始记录数据。当我将电位器从最大电阻扫到最小值并返回到最大值时,图表将更新。带电电流波形会在 PC 上做出相应反应。
在这里,我们看到的结果是最大值为 2.88mA,最小值为 2.00mA。我们可以通过一些计算来验证这一点(请注意,电阻器的容差约为 5%)
如您所见,结果与我们的计算相符(请注意,电阻器的容差约为 5%)。
带 PPK2 的逻辑分析仪
您还可以使用逻辑分析仪功能。在这张照片中,我正在探测 P0.29 以找到 LED2 的频率。
- 红线= 逻辑5V
- 黑线 = 逻辑GND
- 蓝线 = 逻辑D0
这是通道 0 上方波(闪烁的 LED)的测量值。
如本文前面所述,我将定时器频率设置为 512Hz。并且在每次定时器中断时,都会切换 LED。我们看到两次切换之间的时间约为 1.95ms (512Hz)
准备 nRF5340 DK 与 PPK2 一起使用
参考官方硬件指南准备nRF5340 DK板测量电流-准备DK(Nordic Semiconductor)
我们将不得不剪掉一个跳线 SB40。它位于标有“nRF 电流测量”标签的插头引脚旁边。
用小刀小心地划线。花点时间,因为该地区的空间有限!剪完后应该是这个样子。
我们将在电流源模式下使用 PPK2,因此像这样连接 PPK2。只有VOUT和GND一起连接到电路板的电源。
使用 PPK2 进行测量
测量后,这是电流消耗的结果。
从结果来看,平均电流消耗为3.83mA 。它也是低功耗的,为持久的可穿戴设备应用打开了大门。尤其是在医疗和保健领域,电池寿命对于减少对患者和护理人员的不便非常重要。
- nRF5340模块开源分享
- 基于nRF5340开发套件的开源可穿戴式下臂支架
- 带有nRF5340 DK的虚拟皮带
- nrf5340 LCD和flash 共用Qspi 息屏导致flash读写问题
- 基于NRF24LU1P-F32Q32-DK射频收发器的
- 基于NRF8001-DK无线系统的
- 基于DSP的语音分析系统附录 8次下载
- 基于nRF51-DK无线连结的参考设计
- 基于nRF52-DK无线连结的参考设计
- DSP数字信号处理器的详细资料简介 8次下载
- 如何使用DSP和CPLD进行语音处理系统的设计资料说明 6次下载
- nRF51 DK板载的开发指导手册免费下载 0次下载
- 如何使用移动APP进行健康管理系统的设计与实现 4次下载
- TMS320C64x+ DSP 小字节DSP库 程序员参考 5次下载
- OMAPL138B C6-Integra™ DSP+ARM® 处理器 6次下载
- dsp是什么意思 dsp怎么调音质最好 9470次阅读
- 实现ARM和DSP或协处理器的通信和协同工作,有什么解决方案和实现指南 1546次阅读
- DSP和FPGA的特点比较及如何进行方案选择,示例分析 6654次阅读
- nRF5系列首个高端多协议SOC nRF5340TM,满足尖端可穿戴设备的需求 8144次阅读
- 智能马桶收集分析尿液,可提供个人健康信息 4914次阅读
- 讲述Nordic nRF5 SDK的主要调试手段,以帮助大家快速定位问题 1.2w次阅读
- 基于多核DSP DM8168处理器的大数据量高速视频采集及压缩的实现方案 2035次阅读
- 一种DSP和nRF24L01的无线环境监测系统的设计 2356次阅读
- nrf24l01无线模块传输距离分析 3.4w次阅读
- nRF905工作原理_nRF905基本特点 1.1w次阅读
- nrf905引脚图及引脚说明_nrf905主要参数 1.1w次阅读
- DSP是什么?详解DSP又称数字信号处理器 4.7w次阅读
- DSP编程的关键问题分析 1666次阅读
- 通过开源API进行DSP视频处理 1116次阅读
- 基于DSP的最小图像采集处理系统设计 2375次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多