基于ADXL345传感器检测老人意外摔倒的方案

电子说

1.3w人已加入

描述

1 加速度传感器

1.1 定 义

加速度传感器是一种能够测量加速力的电子设备。加速力就是当物体在加速过程中作用在物体上的力,就好比地球引力,也就是重力。加速度计有两种:一种是角加速度计,是由陀螺仪(角速度传感器)的改进的。另一种就是线加速度计。

1.2 加速传感器的工作原理

加速度传感器会接受外界传递的物理性输入,通过感测器转换为电子信号,再最终转换为可用的信息。主要感应方式是对微小物理量的变化进行测量,再通过电压信号来表示这些变化量。

2 三轴加速度传感器ADXL345

2.1 概述

ADXL345是ADI公司推出的基于MEMS技术的数字输出的三轴加速度传感器。ADXL345具有±2g,±4g,±8g,±16g可变的测量范围;最高13 b分辨率测量;固定的4 mg/LSB灵敏度;3 mm×5 mm×1 mm超小封装;40~145 μA超低功耗;标准的I2C或SPI数字接口;32级FIFO存储;以及内部多种运动状态检测和灵活的中断方式等特性。这些特性使其成为一款非常适合用于摔倒检测的加速度传感器。

2.2 工作原理

ADXL345首先由前端感应器件感应测得加速度的大小,然后由感应电信号器件转为可识别的电信号,这个信号是模拟信号。ADXL345集成的A/D装换器将此模拟信号转换为数字信号。在计算机中,数字信号一律用补码的形式表示,在此也一样,A/D转换器输出的是16位的二进制补码。经过数字滤波器的滤波后,在控制和中断逻辑单元的控制下访问32级FIFO,通过串行接口读取数据。ADXL345的控制命令也是通过接收来自串口的读写命令来实现的,这主要是对寄存器的操作。

3 ADXL345与微控制器的通信

ADXL345为用户提供了两种与微控制器的通信方式:SPI和I2C。本文采用基于嵌入式的S3C2410微控制器与三轴加速度传感器ADXL345的连接来详细讲述ADXL345的SPI通信方式。

ADXL345

3.1 ADXL345的SPI通信过程

SPI的最高时钟为5 MHz,通信开始时主MCU选择CS置位,CS复位则通信结束,SCLK由主MCU提供串行时钟。SDI与SDO是串行数据输入与输出,它们分别在时钟的上升沿获取数据。一次通信过程中读写多字节必须要设定MB位(Multiple—byte Bit),在读取完第一个寄存器的数据后ADXL345会自动将地址指向下一个寄存器。ADXL345输出16位二进制补码,每个轴都分配了2 B输出数据寄存器,共6个,地址为0X32-0X27,这样会连续输出6 B数据。但对地址非连续的寄存器进行操作必须通过CS停止通信并单独设定下一个要操作的寄存器地址,然后再建立通信。所以通过SPI读取ADXL345采集的数据只能连续读取6 B数据,然后地址返回0X32继续读取6 B数据。

3.2 S3C2410的接口特点

S3C2410有2个串行外围设备接口(SPI),每个SPI接口都有2个分别用于发送和接收的8位移位寄存器。在SPI通信中,数据同时被发送(串行移出)和接收(串行移入),8位串行数据的传输速率由相关的控制寄存器决定。

SPI的接口特性:与SPI接口协议V2.11兼容;8位用于发送的移位寄存器;8位用于接收的移位寄存器;8位预分频逻辑;查询、中断和DMA传送模式。

3.3 接口连接

根据ADXL345工作原理和S3C2410的接口特点,把S3C2410的SPI配置为主设备,完成对ADXL345的接口设计,硬件连接如图2所示。

ADXL345

SPI MOSI作为主设备的输出,SPI MISO作为主设备的输入,SPI CLK用作SPI通信的串行时钟。且S3C2410支持4种不同的传输格式,可以保证主从设备时序的一致性。

S3C2410的SPI接口操作:通过SPI接口S3C2410可以与ADXL345同时发送和接收8位数据。串行时钟线与两条数据线同步,用于移位和数据采样。

4 老人摔倒检测

4.1 检测原理

将三轴加速度传感器的三个坐标分别与人体坐标相对应,x轴代表人体左右方向加速度变化,y轴代表人体前后方向的加速度变化,z轴代表人体垂直方向的加速度变化。当人在站立或行走状态时,z轴的加速度接近g,x轴和y轴加速度接近0。当人体的摔倒过程中,三个轴的加速度及其矢量和会发生变化,通过设定一定的阈值,判断三个轴向的加速度变化,判断老人是否摔倒。

4.2 ADXL345中断

Free_fall:当加速度值低于一定阈值并且持续超过一定的时间时,Free_fall中断置位。

Activity:当加速度值超过一定阈值时,Activity中断置位。

Inactivity:当加速度值低于一定阈值且持续超过一定时间时,Inactivity中断置位。

4.3 检测判断方案

失重检测:人体摔倒的过程中存在失重现象,虽然没有自由落体时失重现象明显,但加速度矢量和也会小于1g,利用Free_fall中断判断人体摔倒过程中的失重过程,将此作为摔倒状态的第一个判断依据。

撞击检测:人体在摔倒时与地面发生撞击,加速度矢量和会产生一个峰值。利用ADXL345的Activity中断来检测。在此需要设置一个时间的阈值,在失重检测与撞击检测之间,设置时间间隔为200 ms,如果在Free_fall中断后200 ms仍会发生Activity中断,认为人体没有摔倒,也可能是因为弯腰动作造成加速度变化。

静止检测:人体摔倒不会马上站起来,会有一点时间的静止状态。由于人体由垂直变为水平,此时加速度的矢量和会小于某个值。利用ADXL345的Inactivity中断来检测。设置Activity中断与Inactivity中断的时间间隔为2 s,在撞击后的3.5 s内应该有静止状态,如果时

间超时还未产生Inactivity中断,认为没有摔倒。

与初始状态比较检测:人体在摔倒之后与站立时的三个轴向的加速度是不同的。为了进一步检测人体是否摔倒,可以取人体摔倒之前的三个轴向的加速度与摔倒后的加速度进行比较,如果各个轴向的加速度之差超过一定的阈值,判断为一次摔倒。

可以根据人体摔倒过程中加速的变化曲线来设定各个阈值。摔倒过程中的加速度变化曲线如图3所示。

ADXL345

4.4 检测方案流程图

摔倒检测方案流程图如图4所示。

ADXL345

5 结语

本文主要以三轴加速度传感器ADXL345为例,介绍了其工作原理,与微控制器的通信方式及接口连接。通过分析得知三轴加速度传感器ADXL345非常适用于检测人体意外摔倒。最后利用ADXL345的内部中断,提出一种检测老人意外摔倒的方案。利用三轴加速度传感器解决老人意外摔倒检测问题有其重要的科研价值和应用意义。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
李清这 2022-04-22
0 回复 举报
有参考代码吗 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分