电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>步态分析仪和可穿戴运动传感设备

步态分析仪和可穿戴运动传感设备

2022-12-19 | zip | 0.14 MB | 次下载 | 免费

资料介绍

描述

关于。

该项目旨在为医疗保健等不同用途创建一种创新的运动跟踪设备,RSL10 EVK 板通过提供可立即使用的完整解决方案带来新的可能性,从而简化开发。重点是跟踪运动,一种是医疗保健提供者感兴趣的步态分析。如果最终产品未实现,则该产品的工作证明是可行的,并且是可替代现有商业产品的低成本解决方案。

步态分析仪。

个人的步行表现会有所不同,医生已经注意到某些疾病或状况会改变它,例如帕金森、中风、骨科和老年人。有许多关于步态分析的研究及其与这些条件的关联,即有研究表明老年人的步态速度与生存率之间存在关联(Studenski et al., 2011

一个非常典型的步态测试是在走廊中进行的,距离可能会因个人或医疗保健提供者的需要而异。

pYYBAGOYepSAQd5HAAAgspLo3Hs199.png
典型的步态测试
 

便携式应用中的 RSL10 SENSE。

RSL10 SENSE EVK 具有应用程序所需的所有传感器,实际上它比实际需要的传感器多一些,这在某些应用程序中可能是有益的。

以下是一些板载传感器的简要介绍。

poYBAGOYepaAUb2uAABIy2mzsWo975.png
RSL10 感知 EVK。
 

RSL10 SENSE EVK 带有一个纽扣电池连接器,非常适合便携式应用。

夹具。

EVK 板很小,而且由于每个电子设备都很脆弱,并且对不正确处理造成的损坏很敏感,为了最大限度地减少测试过程中可能造成的损坏,我们使用了一个小型 3D 容器。

例如,借助钩环紧固件,3d 外壳可以安装到人鞋中,但其他身体部位也是可能的。

软件。

该设备可以很容易地商业化,但需要在定制软件上进行艰苦的工作,这不是该项目的目标。这里的目的是利用ON和博世公司最新技术加快步态分析的发展和帮助研究。对于软件,我决定使用MATLAB ,因为它可以轻松连接并具有所有后处理工具来分析它。

使用的固件是 SDK 示例中提供的自定义服务协议固件,即sense_ics_firmware

MATLAB有一个使用非常方便的蓝牙低功耗通信库,你的电脑必须有一个4.0 BLE适配器,你可以通过以下方式连接BLE设备

b = ble(Address);

其中地址是您的 BLE RSL10 地址。就我而言,我通过之前运行blelist命令找到了该地址

pYYBAGOYepiAZC5WAAAkpqwwriA991.png
blelist 命令输出。
 

使用ble命令连接后,可以知道特征

poYBAGOYepuAEJLOAAA2L_5Jehg916.png
ble 命令输出
 

也可以显示特征

poYBAGOYep2AIghWAACxR9OpCj8153.png
RSL10 SENSE 特性
 

为了从传感器查询和接收数据,我们使用上面看到的两个自定义特征,我们通过这样做来设置

rxc = characteristic(b, "E093F3B5-00A3-A9E5-9ECA-40016E0EDC24", "E093F3B6-00A3-A9E5-9ECA-40026E0EDC24");

txc = characteristic(b, "E093F3B5-00A3-A9E5-9ECA-40016E0EDC24", "E093F3B7-00A3-A9E5-9ECA-40036E0EDC24");

我们没有修改固件,真正的产品需要修改,默认配置足以每秒获取 5 个样本,此时可以。

但是为了在 Matlab 中接收数据,实现了一个回调函数,这将在后台运行以处理接收到的数据。我们可以通过这样做来安装回调

subscribe(rxc);
rxc.DataAvailableFcn = @displayCharacteristicData;

其中displayCharacteristicData是函数

function displayCharacteristicData(src,evt)
    global i;
    global dv;
    global gv;
    [data,timestamp] = read(src,'oldest');
    c = char(data);
    cs = split(c, '/');
    packet = char(cs(1));
    switch packet
        case 'A'
            acc = split(cs(2), ',');
            dv(i, 1) = str2double(acc(1));
            dv(i, 2) = str2double(acc(2));
            dv(i, 3) = str2double(acc(3));
            dv(i, 4) = i;
        case 'G'
            gyro = split(cs(2), ',');
            gv(i, 1) = str2double(gyro(1));
            gv(i, 2) = str2double(gyro(2));
            gv(i, 3) = str2double(gyro(3));
            gv(i, 4) = i;
        otherwise
            disp('not implemented response-reception');
        end
end

如果不了解数据是如何查询和接收的,就很难理解上述switch case的原因。

我之前设置了一个 segger RT 查看器控制台来查看调试语句的输出,然后运行 ​​android 演示应用程序,其想法是了解查询和解析是如何完成的。

pYYBAGOYeqCAYsnxAAEGv5bEeqU134.png
从 android 应用程序和自定义服务固件应用程序捕获命令。
 

在下面的代码中可以看到加速度计和陀螺仪命令解析是如何实现的。变量是 4 行的数组,前三行包含加速度和陀螺仪的 X、Y 和 Z 分量,最后一个只是跟踪接收到的样本的索引

编写示例代码以允许在给定时间段内进行采样,然后停止,在这种情况下,每 200 毫秒请求一次采样。

record_length = 60;
sample_rate = 5;       %samples per second.
rsamples = record_length*sample_rate;
i = 1;
dv = zeros(10,4);
gv = zeros(10,4);


disp('start acquisition loop');
% request data every sampling period
while true
    write(txc, 'A/AO/A');               % accel data
    %     write(txc, 'G/AO/AR');        % gyro data
    if(i > rsamples)
        return;
    else
        pause(1/sample_rate);
        i = i + 1;
    end
end

为了加快采样速度,需要对固件进行修改,因为传感器已经配置为每 1/5 秒中断一次。其摘录如下所示,位于文件 CSN_AO.c 中

retval += BHI160_NDOF_EnableSensor(BHI160_NDOF_S_LINEAR_ACCELERATION,
CSN_AO_SensorCallback, 5);

在这种情况下,5 是每秒的采样率。增加采样率是必要的,但也有必要在不影响数据的情况下测试它的速度,在这种情况下,我们每 200 毫秒向自定义特征发送一个 BLE 查询,但随着速度的加快,这可能会带来一些问题。因此,更好的方法可能是重写自定义特征以在缓冲区中保存一些样本并每 200 毫秒传输一次。在这种情况下,回调函数CSN_AO_SensorCallback是开始修改的关键。

但回到我们的测试,在使用 60 秒运行捕获后,我们得到了一个包含 4 行的数组,每行有 300 个样本。

poYBAGOYeqSAcC1CAAAx3A6sYT8479.png
Matlab 中的变量视图。
 

在绘制了一些运动的加速度计数据后,我用手臂在 RSL10 板上做了一些动作。

pYYBAGOYeqeAK2bGAAB8X9WThiw864.png
手臂上/下运动的 Matlab 加速度计图。
 

数据以样本计数而非物理量表示。我尝试使用以下公式转换为 m/s2。

dvmod = (dv/32768)*4*9.80665/3.2808;

似乎必须进一步缩放原始值才能获得 m/s2,不是 100% 肯定,但如果该值以 ft/s2 为单位,则这些值更有意义。上式中,数字 4 为动态范围。

 

poYBAGOYeqmAdkQ2AABZWQZlauE852.png
走在 m/s2 值。
 

 

步态数据采集。

以类似的方式进行了一次小步行以捕获加速度计和陀螺仪数据。

pYYBAGOYequAUYoqAACAfd2cpM0823.png
加速度计步行捕捉。
 
poYBAGOYeq6AAei_AAB8Oe2N7cQ818.png
陀螺仪步行捕捉。
 

结论。

该项目展示了拥有一个低成本平台来研究步态模式和人体一般运动的可行性。它可以移植,SDK 示例是进一步修改的良好起点。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1elmo直线电机驱动调试细则
  2. 4.76 MB   |  9次下载  |  6 积分
  3. 2GB 4706.17-2010 家用和类似用途电器的安全电动机-压缩机的特殊要求
  4. 3.47 MB   |  6次下载  |  1 积分
  5. 3WIFI智能音箱原理图完整版
  6. 0.09 MB   |  5次下载  |  10 积分
  7. 4GB/T4706.1-2024 家用和类似用途电器的安全第1部分:通用要求
  8. 7.43 MB   |  3次下载  |  1 积分
  9. 5ADL-GPIB IEEE 488命令集函数参考手册
  10. 0.67 MB   |  2次下载  |  5 积分
  11. 6H10-T108KYG/5M数据表
  12. 0.73 MB   |  2次下载  |  免费
  13. 748V三相逆变器电路图
  14. 0.54 MB   |  1次下载  |  5 积分
  15. 8如何使用C2000 CLB实现Traction Inverter应用中的PWM输出保护功能
  16. 1.32 MB   |  1次下载  |  免费

本月

  1. 1新概念模拟电路第四册信号处理电路电子书免费下载
  2. 10.69 MB  |  53次下载  |  免费
  3. 2800VA纯正弦波逆变器的参考设计
  4. 2.96MB   |  22次下载  |  免费
  5. 3SW6308V原理图设计指南
  6. 0.75 MB   |  15次下载  |  1 积分
  7. 4SW6308V三口多协议升降压移动电源SOC中文手册
  8. 1.61 MB   |  14次下载  |  1 积分
  9. 5纯电动汽⻋的主要部件及⼯作原理
  10. 5.76 MB   |  13次下载  |  5 积分
  11. 6新概念模拟电路(电子版全集)
  12. 29.33 MB   |  11次下载  |  免费
  13. 7GP328和GP88S对讲机的维修实列资料合集免费下载
  14. 0.03 MB   |  10次下载  |  10 积分
  15. 8SW6308V寄存器手册
  16. 1.08 MB   |  10次下载  |  1 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935115次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420061次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233084次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191366次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183329次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81581次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73805次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65985次下载  |  10 积分