- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于三轴加速计运动识别与控制系统
基于三轴加速计的运动识别与控制系统
(华中科技大学 材料科学与工程学院)
摘要:计算机的应用越来越广泛,人机交互也越来越自然。本文设计了基于三轴加速计LIS302的识别与控制系统,采用STM32F407进行数据采集,使用LabVIEW研究并实现了运动分析、模式识别等技术。通过实验测试,设计的运动识别与控制系统能实时监测运动,并准确输出识别结果。
关键字:人机交互 三轴加速计 STM32F407 LabVIEW
引言
人机交互从早期的手工作业阶段到作业控制语言及交互命令语言阶段,随着微软Windows操作系统的出现,人机交互进入了图形用户界面(GUI)阶段,在科技高速发展的今天,网络用户界面,多通道、多媒体的智能人机交互日益兴盛,人与计算机的交互更加友善。通过人的动作实现对虚拟环境的控制,将极大增加用户的体验感,让用户有身临其境的感觉。
系统设计
概要设计
系统只要分为两部分:硬件部分和软件部分。硬件部分:设计基本数据采集电路,将X、Y、Z轴方向的加速度进行采集,通过无线传输装置发送到PC上。软件部分实现对采集的数据分析,特征提取,并输出识别结果,然后根据识别结果做出不同响应。图1 为系统结构图
图1 系统结构图
详细设计
硬件部分:
用于加速度测量选用的传感器是LIS302DL。ST公司的LIS302DL 小型低功耗(低于1mW)MEMS三轴线性加速度计,具有线性的数字输出。包括有传感元件和能通过I2C/SPI串行接口提供测量加速度的IC接口,满刻度量程是±2g/±8g,数据输出速率是100Hz或400Hz。使用3.3V供电,通过SPI进行访问。图2 为加速计数据采集电路
处理器部分由STM32F407VGT6实现。该处理器采用是ARM Cortex?-M4内核以为核心。ARM Cortex?-M4是32位MCU,带有FPU单元,有210 DMIPS,多达1MB FLASH/192+4KB RAM。处理器将获取的数据进行处理,然后通过USART发送到无线传输模块。图3 为STM32F407与无线模块的连接电路。
无线传输模块由高性能单片机加低功耗射频芯片CC1101组成,具有低功耗,支持无线唤醒,传输距离远,体积小,价格便宜等特点。通过两个无线传输模块后,经USB转TTL模块与PC通信。图4 为无线模块与USB转TTL模块的连接电路。
图2 加速计数据采集电路
图3 STM32F407与无线模块连接电路
图4 无线模块与USB转TTL模块的连接
软件部分:
下位机:
三轴加速计LIS302DL和处理器之间的通信通过SPI进行。处理器接收数据后,对数据做简单处理,获取三个方向的偏移值,然后经过类型转换通过USART发送到无线模块,串口模式为半双工模式,设置的波特率为115200,无奇偶校验,停止位1位,对无线模块的设置也是一样。结构框图如图5所示:
传感器的初始化过程分为两个部分。一部分是对传感器的基本配置,如工作模式、数据输出速率、X、Y、Z轴使能;另一部分是对加速计内部的高通滤波器的配置。
数据类型转换及编码。获取的数据为char类型,考虑到X、Y、Z轴数据的区分,需要添加标记字符,定义的数据单元为X_ _Y_ _Z_ _ ,那么就需要将char类型转换成uchar类型然后将数据转换成字符串。最后将字符串通过串口输出。对X轴数据的转换如下:
b1=XOffset+128;
send(X);
send(ConvertToUchar((b1HL[1])4));
send(ConvertToUchar(b1 HL[0]));
其中XOffset是X轴方向加速度的偏移量,ConvertToUchar是将数据转换成文本型字符,由于8位数据可能与标记重复,故将数据分割成两部分(高四位及低四位),这个转换也就是将1为六进制的数据转换成相应的文本。
图5 下位机结构框图
通过串口调试助手检验可以看到串口配置及数据传输都是正确的。
图 6 串口数据接收测试
上位机部分
上位机可以分为三个部分:数据接收及简单处理,动作模式识别和消息处理。这部分皆由LabVIEW实现。
数据接收
图9 串口基本设置
串口的基本配置如图9所示,串口的参数与下位机及无线模块的参数保持一致,程序运行时预读取100字节数据。然后每9个字节读取一次,每次将字符串从‘X’ 处分割,并把上一字符串的后面一部分与后一字符串的前一部分相连接,于是就得到了单元数据的字符串,最后将X、Y、Z轴的数据提取出来并转换成数值数据。这样便完成了数据的接收。
数据处理
三个轴的数据反映了传感器在空间中的运动状态。图10 是静止状态下三个轴的数据与重力加速的关系。
图10 静止状态下
由此可得:
X=G*cosα
Y=G*cosβ
Z=G*cosγ
文档评论(0)