项目解决方案

  • 格式:docx
  • 大小:422.85 KB
  • 文档页数:15

项目方案解决书项目名称:人体姿态检测小组成员:赵旭管晨霞孟志彬目录一、引言 (3)1.1项目背景 (3)1.2问题的提出 (4) (5) (5)二、系统的架构 (5) (5) (6)三、各模块的实现 (7) (8)下位机的实现 (13) (18) (23)四、总结 (24)一、引言项目背景在上一节中已经讨论讨论了两个趋势,一个是人口老龄化的趋势,一个是老年人口中家庭空巢化的趋势。

在越来越多的老年空巢家庭当中,许多老人的健康保障存在问题。

对于作为监护人的独生子女父母这一代,既要抚养和教育子女,又要赡养和照顾四位老人对他们无疑是非常沉重的负担。

对于社会来说,中国是在经济尚不发达的阶段出现人口的老龄化,社会化福利服务体系的发展水平还比较落后,现阶段国家和社会还无法建立设施先进、服务系统、项目齐全的社会福利服务体系。

而对于老人本身而言,他们也希望能够在自己的家里安居晚年。

因此,老年人由谁来监护和护理已经成为了一个社会问题。

当今计算机通信技术和传感器技术发展迅速,已经应用到了社会生活的个个方面,比如工业控制以及物联网领域,但在人们日常生活中应用相对较少,尤其是在老年人监护系统中。

我们希望能够利用计算机通信技术和传感器技术设计一套老年人体姿态检测系统,通过固定在人体四肢上的传感器来实时捕捉人体姿态的变化,然后通过计算机网络技术将传感器的数据传到计算机控制端,来完成对人体姿态的检测,以此来判断人姿态的变化。

《基于三轴加速度传感器的跌倒检测技术的研究与应用》《无线传感器在人体关节运动姿态检测中的应用》《基于CC2430的ZigBee无线网络节点设计》《PC机与MSP430串口通信实现的方法》《基于MSP430的无线应用》二、系统的架构室内方案:室外方案:表名:子系统列表三、各模块的实现传感器的放置与测量1、手臂上三轴加速度传感器如图所示在人体各个关节上建立相对坐标系,一竖直方向为z轴,确定该轴的竖直方向的运动状态,然后以水平方向建立x轴和y轴。

在手臂上可以按两个传感器s1和s2,分别测量两个关节处得三轴加速度。

先有s1测出其三轴加速度!由此可以确定整个大臂的运动状态!再由大臂s1到s2距离可以计算出s2点的运动状态。

然后由s2侧出的三轴加速度,则可以确定整个小臂的运动状态!2、腿部的运动状态腿部相应的和手臂有些相似但需要安放三个传感器,在脚踝上安放一个加速度传感器,以轴为基点建立三轴坐标,同样,以竖直方向为z轴,以水平方向建立x和y轴,可以测量小腿的三轴方向上的加速度,同样根据小腿的长度,可以确定膝关节处点的运动状态。

相应膝关节上也,以膝盖为基点建立水平方向的x和y轴,以竖直方向建立z 轴,通过测量三个方向的加速度,确定大腿运动状态,同样在臀部关节处安装加速度传感器,可以测量臀部以上身体的大体运动状态!3、腰椎部传感器通过测定腰椎部得加速度变化,可以测定整个腰部的姿态变化,其实这个部分是最重要的。

腰椎部是整个身体的联系,腰部还可以确定肩部关节这个基点的位置,可以通过身体的各个部位之间的距离确定各个点的位置。

、元件:1、传感器飞思卡尔开发的基于 MEMS (微机电系统)的三轴向低重力加速计 MMA7260Q,是一款低成本微型电容式加速度传感器。

该芯片采用了信号调理、单极低通滤波器和温度补偿技术,是一款单芯片设备,具有三轴向检测功能,以极高的灵敏度读取低重力水平的坠落、倾斜、移动、放置、震动和摇摆,使便携式设备能够智能地响应位置、方位和移动的变化。

MMA7260Q 封装尺寸很小,只需较小的板卡空间,另外还提供快速启动和休眠模式。

这些特性使 MMA7260Q 成为采用电池供电便携式电子产品的理想之选。

MMA7260Q 的可选灵敏度允许在、2g、4g 和 6g 的不同范围内进行设计。

它的3μA睡眠模式、500μA 低运行电流、的快速启动响应时间以及的 QFN 小巧包装等其他特性,使围绕 MMA7260Q 的设计活动轻松方便、经济高效。

MMA7260Q传感器MMA7260Q 芯片广泛应用于各领域,对于不同的应用,重力加速度级别应该有不同的选择。

自由落体检测:1~2g,应用于移动硬盘驱动、手机、PC 笔记本和 MP3 播放器。

倾斜控制:1~2g,应用于移动识别、用户界面滚动和游戏。

摇摆:8~10g,应用于电机稳定性。

测震学:~2g,应用于地震检波器和地震开关。

震动检测:2~8g,应用于装运/处理。

步程计:10~20g 应用于跑步和生理学。

由此可见,人体跌倒检测适用的是 1~2g 的级别。

MMA7260Q 三轴加速传感器是检测物件运动和方向的传感器,它根据物件运动和方向改变输出信号的电压值。

各轴的信号在不运动或不被重力作用的状态下(0g),其输出为。

如果沿着某一个方向活动,或者受到重力作用,输出电压就会根据其运动方向以及设定的传感器灵敏度而改变其输出电压。

用 MSP430 单片机的 A/D 转换器读取此输出信号就可以检测起方向。

2、无线收发元件这次使用的信号发送模块是RF2420,该模块是使用TI-Chipcon公司的CC2420无线通信芯片开发而成。

是符合ZigBee技术的高集成度工业用射频收发器件,工作在的ISM 频段,电池消耗低,同时分别给每个发射模块设置地址或是唯一识别的协议头,以此有利于数据的传输,将传感器传出的信号传输到RF2420接收并发送到MSP430的信号接收模块!且给每个传感器分配地址。

汇总到单片机处理,再传给pc机处理!RF2420特点:(1) 采用TI公司的CC2420无线芯片,工作在的ISM和SRD频段.----采用直接序列扩频方式.----工作速率250kbps,码片速率2 MChip/s.----使用O-QPSK调制方式.----高灵敏度(-95dBm).----较低的电流消耗(----抗邻频道干扰能力强(39dB)----内部集成有VCO、LNA、PA以及电源整流器.----采用低电压供电~----输出功率编程可控.标准MAC层硬件支持.----前导码与同步字段自动生成与检测.----CRC-16自动生成与检测.-----空闲信道检测.-----能量检测、接收信号强度与链路质量指示.-----MAC层安全保护(CTR,CBC-MAC,CCM)支持.(3) 采用4线SPI标准接口,便于MCU配置.(4) 独立的128字节RX和128字节TX数据FIFO.(5) 模块采用PCB天线,直线收发距离20-50米,模块尺寸32mm*47mmMSP430系列单片机是目前工业界中性价比高、功耗低的Flash 16位RSIC微控制器。

因此我们的方案是基于MSP430和CC2420的传感器信息自动采集系统,主要包括传感器模块、无线模块、PC终端、室内定位等。

图一为系统的总体结构图。

该系统通过无线模块发送和接收外部无线射频信号,MSP430单片机控制数据的接收、处理、传输,将数据打包后通过串口通信传送至PC 机。

总体结构图1、MSP430与传感器的通信(1) 信息接收: MSP430通过CC2420无线接收来自传感器的信息,同时通过ZigBee 协议的地址分配识别人体不同部位的传感器信息包括:上肢、腰部、下肢。

(2)室内定位:采用射频识别技术。

射频识别技术利用射频方式进行非接触式双向通信交换数据以达到识别和定位的目的。

这种技术作用距离短,一般最长为几十米。

但它可以在几毫秒内得到厘米级定位精度的信息,且传输范围很大,成本较低。

在室内东西南北各安装一个读卡器,读卡器与腰部的CC2430中间进行自动交换信息,然后读卡器将这些信息通过Zigbee传到与MSP430连接的CC2430,进而通过串口通信传给PC机。

2、MPS430单片机与PC机的通信接口电路与上位机进行通信,接收上位机传来的控制指令,并可将采集的信号上传至上位机。

如图1-1,串行口的电平转换器(MAX232ACPE)实现单片机电平与RS232电平的相互转换。

(2)下位机(MSP430单片机)程序设计包括初始化设计、串口中断服务设计和主处理程序设计主处理程序包含初始化、设置串口工作方式、对接收到的数据进行处理以及封装需要发送的数据。

下面是它的程序代码。

//定义串口操作变量char nRev_UART1; // 串口 1 的接收标志char UART1_TX_BUF[60]; // 串口 1 的发送缓冲区char UART1_RX_BUF[60]; // 串口 1 的接收缓冲区int nTX1_Len;char nRX1_Len;char nRX1_Len_temp;char nTX1_Flag;int nSend_TX1;void main(void){int nRes_UART1;int nRes = 0;char UART1_RX_Temp[60];int i;int n;WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗_DINT(); // 关闭中断Init_CLK(); // 初始化时钟Init_Port(); // 初始化端口Init_UART1(); // 初始化串口1_EINT(); // 打开中断for(;;) // 进入处理循环{if(nRev_UART1 == 1) //如果有接收中断{nRev_UART1 = 0;for(i = 0;i < nRX1_Len;i++)UART1_RX_Temp[i] = UART1_RX_BUF[i]; // 将接收到的数据拷贝到临时缓冲区。

nRes = ProcessCMD(UART1_RX_Temp,nRX1_Len);switch(nRes){case 1:nTX1_Len = 3;// 设置中断标志,进入发送中断程序IFG2 |= UTXIFG1;nRX1_Len = 0;break;case 2:nTX1_Len = nRX1_Len + 3;// 设置中断标志,进入发送中断程序IFG2 |= UTXIFG1;nRX1_Len = 0;break;case -1:nTX1_Len = 6;// 设置中断标志,进入发送中断程序IFG2 |= UTXIFG1;nRX1_Len = 0;break;}}}}在上面的程序中主要根据“ProcessCMD(UART1_RX_Temp,nRX1_Len)”对得到的结果进行处理,向PC发送响应数据,如果接收到的数据有错误,则发送“ERROR”。

数据封装完成后,设置“nTx1_Len”的长度,并通过“IFG2 |= UTXIFG1;”发送中断,从而使中断处理程序进行数据发送.上面程序中“ProcessCMD(UART1_RX_Temp,nRX1_Len)”主要处理接收到的数据并返回相应的代码以使主程序处理。