对于一个人来说,经历未被观察到的跌倒可能是双重危险的。如果在短时间内没有获得治疗,可能的后果可能会进一步加剧初始损伤的明显可能性。例如,许多老年人可能会因虚弱或头晕而意外跌倒,或者一般来说,他们的自我护理和自我保护能力下降。由于这些事故往往很脆弱,如果不及时提供援助,这些事故可能会产生严重后果。统计数字表明,大多数严重后果不是跌倒的直接结果,而是由于援助和治疗的延误。如果能够及时向救援人员发出警报,就可以大大减少坠落后的后果。
除了老年人之外,还有许多其他条件和活动,立即提醒可能跌落,特别是从高处坠落,将非常有帮助 - 例如登山者,建筑工人,窗户清洗工,油漆工和屋顶工。
鉴于这种对跌倒发出警告的需要,开发用于检测和预测所有类型的跌倒的设备已成为一个热门话题。近年来,微机电系统(MEMS)加速度传感器的技术进步使得基于3轴集成MEMS(iMEMS)加速度计的跌倒检测器设计成为可能。该技术基于通过跟踪三个正交方向的加速度变化来检测佩戴传感器的个人运动和身体位置变化的原理。通过算法不断分析数据,以确定个人的身体是否在下落。如果有人跌倒,该设备可以使用GPS和无线发射器来确定位置并发出警报以获得帮助。跌倒检测的核心要素是判断是否存在紧急跌倒情况的有效、可靠的检测原理和算法。
本文基于对单个身体跌倒检测原理的研究,提出了一种利用ADXL345检测跌倒情况的新解决方案,1ADI公司的3轴加速度计。
ADXL345 i微机电系统加速度计
我MEMS半导体技术在单个硅芯片上结合了微机械结构和电路。使用这项技术,iMEMS加速度计在单轴、双轴甚至三轴上检测加速度,并提供模拟或数字输出。根据应用的不同,加速度计可以提供不同的检测范围,从几g到几十g。数字版本甚至可能具有多种中断模式。这些功能为用户提供了方便灵活的解决方案。
最近推出的ADXL345是一款带数字输出的iMEMS 3轴加速度计。它具有可选的 ±2-g、±4-g、±8-g 或 ±16-g 测量范围;分辨率高达13位;固定的 4 毫克/低血糖素灵敏度;微型 3 毫米× 5 毫米× 1 毫米封装;超低功耗(25 μA 至 130 μA);标准 I2C和SPI串行数字接口;和 32 级 FIFO 存储。各种内置功能,包括运动状态检测和灵活中断,大大简化了跌倒检测算法的实现。如您所见,这种特性组合使ADXL345成为跌倒检测器应用的理想加速度计。®
这里提出的跌倒检测解决方案充分利用了这些内部功能,最大限度地降低了算法的复杂性,几乎不需要访问实际加速度值或执行任何其他计算。
中断系统
图1显示了ADXL345的系统框图和引脚定义。
图1.ADXL345系统框图和引脚名称
ADXL345具有两个可编程中断引脚(INT1和INT2),共有8种中断功能可用。每个中断都可以独立启用或禁用,并可选择映射到 INT1 或 INT2 引脚。所有功能可以同时使用——唯一的限制功能是某些功能可能需要共享中断引脚。这八个功能是:DATA_READY、SINGLE_TAP、DOUBLE_TAP、活动、不活动、FREE_FALL、水印和超限。中断通过在INT_ENABLE寄存器中设置适当的位来启用,并根据INT_MAP寄存器的内容映射到 INT1 或 INT2 引脚。中断函数定义如下:
1. DATA_READY在新数据可用时设置,在没有新数据可用时清除。
2. 当单个加速事件大于THRESH_TAP寄存器中的值发生的时间短于 DUR 寄存器中指定的时间时,将设置SINGLE_TAP。
3. 当发生两个大于THRESH_TAP寄存器中的值且短于 DUR 寄存器中指定时间的加速事件时,设置DOUBLE_TAP,第二次抽头在潜伏寄存器指定的时间之后并在 WINDOW 寄存器中指定的时间内开始。
图 2 说明了有效的SINGLE_TAP中断和DOUBLE_TAP中断。
图2.SINGLE_TAP和DOUBLE_TAP中断。
4. 当加速度大于存储在THRESH_ACT寄存器中的值时,将设置 ACTIVITY。
5. 当加速度小于THRESH_INACT寄存器中存储的值超过TIME_INACT寄存器中指定的时间时,将设置不活动状态。TIME_INACT的最大值为 255 秒。
注意: 使用活动和非活动中断,用户可以单独启用或禁用每个轴。例如,可以在禁用 Y 轴和 Z 轴中断的同时启用 X 轴的 ACTIVITY 中断。
此外,用户可以在活动中断和非活动中断的直流耦合或交流耦合操作模式之间进行选择。在直流耦合操作中,将电流加速度与THRESH_ACT进行比较,并直接THRESH_INACT以确定是否检测到ACTIVITY或不ACTIVITY。在活动检测的交流耦合操作中,以活动检测开始时的加速度值作为参考值。然后将新的加速度样本与该参考值进行比较;如果差异的大小超过 THRESH_ACT,设备将触发 ACTIVITY 中断。在用于不活动检测的交流耦合操作中,参考值用于比较,并在器件超过非活动阈值时更新。选择参考值后,设备将参考值与当前加速度之间的差异大小与THRESH_INACT进行比较。如果总共 TIME_INACT 的差异低于 THRESH_INACT,则设备被视为非活动状态,并触发非活动中断。
6. 当THRESH_FF寄存器中存储的加速度小于TIME_FF寄存器中指定的时间时,设置FREE_FALL。FREE_FALL中断主要用于检测自由落体运动。因此,FREE_FALL中断与不活动中断的不同之处在于,所有轴始终参与,计时器周期短得多(最长1.28秒),并且始终是直流耦合的。
7. 当FIFO中的样本数量已填满到存储在SAMPLES寄存器中的值时,将设置水印。当读取FIFO并将其内容清空到SAMPLES寄存器中存储的值以下时,它会自动清除。
注意:ADXL345中的FIFO寄存器具有四种工作模式:旁路、FIFO、流和触发;最多可存储 32 个样品(X、Y 和 Z 轴)。先进先出功能是一个重要且非常有用的功能;但是,所提出的解决方案不使用FIFO功能,因此不再进一步讨论。
8. 当新数据替换未读数据时,将设置超限。OVERRUN的精确操作取决于FIFO的操作模式。在旁路模式下,当新数据替换 DATAX、DATAY 和 DATAZ 寄存器中的未读数据时,将设置 OVERRUN。在所有其他模式下,当FIFO充满32个样本时,将设置OVERRUN。OVERRUN通过读取FIFO内容来清除,并在读取数据时自动清除。
下降时的加速变化特性
关于跌倒检测原理的主要研究集中在人类跌倒时发生的加速度变化。
图3显示了(a)走下楼,(b)上楼,(c)坐下和(d)从椅子上站起来时发生的加速度变化。跌倒检测器安装在个人身体的皮带上。红色轨迹是 Y 轴(垂直)加速度;平衡时为-1 g。黑色和黄色轨迹分别是 X 轴(向前)和 Z 轴(横向)加速度。它们在平衡时均为 0 g。绿色迹线是矢量和大小,平衡时为 1 g。
a. 走下楼。
b. 走上楼。
c. 坐下。
d. 站起来。
图3.加速度计对不同类型运动的响应。
由于老年人的运动比较慢,在步行运动过程中加速度变化不会很明显。最明显的加速度是在坐下的那一刻Y(和矢量和)的3g峰值。
下降时的加速度完全不同。图 4 显示了意外跌落期间的加速度变化。通过将图 4 与图 3 进行比较,我们可以看到跌倒事件的四个关键差异特征,这些差异可以作为跌倒检测的标准。它们在红色框中标记,并详细说明如下:
图4.下降过程中的加速度变化曲线。
1.跌倒的开始:失重的现象总是发生在跌倒开始时。在自由落体过程中它会变得更加显着,加速度的矢量和将趋向于0 g;这种情况的持续时间将取决于自由落体的高度。尽管普通坠落时的失重不如自由落体时的失重那么显著,但加速度的矢量和仍将大大小于1 g(而在正常条件下通常大于1 g)。因此,这是确定ADXL345的FREE_FALL中断可以检测到的跌落状态的第一个基础。
2.撞击:人体在经历失重后,会撞击地面或其他物体;加速度曲线显示这是一个很大的冲击。这种冲击由ADXL345的活动中断检测到。因此,确定跌倒的第二个依据是紧随FREE_FALL中断之后的 ACTIVITY 中断。
3、善后:一般来说,人体在跌倒并造成冲击后,不能立即起身;相反,它在短时间内保持静止不动(或更长时间作为无意识的可能迹象)。在加速度曲线上,这表现为平线的区间,并由ADXL345的不活动中断检测到。因此,确定跌倒情况的第三个依据是 ACTIVITY 中断之后的不活动中断。
4.跌倒前后比较:跌倒后,个体的身体方向会与跌倒前不同,因此三个轴上的静态加速度将与跌倒前的初始状态不同(图4)。假设跌倒检测器在个人的身体上系有皮带连接,以提供整个加速历史,包括初始状态。我们可以在非活动中断后读取所有三个轴上的加速度数据,并将这些采样数据与初始状态进行比较。在图 4 中,很明显身体侧倒,因为静态加速度从 Y 轴上的 –1 g 变为 Z 轴上的 +1 g。 因此,确定下降的第四个基础是采样数据和初始状态之间的差异是否超过某个阈值,例如 0.7 g。
这些限定条件的组合构成了整个跌倒检测算法,该算法在执行时可以使系统发出适当的警报,指出发生了跌倒。当然,中断之间的时间间隔必须在合理的范围内。通常,FREE_FALL中断(失重)和活动中断(撞击)之间的时间间隔不是很长,除非一个人从非常高的建筑物顶部坠落!同样,活动中断(影响)和不活动中断(基本上静止)之间的时间间隔不应该很长。下一节将给出一个实际示例,其中包含一组合理的值。可根据需要灵活设置相关的中断检测阈值和时间参数。
如果跌倒导致严重后果,例如失去知觉,人体将在更长的时间内保持静止,这种状态仍然可以由不活动中断检测到,因此如果检测到非活动状态,则可以发出第二个严重警报在跌倒后持续定义的很长一段时间。
典型电路连接
ADXL345和微控制器之间的电路连接非常简单。本文 的 测试 平台 使用 ADXL345 和 ADuC7026 模拟微控制器 — 后者 具有 12 位 模拟 I/ O 和 ARM7TDMI MCU。图5显示了ADXL345和ADuC7026之间的典型连接。®2当ADXL345的/CS引脚连接高电平时,ADXL345工作在I2C 模式。SDA和SCL,I的数据和时钟2C总线,连接到ADuC7026的相应引脚。ADuC7026的GPIO连接到ADXL345的ALT引脚,以选择I2ADXL345的C地址和ADXL345的INT1引脚连接到ADuC7026的IRQ输入以产生中断信号。
其他MCU或处理器类型可用于访问ADXL345,其电路连接与图5类似,但ADuC7026还提供数据采集功能,包括多通道模数转换和数模转换。ADXL345数据手册介绍了实现更高数据速率的SPI模式应用。
图5.ADXL345和微控制器之间的典型电路连接。
表 1.ADCL345寄存器功能说明
十六进制地址 |
寄存器 名称 |
类型* | 重置值 | 描述 | 算法中的设置* | 算法中设置的功能 |
0 | DEVID | R0 | 0xE5 | 设备 ID | R0 | |
1-1C | Reserved | 保留,无法访问 | 保留 | |||
1D | THRESH_ TAP | RW | 0x00 | 点击阈值 | 未使用 | |
1E | OFSX | RW | 0x00 | X 轴偏移 | 0x06 | X 轴,从初始化校准中获得偏移补偿 |
1F | OFSY | RW | 0x00 | Y 轴偏移 | 0xF9 | Y 轴偏移补偿,从初始化校准获取 |
20 | OFSZ | RW | 0x00 | Z 轴偏移 | 0xFC | Z轴偏移补偿,从初始化校准中获取 |
21 | DUR | RW | 0x00 | 点击持续时间 | 未使用 | |
22 | LATENT | RW | 000 | 抽头延迟 | 未使用 | |
23 | WINDOW | RW | 0x00 | 点按窗口 | 未使用 | |
24 | THRESH_ ACT | RW | 0x00 | 活动阈值 | 0x20/0x08 | 将活动阈值设置为 2 g/0.5 g |
25 | THRESH_ INACT | W | 0x00 | 不活动阈值 | 0x03 | 将不活动阈值设置为 0.1875 g |
26 | TIME_ INACT | RW | 0x00 | 不活动时间 | 0x02/0x0A | 将非活动时间设置为 2 秒或 10 秒 |
27 | ACT_ IACT_CTL | RW | 0x00 | 活动/不活动的轴启用控制 | 0x7F/0xFF | 启用 X、Y、Z 轴的活动和非活动,其中不活动是交流耦合模式,活动是直流耦合/交流耦合模式 |
28 | THRESH_FF | RW | 0x00 | 自由落体阈值 | 0x0C | 将自由落体阈值设置为 0.75 g |
29 | TIME_FF | RW | 0x00 | 自由落体时间 | 0x06 | 将自由落体时间设置为 30 ms |
2A | TAP_AXES | RW | 0x00 | 点击/双击的轴控制 | 未使用 | |
2B | ACT_TAP _STATUS | RO | 0x00 | 活动来源/点击 | 只读 | |
2C | BW_RATE | RW | 0x0A | 数据速率和功率模式控制 | 0x0A | 将采样率设置为 100 Hz |
2D | POWER_ CTL | RW | 0x00 | 省电功能控制 | 0x00 | 设置为正常工作模式 |
2E | INT_ ENABLE | RW | 0x00 | 中断使能控制 | 0x1C | 启用活动、不活动、自由落体中断 |
2F | INT_ MAP | RW | 0x00 | 中断映射控制 | 0x00 | 将所有中断映射到 Int1 引脚 |
30 | INT_ SOURCE | RO | 0x00 | 中断源 | 反渗透 | |
31 | DATA_ FORMAT | RW | 0x00 | 数据格式控制 | 0x0B | 设置为±16 g测量范围,13位右对齐,高电平中断触发,I2C 接口 |
32 | 数据x0 | RO | 0x00 | X 轴数据 | 反渗透 | |
33 | 数据X1 | RO | 0x00 | 反渗透 | ||
34 | 数据0 | RO | 0x00 | Y 轴数据 | 反渗透 | |
35 | 数据1 | RO | 0x00 | 反渗透 | ||
36 | DATAZ0 | RO | 0x00 | Z 轴数据 | 反渗透 | |
37 | DATAZ1 | RO | 0x00 | 反渗透 | ||
38 | FIFO_ CTL | RW | 0x00 | 先进先出控制 | 未使用 | |
39 | FIFO_ STATUS | RW | 0x00 | 先进先出状态 | 未使用 | |
*RW = 读/写;RO = 只读 |
使用ADXL345简化跌倒检测
表1和图5定义了上述解决方案的算法实现。表中包括每个寄存器的功能,本算法中使用的值如图所示。请参考ADXL345数据手册,了解每个寄存器位的详细定义。
表1中的某些寄存器将具有两个值。这表示算法针对检测的不同方面在这些值之间切换。图 6 是算法流程图。
结论
ADXL345是一款功能强大、功能齐全的加速度计。我们已经描述了一种针对跌倒检测问题提出的新解决方案,该解决方案利用了各种内置的运动状态检测功能和灵活的中断。测试表明,它结合了低算法复杂度和高检测精度。
全部0条评论
快来发表一下你的评论吧 !