ADXL345是ADI公司的三轴数字加速度传感器,主要应用于消费电子的微型惯性器件,最大可感知土16g的加速度,感应精度可达3.9mg /LSB,倾角测量典型误差小于1°。通过其内置的ADC将加速度信号转换为数字量存放在片内缓冲区,使用SPI总线读取数据。在实际使用中,为提高输出数据的稳定性,设置感应范围为±2 g,感应精度为3.9 mg,可以满足人体动作加速度范围与精度要求。传感器采样速度在6.25~3 200 Hz之间可调,因为无线发送数据需要时间较长,并且低采样速率可以降低噪声干扰,将采样速度设定在100Hz,即10ms输出1组数据。
控制模块由ATmega88单片机及配套电路构成。ATmega88为8位AVR单片机,在3.3 V电压模式下可以工作于8 MHz,片内拥有8 KB Flash与1 KB SRAM。其主要任务为初始化加速度传感器和无线射频芯片,并从加速度传感器中读取测量数据,将数据初步整理后传送至无线射频芯片。
无线射频模块主要由nRF24L01构成,是一款单片射频收发器件,它工作于2.4~2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等。数据传输速率可达1~2 Mb/s。它可以同时支持6个无线器件的接收,由此实现了1组数据接收模块同时接收5组运动测量模块发送的数据。
电源模块使用低压差线性稳压器件(LDO)SP6201,将锂电池的4.2 V电压降至3.3 V,最大可负载200 mA电流,满足设备需要。
2.2 数据接收模块硬件设计
数据接收模块使用芯片CY7C68013A,片内集成USB2.0收发器、串行接口引擎、增强型8051微控制器,数据的传输率可达到56 MB,最大4 K USB端点缓冲区,时钟频率可达48 MHz。由于CY7C68013A本身并没有硬件SPI接口,同时又需要SPI与无线射频模块通信,实际中使用GPIO口软件模拟4线SPI进行通信。CY7C68013A不断扫描无线射频模块状态,当有接收数据到来时,使用SPI接收数据并通过USB上传给计算机。
数据接收模块硬件结构如图5所示。
3 系统软件设计
软件设计主要包括2个部分,动作测量模块主控制器ATmega88的数据采集及发送部分、数据接收模块控制器CY7C68013A的数据接收及上传部分。
3.1 运动测量模块软件设计
使用ATmega88的定时器控制采样时间,由于已经将ADXL345的输出频率定为100 Hz,这里将程序设定为每隔10 ms进行一次采样,采样后将数据发送至无线射频模块进行数据发送,发送成功后进行下一次采样,否则重新发送。测量模块软件流程如图6所示。
3.2 数据接收模块软件设计
数据接收模块CY7C68013A通过不断查询nRF24L01的中断引脚来检测有无数据到来;当有接收数据到时,使用SPI总线读取加速度信息,判断该数据来自哪个发送端,并将数据存放在相对应的USB端点缓冲区,等待上位机取走。若上位机不取数据,旧数据会自动被新数据冲掉,保证数据的实时性。中央处理模块软件流程如图7所示。
4 实验结果与分析
实验中使用面包板模拟人体手臂进行角度测量实验,因为真实手臂平面有一定弧度,测量模块不同的放置位置对测量结果会有影响,而面包板为规则长方体,有非常平坦的一面可以放置测量模块,并且棱角清晰方便进行倾斜角度测量。在具体实验中,模拟测量模块佩戴在右手肘关节外侧的情况,设计2种测试例。右手向右伸臂的动作,如图8所示。右手向前抬臂的动作如图9所示。