基于加速度传感器的姿态检测及应用系统毕业设计(论文)(编辑修改稿)内容摘要:
图 42 复位电路 图 43 晶振电路 图 44SPI 接口 图 45 无线主机原理图 11 图 46 ADXL345 原理图 通过数据处理,将收集的数据发送到 NRF905,再经过无线方式发送到接收端的NRF905。 而接收端 由 STC89C52 单片机为基准,接上 NRF905,、显示器 LCD12854,。 这样,一个基于加速度传感器的姿态检测系统就基本就位。 首先, ADXL 时刻进行数据变化监测,一旦人体发生失衡跌倒状态触发,使休眠位复位,同时自动跳出休眠模式,并在寄存器 0x32读出 X 轴数据 0、寄存器 0x33 读出 X 轴数据 0x34 读出 Y 轴数据 0、 0x35 读出 Y 轴数据 0x36 读出 Z 轴数据 0、 0x37 读出 Z 轴数据 1。 通过 2 线 IIC 的通信协议接口,将以上数据传送到 Atmega128 单片机内, ATmega128 单片机在内部将接受到的 16 位 AD 转换数据进行处理,将其换算为十进制数据。 由 ADXL345 产生数据到 Atmega128 换算数据这一过程,称其为单次加速度数据。 而人体一个完整的动作,需要多次采集单次加速度数据,并在一定时间范围内进行数据检查和判断。 如果多个单次加速度数据在一定时间内有突然的正向加速度和反向加速度,则可以判定这个数据为跌倒数据,然后 Atmega128 单片机直接将跌倒的代码传到 NRF905 的寄存器中,然后通过控制 NRF905 的寄存器触发无线模块发送端发送数据,也就是跌倒这一事件对应的代码。 直接发送代码的好处是把程序的轻重分工得 到优化,把复杂的任务交给更灵活和敏捷的 AVR 单片机,而反应相对慢、数据存储量少的 STC89C51 则做简单处理,如数据显示、声光报警等。 无线从机 从机控制芯片采用的是 STC89C51。 89C51(STC12C5A08S2)是一种带 4K 字节闪烁可编程可擦除只读存储器( FPEROM— Falsh Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS8 位微处理器,俗称单片机。 单片机的可擦除只读存储器可以反复擦除 1000 次。 该器件采用 ATMEL 高密度非易 失存储器制造技术制造,与工业标准的MCS51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片 12 中, ATMEL 的 89C51 是一种高效微控制器, 89C2051 是它的一种精简版本。 89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 采用 89C51 主要是用来做数据显示的作用和数据接收。 数据显示采用的是 LCD 屏,分辨率为 128 64,内置汉字字符,内置 DCDC 转换电路,免除了外加负压。 当主机代码发到 NRF905 接收模块时,会将代码存储到相应的寄存器并保存。 STC89C51 则在不断 显示数据的同时不断检测 NRF905 是否新数据录入,所以当有新数据录入时, STC89C51 能马上读取数据并做简单处理送到LCD12864 模块接口,进行数据显示,如果代码为跌倒警报,则进行相关声光警报演示。 其资源详细分布如下图 4 4 48 所示。 图 46 89C51 连接图 图 47 复位电路图 13 图 48 无线从机原理图 4. 控主机 14 5 软件设计 人体姿态检测系统的软件设计主要分为三大部分。 第一部分,数据处理部分。 这部分由无线主机控制芯片做软件处理,例如数据读取、数据转移 、数据存储等操作。 第二部分,无线数据传送。 由主从机配合实现,要做到数据稳定、数据交互效率高、程序代码便于维护等要求。 第三部分,数据显示并进行声光警报。 此部分由从机进行处理,数据要求稳定即可。 ICCAVR 与 Keil 集成开发环境 自 ATMEL 公司所研发的 AVR 系列单片机诞生以来,有很多第三方提供 AVR 单片机的集成开发软件,在本设计中,采用 ICCAVR 提供集成开发环境。 ICCAVR 是一种符合ANSI 标准的 C 语言来开发单片机程序的一个工具,功能合适、适用方便、技术支持完善。 ICCAVR 提供了强大的函数库, 字符类型函数、标准输入输出函数、编制库和内存分配函数、数学函数、字符串函数、 BCD 转换函数、存储器访问函数、延时函数、 LCD 函数、 4 40 字符型 LCD 函数、以 8 位外部存储器模式接口的 LCD 显示函数、 IIC 总线函数、 LM75温度传感器函数、 DS1621 温度计函数、 PCF8583 实时时钟函数、 DS1302 实时时钟函数、DS1307 实时时钟函数、单线通讯协议函数、 DS1820/1822 温度传感器函数、 SPI 函数、电源管理函数、格雷码转换函数。 C51 的集成开发环境由 ARM Germany GmbH和 ARM Inc 公司共同发布的 Keilμ Vision4提供。 Keil 集成了各类广泛的工具,包括、 ANSI C 编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心( realtime kernel)。 而且有丰富的程序算法技术支持。 与汇编相比, C 语言在功能上、结构性、可读性、可维护性上都有明显的优势,大大提高了工作效率和减少项目开发周期。 利用这些现成的函数库和集成开发环境的优势,界面如图 51。 图 51 Keil 与 ICCAVR 界面图 主机程序流程 主机控制芯片 Atmega128 主要任务是与 ADXL345 以及 NRF905 进行基于指定通信协 15 议的命令读写。 NRF905 的通信方式只能采用 SPI 通信协议, ADXL345 可以选择 TWI 通信协议和 SPI 通信协议,在此设计中,对于只有一个 SPI 模块的 Atmega128 单片机,需要把 SPI 通信模块的资源分配给 NRF905,而 ADXL345 则使用 TWI 通信方式,这样的分配既能保证无线通讯的及时性和稳定性,也能使加速度数据在一定的速率要求下完整读取,降低了开发难度和开发周期。 图 52 为 Atmega128 软件设计程序流程框图。 图 52 主机软件流程图 从机程序流程 从机由 89C51 单片机来控制,作为无线通信的末端设备。 从机控制器主要任务是接收数据,然后把数据传送到 LCD12864 上做显示,同时写入控制命令,并根据显示的数据进行声光报警。 NRF905 与 89C51 的通信协议和 Atmega128 一样,都是使用 SPI协议,但 89C51采用的是模拟形式去实现 SPI 协议,分配的端口为 P1。 从机还要做显示工作,使用显示屏幕 LCD12864 需要单片机分配 Port 1 和 Port 2 共 16 个端口。 在此基础上,同过 模拟 IIC 协议把收到的数据存储到 24C02d 的 EEPROM 里面,进行数据掉电保存。 图 53 为 51 单片机与 LCD 显示器的程序流程。 NRF905 传送数据 加速度与数据分析 NRF905 初始化 ADXL345 初始化 ADXL 是否有新数据 存储数据 开始 Atmega128 初始化 16 图 53 从机软件流程图 数据传送 NRF905 初始化 LCD12864 初始化 开始 单片机端口初始化 是否接受 新数据 数据显示 新数据是否触发警报 声光警报 17 6 系统调试 系统调试就是在完成硬件构造的情况下,载入应用程序使其实现相应的功能,并且程序一般具有快速响应性、易读性、易转移性,代码优化性、检测便捷性、稳定性等。 系统调试是电子设计过程中占比重相当大的环节,通过有效的调试,可以在验证硬件的过程中不断寻找出以 存在的系统错误、漏洞、瑕疵、警告等。 并检查出硬件设计中是否存在故障以及人为错误。 接下来介绍基于加速度传感器的姿态检测设计应用的系统调试。 无线传感器和加速度传感器安装好以后,首先要用万能表检测一下电源的正负极是否存在短路的情况,检测每个节点是否接触良好,检测芯片插脚是否牢固并且没有短接,硬件一切妥当的话,可以先尝试下载一小段程序进行调试。 用以检查外部设备,如 LED 发光灯、蜂鸣器等。 若此段程序不能达到预期效果,则要寻找问题。 期间可以通过万能表检测硬件电路,通过示波器分析输出输入信号,观察信号的编码、频率、峰值 等,再加上自己的经验分析,一般能在短时间内寻找问题所在,有时候也需要反复推敲测试程序本身的逻辑问题,一旦发生错误要进行修改,知道程序能跑通并且能实现想要的效果为止,不然没法往下做。 在测试程序可以顺利实现目的效果的时候,就要顺着步骤往下调试,把程序慢慢扩充至完整化。 在编写无线通信程序的时候,要写配置 NRF905 的头文件,在这里,可以按照数据手册上的参数进行配置,按照官方的配置参数,一般能取得较好的效果。 本设计先采取简单的触发方式去调试无线通信,也就是通过发送置位信息使接收端的 89C51 单片机的某个 LED 点亮 ,简单的置位程序能去除测试程序的复杂性、错误发生随机性、错误发生不确定性等。 这样做的目的是为了直观地检验无线通信是否可行,而且避免因为所发送的数据复杂而出现错误,而且这样的错误相对来说比较难定位。 当出现错误的时候,只要对NRF905 部分进行调试即可。 无线通信确定无误以后,便可以开始修改无线通信参数配置文档,并在 51 单片机接收端加入 LCD 显示器。 修改无线通信参数配置是为了增加数据位给加速度传感器传输数据,而 LCD 显示器的调试显然是为了方便后面加速度传感器的调试,数据的变化可以及时在 LCD 显示屏展现出来,直观的 数据效果可以为调试提供方便。 系统调试到本阶段,已经完成了无线通信硬件测试、 LCD 显示测试、数据传送测试。 随后就要进行最重要最核心的 ADXL345 调试, 对 ADXL345 数据进行处理。 人体运动的加速度值,会随人体动作不断变化,而且 ADXL345 是先接收模拟值数据再进行 AD 转换,所以,要得到有用的数据,必须进行三级检测。 第一级检测,采用 SVM 算法,对传感器传出的数据进行简单的筛选,该算法具有自我学习能力,把大多类似跌倒的情况积累起来,进行统计。 第二级,对第一级算法的进一步分析,通过比较软件自身设定的阀值来确定该 动作是否跌倒、行走、坐下等,阈值更是根据用户的身高、体重、性别、年龄等信息设置。 第三级,是在第二级处理之后,判断加速度值是否有变化,如果变化,则抛弃前 18 面两级数据,如果没变化,再判断人体倾角状态,从而判断剧烈动作人体是否躺下,进一步确定老人是否已经跌倒。 经反复调试,由 1 台监控主机、 1 台从机和 2 个无线收发器组成的基于加速度姿态检测系统已经完成调试。 上述设备能在 1117 芯片的支持下,得到 电源供电,进行持久的运作。 ADXL345 也按照原计划,按所设定的频率,将加速度数值一次一次读取。 将测得数据传送到 LCD 显示,并处理数据进行声光警报。 实测结果,整个系统最大工作电流为 39mA,休眠状态下电流为。 平衡检测反应在 秒以内 , 信号传输距离最大为 米。 19 7 结论 本项目所研制的基于加速度传感器的人体姿态检测由数据收集主机、数据接收从机、无线通信模块、数据显示模块构成,由 ADXL345 采集三轴加速度, Atmega128 单片机进行整修和数据分析,然后由发送端将数据送到 433Mhz 开放 ISM 频段,通过无线的方式将数据送到接收端单片机,接收端单片机对数据进行简单应用,如声光警报和数据显示。 最后,由无线环境、单片机、传感器、交互器件组成的人体姿态监测系统的完整过程完成。 该项目中核心部分是 Atmega128 单片机,其拥有的驱动能力和片上资源在单片机家族里名列前茅,正因其强大的数据处理能力、多种多样寄存器、丰富的 I/O 接口,提高了整个应用系统的软、硬件设计效率,并最大限度地满足。基于加速度传感器的姿态检测及应用系统毕业设计(论文)(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。