基于加速度传感器ADXL345的计步器设计.
基于单片机的计步器设计
基于单片机的计步器设计随着人们生活水平的提高和科技的不断进步,智能硬件设备已经成为我们日常生活的一部分。
其中,计步器作为一种监测身体运动的工具,越来越受到人们的喜爱。
而基于单片机计步器的设计,不仅具有较高的精度和稳定性,还能够有效地降低成本。
本文将详细介绍基于单片机计步器的设计思路和实现方法。
计步器作为一种运动监测工具,可以帮助人们有效地监测自己的运动量,进而控制饮食和调整运动计划。
传统的计步器多为机械式或电子式,但其成本较高、体积较大,不利于随身携带。
因此,设计一种低成本、便携式的计步器成为了一项重要需求。
基于单片机的计步器应运而生,成为了满足这一需求的有效解决方案。
基于单片机计步器的核心部件为单片机、加速度传感器和显示屏。
其中,单片机作为控制中心,负责处理加速度传感器采集的数据并控制显示屏的显示;加速度传感器用于监测步行时的加速度变化;显示屏则用于显示步数、距离、时间等数据。
电路连接方面,单片机与加速度传感器、显示屏等部件通过线路连接。
其中,加速度传感器通过AD转换将模拟信号转化为数字信号,再传输给单片机;单片机将处理后的数据传输给显示屏进行显示。
软件设计方面,我们采用C语言编写程序。
程序主要包括数据采集、数据处理和数据显示三部分。
数据采集部分负责读取加速度传感器的数据;数据处理部分将这些数据进行分析和处理,计算出步数、距离、时间等参数;而数据显示部分则负责将处理后的数据显示在显示屏上。
在实现单片机计步器的过程中,首先需要进行实验验证,以确定设计的可行性和稳定性。
实验中,我们需要采集不同步行速度和距离下的加速度数据,并对这些数据进行处理和分析,以得出准确的步数、距离和时间等参数。
实验验证不仅能够帮助我们检验设计的正确性,还能够为后续的实际应用提供参考。
数据采集和处理是单片机计步器的核心环节之一。
在实际应用中,我们需要通过加速度传感器采集步行时的加速度变化数据。
这些数据经过AD转换后,传输给单片机进行处理。
完整版三轴数字加速度传感器ADXL345技术资料
概述:ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达±16g。
数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。
ADXL345非常适合移动设备应用。
它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。
其高分辨率(3.9mg/LSB),能够测量不到1.0。
的倾斜角度变化。
该器件提供多种特殊检测功能。
活动和非活动检测功能通过比较任意轴上的加速度与用户设置的阈值来检测有无运动发生。
敲击检测功能可以检测任意方向的单振和双振动作。
自由落体检测功能可以检测器件是否正在掉落。
这些功能可以独立映射到两个中断输岀引脚中的一个。
正在申请专利的集成式存储器管理系统采用一个32级先进先岀(FIFO)缓冲器,可用于存储数据,从而将主机处理器负荷降至最低,并降低整体系统功耗。
低功耗模式支持基于运动的智能电源管理,从而以极低的功耗进行阈值感测和运动加速度测量。
ADXL345采用3 mm X 5 mmx 1 mm,14引脚小型超薄塑料封装。
对比常用的飞思卡尔的MMZ7260三轴加速度传感器,ADXL345,具有测量精度高、可以通过SPI或I2C直接和单片机通讯等优点。
特性:超低功耗:VS= 2.5 V 时(典型值),测量模式下低至23uA,待机模式下为0.1 g A功耗随带宽自动按比例变化用户可选的分辨率10位固定分辨率全分辨率,分辨率随g范围提高而提高,±16g时高达13位(在所有g范围内保持4 mg/LSB的比例系数)正在申请专利的嵌入式存储器管理系统采用FIFO技术,可将主机处理器负荷降至最低。
单振/双振检测,活动/非活动监控,自由落体检测电源电压范围:2.0 V 至3.6 VI / O电压范围:1.7 V至VSSPI (3线和4线)和I2C数字接口灵活的中断模式,可映射到任一中断引脚通过串行命令可选测量范围通过串行命令可选带宽宽温度范围(-40°C至+85 °C)抗冲击能力:10,000 g无铅/符合RoHS标准小而薄:3 mn X 5 mm x 1 mm,LGA 封装模组尺寸:23*18*11mm (高度含插针高度应用:机器人控制、运动检测过程控制,电池供电系统硬盘驱动器(HDD)保护,单电源数据采集系统手机,医疗仪器,游戏和定点设备,工业仪器仪表,个人导航设备电路功能与优势ADXL345是一款小巧纤薄的低功耗三轴加速度计,可以对高达±6 g的加速度进行高分辨率(13位)测量。
adxl345技术参数
adxl345技术参数ADXL345技术参数ADXL345是一种小型、低功耗的加速度传感器,广泛应用于移动设备、工业自动化和运动控制等领域。
本文将介绍ADXL345的技术参数,包括传感器的工作范围、分辨率、灵敏度、数据输出等方面。
1. 工作范围ADXL345的工作范围指的是传感器能够测量的加速度范围。
该传感器的工作范围为±2g、±4g、±8g和±16g。
其中,g代表重力加速度,约为9.8m/s²。
用户可以根据具体应用需求选择合适的工作范围。
2. 分辨率ADXL345的分辨率指的是传感器可以测量的最小加速度变化值。
该传感器的分辨率为4mg/LSB,即每个最低有效位(LSB)代表4mg的加速度变化。
分辨率越高,传感器能够捕捉到更小的加速度变化。
3. 灵敏度ADXL345的灵敏度指的是传感器对加速度变化的敏感程度。
传感器的灵敏度与工作范围和分辨率相关。
在±2g工作范围下,灵敏度为1LSB=3.9mg;在±4g工作范围下,灵敏度为1LSB=7.8mg;在±8g工作范围下,灵敏度为1LSB=15.6mg;在±16g工作范围下,灵敏度为1LSB=31.2mg。
用户可以根据具体应用需求选择合适的工作范围和灵敏度。
4. 数据输出ADXL345通过数字接口(如I2C或SPI)输出加速度数据。
传感器可以以全分辨率模式输出数据,也可以以10位或8位分辨率模式输出数据。
在全分辨率模式下,传感器的输出数据为13位,可以表示±16g工作范围内的加速度变化。
用户可以根据处理器的要求选择合适的输出分辨率。
5. 数据格式ADXL345以16位二进制补码表示加速度数据。
对于3轴加速度数据,每个轴的数据占据16位,其中高8位和低8位分别表示数据的整数部分和小数部分。
用户可以通过简单的移位和组合操作将这些数据转换为实际的加速度值。
6. 内部采样率ADXL345具有可调节的内部采样率,可以根据应用需求选择合适的采样率。
利用3轴数字加速度计实现功能全面的计步器设计 电子技术
利用3轴数字加速度计实现功能全面的计步器设计电子技术欢迎到访我的豆丁主页:(文档精灵)本文格式为WORD,能编辑和复制,感谢您的阅读。
利用3轴数字加速度计实现功能全面的计步器设计数字加速器计步器计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。
早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。
晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。
如今,先进的计步器利用MEMS(微机电系统)惯性传感器和复杂的软件来精确检测真实的步伐。
MEMS惯性传感器可以更准确地检测步伐,误检率更低。
MEMS惯性传感器具有低成本、小尺寸和低功耗的特点,因此越来越多的便携式消费电子设备开始集成计步器功能,如音乐播放器和手机等。
ADI公司的3轴加速度计ADXL335, ADXL345和ADXL346小巧纤薄,功耗极低,非常适合这种应用。
本文以对步伐特征的研究为基础,描述一个采用3轴加速度计ADXL345的全功能计步器参考设计,它能辨别并计数步伐,测量距离、速度甚至所消耗的卡路里。
ADXL345专有的(正在申请专利)片内32级先进先出(FIFO)缓冲器可以存储数据,并执行计步器应用的相关操作,从而最大程度地减少主处理器干预,为便携式设备节省宝贵的系统功率。
其13位分辨率(4 mg/LSB)甚至允许计步器以合理的精度测量超低速步行(每步加速度变化约55 mg)。
在可用于分析跑步或步行的特征当中,我们选择加速度作为相关参数。
个体(及其相关轴)的运动包括三个分量,分别是前向(滚动)、竖向(偏航)和侧向(俯仰),如图1所示。
ADXL345检测其三个轴x、y和z上的加速度。
计步器处于未知方向,因此测量精度不应严重依赖于运动轴与加速度计测量轴之间的关系。
图1. 各轴的定义欢迎到访我的豆丁主页:(文档精灵)本文格式为WORD,能编辑和复制,感谢您的阅读。
让我们考虑步行的特性。
三轴数字加速度传感器ADXL345技术资料(最新整理)
} 因为 ADXL335 输出的是模拟电压值,所以我们编写程序的时候只要采集输出电压就可以
了,当然要做一些工程项目,准确地测出具体数字的话还需要看一看相关的数据手册进行一 些编写。
下载完程序以后,我们打开串口调试窗口,可以看到窗口上显示我们测试到的数据。当 加速度改变的时候,相应的数字也会发生变化
writeRegister(POWER_CTL, 0x08); } void loop(){ readRegister(DATAX0, 6, values); x = ((int)values[1]<<8)|(int)values[0]; y = ((int)values[3]<<8)|(int)values[2]; z = ((int)values[5]<<8)|(int)values[4]; Serial.print(x, DEC); Serial.print(','); Serial.print(y, DEC); Serial.print(','); Serial.println(z, DEC); delay(10); } void writeRegister(char registerAddress, char value){ digitalWrite(CS, LOW); SPI.transfer(registerAddress); SPI.transfer(value); digitalWrite(CS, HIGH);
pinMode(a1,INPUT); pinMode(a2,INPUT); pinMode(a3,INPUT); Serial.begin(9600); } void loop() { x = analogRead(a1); y = analogRead(a2); z = analogRead(a3); Serial.print("x: "); Serial.print(x, DEC); Serial.print(" "); Serial.print("y: "); Serial.print(y, DEC); Serial.print(" "); Serial.print("z: "); Serial.println(z, DEC); delay(100);
基于某加速度传感器ADXL345地计步器设计
基于某加速度传感器ADXL345地计步器设计设计基于ADXL345加速度传感器的计步器引言:步数计数是生活中常见的功能,如健康手环、智能手机等设备都可以记录我们的步数。
计步器能够帮助我们监控身体健康,鼓励我们进行适量的运动。
本文将介绍一种基于ADXL345加速度传感器的计步器的设计方案。
项目背景:ADXL345是一款高性能的三轴数字加速度传感器,能测量垂直和平行两个轴上的加速度。
通过对加速度的测量和分析,我们可以判断用户的步数。
设计方案:1.硬件设计-ADXL345传感器:ADXL345传感器是设计的核心部件。
它可以通过I2C或SPI接口与微控制器连接。
我们需要将其与微控制器进行连接并获取加速度数据。
-微控制器:我们需要选择一个合适的微控制器来处理传感器数据并计算步数。
一般来说,Arduino或者树莓派是常用的选择。
-电源模块:为了保证计步器的长时间工作,我们需要为整个系统提供稳定的电源。
电池或者电源适配器都可作为供电源。
-显示屏幕:为了让用户能够实时了解自己的步数,我们可以选择一块小型的显示屏,并将步数显示在上面。
2.软件设计-初始化设置:在软件设计的开始阶段,我们需要初始化ADXL345传感器,并配置其工作模式。
我们还需要对步数进行初始化,将其设置为0。
-数据采集:我们需要周期性地从ADXL345传感器中读取数据。
可以选择合适的采样率来确保数据的准确性。
-运动检测:利用加速度传感器的数据,我们可以检测到用户的运动。
当检测到一个运动周期时,我们可以认为用户迈出了一步,并将步数加1-步数计算:根据检测到的运动,我们可以开始计算步数。
我们可以将一连串的运动周期组合成一个步数。
-步数显示:将步数显示在屏幕上,以便用户时刻了解自己的步数。
3.测试与改进-在设计完成后,我们需要进行测试以验证计步器的准确性。
我们可以手动计数自己的步数,并与计步器的显示进行对比。
-如果计步器存在误差,可以通过调整阈值和其他参数来进行改进。
adxl345传感器计步器单片机程序
adxl345传感器计步器单片机程序#include<reg52.h>#include<math.h>#define uchar unsigned char#define uint unsigned int#include <INTRINS.H>#define SlaveAddress 0xA6 //1010 0110 定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改sbit rs=P2^0;sbit rw=P2^1;sbit en=P2^2; //ALT ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A 0011 1010sbit sclk=P1^2;sbit sda=P1^3;sbit stop=P3^2;uchar BUF[8]; //ALT ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A 0011 1010float dis_datax,dis_datay,dis_dataz,acc,acc1=1000;uchar wan,qian,bai,shi ,ge,flag,miao,miao1,n,g,s,b;uint count,count_hou,cishu,v,a;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com) {rs=0;P0=com;delay(5);en=1;delay(5);en=0;}void write_dat(uchar dat) {rs=1;P0=dat;delay(1);en=1;delay(5);en=0;}void init(){rw=0;en=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);// write_com(0x80+0x10);}void conversion(uint temp_data){wan=temp_data/10000+0x30 ;temp_data=temp_data%10000; //取余运算qian=temp_data/1000+0x30 ;temp_data=temp_data%1000; //取余运算bai=temp_data/100+0x30 ;temp_data=temp_data%100; //取余运算 -e----------------eee-eshi=temp_data/10+0x30 ;temp_data=temp_data%10; //取余运算ge=temp_data+0x30;}void delay6us() //6us延时函数{_nop_(); _nop_();}void delay_ms(uint n) //N ms延时函数{uint x,y;for(x=n;x>0;x--)for(y=110;y>0;y--);}/////void ADXL345_Start(){sda = 1; //拉高数据线sclk = 1; //拉高时钟线delay6us(); //延时sda = 0; //产生下降沿delay6us(); //延时sclk = 0; //拉低时钟线}void ADXL345_Stop(){sda = 0; //拉低数据线sclk = 1; //拉高时钟线delay6us(); //延时sda = 1; //产生上升沿delay6us(); //延时}void ADXL345_SendACK(bit ack) {sda = ack; //写应答信号sclk = 1; //拉高时钟线delay6us(); //延时sclk = 0; //拉低时钟线delay6us(); //延时}bit ADXL345_RecvACK(){sclk = 1; //拉高时钟线delay6us(); //延时CY = sda; //读应答信号sclk = 0; //拉低时钟线delay6us(); //延时return CY;}void ADXL345_SendByte(uchar dat) {uchar i;// sclk = 0; //拉低时钟线for (i=0; i<8; i++) //8位计数器{dat <<= 1; //移出数据的最高位sda = CY; //送数据口sclk = 1; //拉高时钟线delay6us(); //延时sclk = 0; //拉低时钟线delay6us(); //延时}ADXL345_RecvACK();}uchar ADXL345_RecvByte(){uchar i;uchar dat = 0;sda = 1;// write_com(0x80);//使能内部上拉,准备读取数据,for (i=0; i<8; i++) //8位计数器{dat <<= 1;sclk = 1; //拉高时钟线delay6us(); //延时dat |= sda; //读数据sclk = 0; //拉低时钟线delay6us(); //延时}return dat;}void Single_Write_ADXL345(uchar REG_Address,uchar REG_data){ADXL345_Start(); //起始信号ADXL345_SendByte(SlaveAddress); //发送设备地址+写信号ADXL345_SendByte(REG_Address); //内部寄存器地址,请参考中文pdf22页ADXL345_SendByte(REG_data); //内部寄存器数据,请参考中文pdf22页ADXL345_Stop(); //发送停止信号}uchar Single_Read_ADXL345(uchar REG_Address){uchar REG_data;ADXL345_Start(); //起始信号ADXL345_SendByte(SlaveAddress); //发送设备地址+写信号ADXL345_SendByte(REG_Address); //发送存储单元地址,从0开始ADXL345_Start(); //起始信号ADXL345_SendByte(SlaveAddress+1); //发送设备地址+读信号REG_data=ADXL345_RecvByte(); //读出寄存器数据ADXL345_SendACK(1);ADXL345_Stop(); //停止信号return REG_data;}void Multiple_read_ADXL345(){uchar i;ADXL345_Start(); //起始信号ADXL345_SendByte(SlaveAddress); //发送设备地址+写信号 1010 0110ADXL345_SendByte(0x32); //发送存储单元地址,从0x32开始 0011 0010ADXL345_Start(); //起始信号ADXL345_SendByte(SlaveAddress+1); //发送设备地址+读信号 1010 0111for (i=0; i<6; i++) //连续读取6个地址数据,存储中BUF{BUF[i] = ADXL345_RecvByte(); //BUF[0]存储0x32地址中的数据if(i == 5) ADXL345_SendACK(1); //最后一个数据需要回NOACKelse ADXL345_SendACK(0); //回应ACK}ADXL345_Stop(); //停止信号delay_ms(10);}void Init_ADXL345() //初始化ADXL345,根据需要请参考pdf进行修改***********************{// delay(500); //上电延时Single_Write_ADXL345(0x31,0x2B); //测量范围,正负16g,13位模式Single_Write_ADXL345(0x2C,0x06); //0000 0110速率设定为6.25 参考pdf13页Single_Write_ADXL345(0x2D,0x08); //选择电源模式参考pdf24页Single_Write_ADXL345(0x2E,0x80); //使能 DATA_READY 中断Single_Write_ADXL345(0x1E,0x00); //X 偏移量根据测试传感器的状态写入pdf29页Single_Write_ADXL345(0x1F,0x00); //Y 偏移量根据测试传感器的状态写入pdf29页Single_Write_ADXL345(0x20,0x05); //Z 偏移量根据测试传感器的状态写入pdf29页}float operation(uchar starti){float dis_data ;int temp;temp=(BUF[starti+1]<<8)+BUF[starti]; //合成数据// write_com(0x80);if(temp<0){temp=-temp;flag=1;}else flag=0; //显示空格dis_data=(float)temp*3.9; //计算数据和显示,查考ADXL345快速入门第4页return dis_data;}void display_x() //显示x轴{conversion(dis_datax); //转换出显示需要的数据write_com(0x80);if(flag==0) write_dat(' ');else write_dat('-');write_dat('X');write_dat(':');write_dat(qian);write_dat('.');write_dat(bai);write_dat(shi);write_dat('g');write_dat(' ');write_dat('v');write_dat(':');write_dat(v/100+0x30);write_dat((v%100)/10+0x30);write_dat(v%10+0x30);}void display_y() //显示y轴{// dis_datay=operation(2);conversion(dis_datay); //转换出显示需要的数据write_com(0x80+8);if(flag==0) write_dat(' ');else write_dat('-');write_dat('Y');write_dat(':');write_dat(qian);write_dat('.');write_dat(bai);write_dat(shi);write_dat('g');write_dat(' ');write_dat('v');write_dat(':');write_dat(v/100+0x30);write_dat((v%100)/10+0x30);write_dat(v%10+0x30);}void display_z() //显示z轴{// dis_dataz=operation(4);conversion(dis_dataz); //转换出显示需要的数据write_com(0x80+0x40);if(flag==0) write_dat(' ');else write_dat('-');write_dat('Z');write_dat(':');write_dat(qian);write_dat('.');write_dat(bai);write_dat(shi);write_dat('g');///gai guowrite_dat(' ');write_dat('v');write_dat(':');write_dat(v/100+0x30);write_dat((v%100)/10+0x30);write_dat(v%10+0x30);}void countstep(){dis_datax=operation(0);dis_datay=operation(2);dis_dataz=operation(4);acc1=acc;acc=sqrt(dis_dataz*dis_dataz+dis_datax*dis_datax+dis_data y*dis_datay) ;if(acc1<990&&acc>1010)// if(fabs(acc-acc1)>140&&miao1!=miao){//if(stop=0)// miao1=miao;count++;}write_com(0x80);conversion(acc);write_dat('A');write_dat(':');write_dat(qian);write_dat('.');write_dat(bai);write_dat(shi);write_dat('g');write_dat(' ');write_dat('v');write_dat(':');write_dat(v/100+0x30);write_dat((v%100)/10+0x30);write_dat(v%10+0x30);write_com(0x80+0x40);write_dat('C');write_dat('o');write_dat('u');write_dat('n');write_dat('t');write_dat(':');write_dat(count_hou/100+0x30);write_dat((count_hou%100)/10+0x30);write_dat(count_hou%10+0x30);}void ADXL345_Measure() //测量角度值并显示{Multiple_read_ADXL345(); //连续读出数据,存储在BUF中countstep();}void main(){unsigned int j,k=1;stop=1;init();TMOD=0X01; //设置定时器0为模式一,即16位计算模式TH0 =(65536-50000)/256;TL0 =(65536-50000)%256;EA=1; //开启总中断ET0=1; //开启定时器0中断TR0=1; //启动定时器0write_com(0x80);write_dat('O');write_dat('N');delay(1500);Init_ADXL345();while(1){if(stop==0) //检测按键K1是否按下{delay(10);//消除抖动if(stop==0){while(k==1){count_hou=j;write_com(0x80);conversion(acc);write_dat('s');write_dat('t');write_dat('o');write_dat('p');write_dat('!');write_dat(' ');write_dat(' ');write_dat(' ');write_dat('v');write_dat(':');write_dat(v/100+0x30);write_dat((v%100)/10+0x30);write_dat(v%10+0x30);EA=0;delay(1000);delay(100);if(stop==0){Init_ADXL345();count=0;k=0;EA=1;}}}count_hou=count;ADXL345_Measure();}}void timeinit(){TMOD=0X01; //设置定时器0为模式一,即16位计算模式TH0 =(65536-50000)/256;TL0 =(65536-50000)%256;EA=1; //开启总中断ET0=1; //开启定时器0中断TR0=1; //启动定时器0}void time0(void) interrupt 1{TH0 =(65536-50000)/256;TL0 =(65536-50000)%256;cishu++;if(cishu>=100){cishu=0;v=(count-a)*12;a=count;}}。
ADXL345加速度传感器实现的计步器算法
/**************************************************************************//** * @file * @brief pedometer demo for EFM32WG_STK3800 development kit ****************************************************************************** * * This file is licensed under the Apache License Agreement. See the file * "LICENSE" for details. * ******************************************************************************/
/** Driver handle instanceБайду номын сангаас */
#define ADXL345I2CADDR
I2CSPM_Init_TypeDef ADXL345Handle = I2CSPM_INIT_DEFAULT; I2CSPM_INIT_DEFAULT; 0xA6 //ALT ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A
定义器件在iic总线中的从地址根据altaddress地址引脚不同修改定义器件在iic总线中的从地址根据altaddress地址引脚不同修改00029
E:\PiBits-master\MPU6050-Pi-Demo\pdm1.c
00001: 00002: 00003: 00004: 00005: 00006: 00007: 00008: 00009: 00010: 00011: 00012: 00013: 00014: 00015: 00016: 00017: 00018: 00019: 00020: 00021: 00022: 00023: 00024: 00025: 00026: 00027: 00028: 00028: 00029: 00030: 00031: 00032: 00033: 00034: 00035: 00036: 00037: 00038: 00039: 00040: 00041: 00042: 00043: 00044: 00045: 00046: 00047: 00048: 00049: 00050: 00051: 00052: 00053: 00054: 00055: 00055: 00056: 00057: 00058: 00059: 00060: 00061: 00062: 00063: 00064: 00065: 00066: 00067: 00068: 00069: 00070:
基于加速度传感器ADXL345的计步器设计
基于加速度传感器ADXL345的计步器设计加速度传感器ADXL345是一种常见的三轴加速度传感器,具有高精度、低功耗和小尺寸等优点,广泛应用于计步器等移动设备中。
本文将详细介绍基于ADXL345的计步器设计。
首先,计步器的原理是通过检测人体行走时脚部的振动来判断步数。
加速度传感器可以检测出人体行走时脚部的振动,并将其转换为电信号。
因此,加速度传感器是计步器设计中必不可少的部件。
在ADXL345的设计中,首先需要进行传感器的连接和初始化设置。
一般情况下,ADXL345通过I2C接口与微控制器连接。
通过初始化配置,设置传感器的工作模式、测量范围和输出数据速率等参数。
接下来是计步算法的设计。
计步算法是计步器的核心部分,它通过分析加速度信号来判断人体的行走状态。
常见的计步算法有峰值检测法、阈值检测法和积分法等。
峰值检测法是最简单和常用的计步算法。
该算法基于人体行走时每一步的特征,当加速度信号超过一定阈值时,即判断为一步。
该方法的优点是简单易懂,但对传感器的灵敏度要求较高,容易受到噪声等干扰。
阈值检测法是一种改进的计步算法,它引入了动态阈值的概念。
通过分析加速度信号的波形特征,可以得出行走时的阈值。
通过动态调整阈值,可以提高计步的准确性。
积分法是一种更精确的计步算法。
该方法通过对加速度信号进行积分,得到速度和位移信号。
然后通过分析速度和位移信号的特征,判断人体的行走状态。
该方法的优点是准确性高,但需要进行复杂的信号处理和运算。
除了计步算法的设计,还需要设计界面和用户交互功能。
计步器的界面通常包括步数显示、消耗卡路里显示、运动距离显示等。
用户可以通过按键进行功能选择和设置。
在硬件设计方面,需要根据实际需求选择适当的微控制器和其他外围电路。
同时,还需要考虑电源管理和电路保护等问题,确保计步器的稳定性和可靠性。
最后,完成计步器的软件设计和调试。
根据计步算法的选择,编写相应的程序进行数据采集和处理。
通过数据的实时显示和对比,可以判断计步算法的准确性和稳定性。
ADXL345实验报告
基于ADXL345加速度传感器的运动检测实验13101002 朱梦雪【实验目的】1、了解ADXL345加速度传感器的工作原理和连接方式;2、掌握传感器的数据存储方式和将数据换算成加速度的方法;3、培养查找资料应用传感器的能力。
【实验原理】1、ADXL345三轴加速度计概述:ADXL345 是ADI (Analog Devices, Inc.)公司于2009 年发布的一款数字式三轴加速度传感器,也是该公司第一款输出数码信号的加速度传感器。
ADXL345 最大量程可以达到±16g,可以进行高分辨率(13位)测量。
数字输出数据为16位二进制补码的形式,可通过SPI(3 线或4线)或者I2C 数字接口访问。
ADXL345的具体应用方法如下:1)可以在倾斜感测应用中测量静态重力加速度,还可以从运动或者振动中生成动态加速度。
它的高分辨率(4mg/LSB)能够分辨仅为0.25°的倾角变化。
2)动态和静态感测功能可以检测有无运动发生,以及在任何轴上的加速度是否超过用户设置的水平。
3)点击感测功能可以检测单击和双击动作。
4)自由落体感测功能可以检测该设备是否正在掉落。
这些功能可以映射到中断信号输出的引脚上。
一个集成的32 级FIFO可储存多达32 个X、Y 和Z 数据样本集,从而最小化对主处理器的影响。
低功耗模式采用智能功率管理模式,并且具有阈值感测和运动加速度测量功能。
ADXL345采用14 引脚塑料封装,具有3mm×5mm×1mm 的小巧纤薄的外形尺寸,是符合RoHS 规定的无铅产品。
2、ADXL345三轴加速度计工作原理:ADXL345 加速度传感器首先由前端感应器件感测加速度的大小,然后由感应电信号器件转为可识别的电信号,这个信号是模拟信号。
ADXL345 中集成了AD 转换器,可以将此模拟信号数字化,我们知道在计算机系统中数字信号一律用补码的形式来表示,在这也是如此,AD转换器输出的是16 位的二进制补码。
基于加速度传感器的计步器
基于加速度传感器的计步器的设计实现第一章:实验任务与原理一、功能需求:设计一个电路可以检测目标物体运动的次数,并且可以在数码管上显示物体运动的次数。
二、原理:加速度传感器,可以感知X,Y,Z三个方向的加速度,当加速度发生变化时产生一个脉冲,因此,每当一个脉冲来到时即发生了一次运动,本实验中,我们只考虑Z方向的变化。
常用的放大器电路是利用运算放大器,添加反馈电阻,根据反馈电阻的比值可以计算出信号的放大倍数,通过调节电阻,改变阻值可以改变放大的倍数。
在运放的负输入端加电阻R1接地,输出接反馈电阻R2接负输入端,则放大倍数为(1+R1/R2)。
.555电路构成的施密特触发器采用电位触发方式,其状态由输入信号电位维持;对于负向递减和正向递增两种不同变化方向的输入信号有不同的阀值电压,,因此可以将脉冲整型。
FPGA是可编程逻辑器件,编写VHDL程序将其下载到FPGA,可以实现相应功能。
利用D触发器检测方波的上升沿,当上升沿到来时,对计数器使能记录数木,然后分别对个位、十位使能,使其显示在七段数码管上。
对于数码管,每一段有相应的驱动,对于高电平有效时,当某一字段的阴极为高电平时,相应字段就不亮。
第二章:设计思路、方法一、系统功能需求分析:需要加速度传感器以及555电路脉冲整型产生方波,需要判断方波上升沿并计数,需要对数码管各位输出交替使能以显示运动次数。
二、方案确定及框图结构说明:当物体向上运动时,会有加速度,利用加速度传感器可以感知这个加速度,并产生一个脉冲。
这个脉冲经放大后由555电路构成的施密特触发器施密特触发器将脉冲整型为方波。
利用FPGA设计程序,,经过检测方波上升沿,上升沿来到则计数,计数后分别对个位、十位编码,并且分频后对数码管的个位、十位以较低的频率交替使能,使在数码管上显示。
设计框图结构为:第三章:硬件原理图设计、装配与调试一、原理图:二、装配成果照片:三、调试结果波形:第四章:FPGA模块程序设计与仿真一、模块HDL程序以及仿真程序:(见附录)三、仿真波形及数据分析:第五章:系统调试及硬件检查系统调试结果图片:第六章:结束语一、过程故障分析与处理:第一,在硬件调试过程中,无法调出方波。
(完整版)三轴数字加速度传感器ADXL345技术资料
概述:ADXL345 是一款小而薄的超低功耗3 轴加速度计,分辨率高(13 位),测量范围达± 16g。
数字输出数据为16 位二进制补码格式,可通过SPI(3 线或4 线)或I2C 数字接口访问。
ADXL345 非常适合移动设备应用。
它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。
其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。
该器件提供多种特殊检测功能。
活动和非活动检测功能通过比较任意轴上的加速度与用户设置的阈值来检测有无运动发生。
敲击检测功能可以检测任意方向的单振和双振动作。
自由落体检测功能可以检测器件是否正在掉落。
这些功能可以独立映射到两个中断输出引脚中的一个。
正在申请专利的集成式存储器管理系统采用一个32 级先进先出(FIFO)缓冲器,可用于存储数据,从而将主机处理器负荷降至最低,并降低整体系统功耗。
低功耗模式支持基于运动的智能电源管理,从而以极低的功耗进行阈值感测和运动加速度测量。
ADXL345 采用3 mm × 5 mm × 1 mm,14 引脚小型超薄塑料封装。
对比常用的飞思卡尔的MMZ7260三轴加速度传感器,ADXL345,具有测量精度高、可以通过SPI或I2C 直接和单片机通讯等优点。
特性:超低功耗:VS= 2.5 V 时(典型值),测量模式下低至23uA,待机模式下为0.1μA 功耗随带宽自动按比例变化用户可选的分辨率10 位固定分辨率全分辨率,分辨率随g 范围提高而提高,±16g 时高达13 位(在所有g 范围内保持4 mg/LSB 的比例系数)正在申请专利的嵌入式存储器管理系统采用FIFO 技术,可将主机处理器负荷降至最低。
单振/双振检测,活动/非活动监控,自由落体检测电源电压范围:2.0 V 至3.6 VI / O 电压范围:1.7 V 至VSSPI(3 线和4 线)和I2C 数字接口灵活的中断模式,可映射到任一中断引脚通过串行命令可选测量范围通过串行命令可选带宽宽温度范围(-40°C 至+85℃)抗冲击能力:10,000 g无铅/符合RoHS 标准小而薄:3 mm× 5 mm× 1 mm,LGA 封装模组尺寸:23*18*11mm(高度含插针高度应用:机器人控制、运动检测过程控制,电池供电系统硬盘驱动器(HDD)保护,单电源数据采集系统手机,医疗仪器,游戏和定点设备,工业仪器仪表,个人导航设备电路功能与优势ADXL345是一款小巧纤薄的低功耗三轴加速度计,可以对高达±16 g的加速度进行高分辨率(13位)测量。
基于加速度传感器的计步器设计
基于加速度传感器的计步器设计作者:李雪梅车爱静高焕明来源:《山东工业技术》2019年第11期摘要:近年来,人们越来越重视养生与身体锻炼,而计步器可以作为检测运动量的重要工具。
提出了一款基于加速度传感器的计步器设计方案,硬件部分用加速度传感器采集加速度信号,然后传输给单片机进行步数统计,最后由LCD显示器直接显示出步数信息。
软件部分采用峰值检测和时间阈值共同实现计步。
实验证明计步器的精确度高、功耗小,鲁棒性强。
关键词:加速度传感器;计步器;单片机;计步算法DOI:10.16640/ki.37-1222/t.2019.11.1190 引言随着生活水平的不断提高,人们越来越关注身体健康,人们可以根据个人的健康情况来订制适合自己的运动量,计步器成为检测运动量的重要工具。
早期的计步器是机械式的,精确度低,逐渐被便携式的电子计步器取代。
通过研究发现,人体在行走的过程中会产生前向、侧向和垂直三个方向的加速度,而三轴加速度传感器恰好可以采集三个方向的信号数据,因此用ADXL345加速度传感器来采集人体运动时的加速度信息。
1 设计方案基于加速度传感器的计步器硬件电路[1]设计由以下几部分组成:单片机STC89C52与晶振电路和复位电路构成的最小系统,三轴加速度传感器ADXL345,LCD1602显示模块,电源电路。
硬件结构框图如图1所示:单片机STC89C52作为计步器的控制系统,可以对数据进行处理、计算。
三轴加速度传感器ADXL345是一款体积小低成本的传感器,自身集成了信号调理、滤波的功能。
LCD1602作为人机交互界面,功耗低,体积小,用于显示当前的步数、里程等信息。
在人体運动过程中,三轴加速度传感器ADXL345采集人体的加速度信号,经过模数转换,传输给单片机STC89C52,单片机对数据进行处理、计算,然后传输给LCD1602,则运动的步数,里程等信息直观显示出来,整个系统由电源电路供电。
2 工作流程设计由于人体运动时产生3个方向的加速度,每个迈步周期中三个方向的加速度变化特点不同,在完整的一步中,其变化趋势[2]如表1所示:统计步数时需要将采集到的三个数据合成一个总的加速度。
基于传感器的卡路里计步器设计
ACADEMIC RESEARCH 学术研究摘要:计步器是一款广受青睐的日常锻炼进度监控器。
通过它可以激励用户不断突破自我、挑战自己,从而有助于人们强身健体,保持身材。
本款计步器主要有三个特点:其一,软件采用自适应算法实现计步功能,有效避免了错误计步。
其二,它具有超长续航的功能,当整机处于工作状态时的电流只有1-1.5mA,让低功耗成为现实。
其三,它可以通过计算用户的实时运动情况来推测出每个人的健康状况。
而其中人的运动情况可以通过许多不同特性进行分析。
本款计步器采用的传感器是ADXL345,与传统的机械式传感器相比,ADXL345是一款电容式三轴传感器,它可以在用户运动时迅速的采集加速度信号,其采集的信号通过低通滤波器滤波,在经过A/D转换器对信号进行采样收集与转换。
关键词:计步器;用户;传感器;ADXL345一、前言现如今,随着社会的进步和生活水平的不断提高,人们关注的重心也由从前如何解决温饱向现在如何拥有健康的身体转变。
计步器作为一种测量仪器,可以计算出行走的步数和消耗的能量,并可由运行情况来分析人体的健康状况,所以用户可以根据自身情况制定合理的运动方案来健身,因而适用人群更加广泛。
而本款计步器为了适应市场的需求使用更加简单便携,设计为手持式的电子计步器[1]。
二、计步器的原理及意义计步器是当今社会的一种十分流行的健康监测仪器。
通过测量步数、里程数、加速度等数据,再通过计时器计时进而测算出个人消耗的卡路里、速度等,从而可以让用户实时掌握自己每天的运动量是否达标,防止运动过量带来的伤害。
传统的机械式计步器是以二维平面传感器为核心加上电子计数器来测量相关的数值,二维传感器通过用户运动时带来的震动使内部的平衡锤来回划过一个触点,每划过一次就相当于完成一次电路的通断,由此配合电子计数器进而完成路程、消耗热量、速度的换算。
最新的计步器是以三维立体传感器全方位来实现计步,这就意味着全方位感受人体震动,也就是不需要再垂直地面佩带,只要带在身边口袋中,手提包内都可以计步[2]。
基于MEMS加速度传感器的计步器设计
内 容
小
览
1
研究背景:计步器现状
2
研究目的:智能监控
3
研究内容:基本思想Leabharlann 4技术路线:框架结构
研 究
背
景
小D
小E
20 世纪 80 年代以来,美、德、法、 俄等国家的一些公司相继开展微硅陀 螺、微硅加速度计等微型惯性仪表的 研究,美国在 MEMS加速度传感器方 面的研究处于领先水平。
人们越来越注重自己的健康,跑步 成为一种方便而又有效的锻炼方式。 计步器能够对人们的体力活动进行 测量。防止运动量不足,或运动过 量。随着技术的发展,计步器也做 得越来越小,越来越好。
研 究
内
容
(2)计步算法模块
1.人在行走时会有非常明显的竖直方向的加速度,因此在Z轴上具有 明显的加速度,且加速度变化最为明显。利用ADXL345检测和加速 度,再利用STM32对合加速度进行处理。对合加速的进行处理可以 提高精确性,降低佩戴要求。 2.右图是人体行走时腰部加速度信号,利用 ADXL345检测加速度,然后用stm32对信号 进行峰值探测来进行计步,检测到一次峰值 说明人已经走了一步,为了降低行走过程中 身体颤抖对峰值探测的干扰,我们将考虑引 入时间和幅值双阈值发保证计步的准确性。
技 术
路
线
加速度检测 Stm32对信号进行处理
显示步数和能量消耗 计步器框图 路线框架
技 术
路
线
检测加速度
ADXL345时时检测到的X,Y,Z 轴的加速度变化情况。
Stm32 处理
计步算法,能量消耗,跌倒识别。
人机交互
LCD液晶触摸屏显示。在计步器触摸屏上设计少 量的按键,以便更好地使用。
谢谢
加速度传感器ADXL345典型应用
加速度传感器ADXL345典型应用编写人CAC版本号Rev.1------------------------------------------------------------------------------------------------------------ 本报告为Analog Devices Inc. (ADI) 亚洲技术支持中心专用,ADI可以随时修改本报告而不用通知任何使用本报告的人员。
如有任何问题请与china.support@ 联系。
------------------------------------------------------------------------------------------------------------Revise HistoryDateRevision Author2013-3-10 Rev.0 CAC此参考设计仅供参考使用此参考设计仅供参考使用,,用于协助ADI 客户进行设计与研发客户进行设计与研发。
ADI 有权在不事先通知的情况下, 随时对所提供的参考设计进行更改随时对所提供的参考设计进行更改。
客户应对其参考或使用该参考设计自行负责客户应对其参考或使用该参考设计自行负责。
请在参考或使用此参考设计前仔细阅读ADI 提供的所有相关资料提供的所有相关资料。
ADI 不对任何参考或使用该参考设计所产生的风险的承担责任用该参考设计所产生的风险的承担责任。
目录1简介 (1)2硬件设计 (1)2.1ADXL345:三轴数字输出i MEMS加速度传感器 (1)2.2系统框图 (2)3单片机固件设计 (3)4PC端软件设计 (3)5快速使用手册 (3)5.1软件安装 (3)5.2硬件连接 (3)5.3固件下载 (3)5.4软件启动及操作 (5)5.4.1Sampling Data Chart (6)5.4.2Pedometer (7)5.4.3Rotation (8)5.4.4Shake (9)5.4.5Tap (10)5.4.6Fall Detection (11)5.4.7Game Controller (12)1简介i MEMS半导体技术把微型机械结构与电子电路集成在同一颗芯片上。
(完整版)三轴数字加速度传感器ADXL345技术资料
概述:ADXL345 是一款小而薄的超低功耗3 轴加速度计,分辨率高(13 位),测量范围达± 16g。
数字输出数据为16 位二进制补码格式,可通过SPI(3 线或4 线)或I2C 数字接口访问。
ADXL345 非常适合移动设备应用。
它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。
其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。
该器件提供多种特殊检测功能。
活动和非活动检测功能通过比较任意轴上的加速度与用户设置的阈值来检测有无运动发生。
敲击检测功能可以检测任意方向的单振和双振动作。
自由落体检测功能可以检测器件是否正在掉落。
这些功能可以独立映射到两个中断输出引脚中的一个。
正在申请专利的集成式存储器管理系统采用一个32 级先进先出(FIFO)缓冲器,可用于存储数据,从而将主机处理器负荷降至最低,并降低整体系统功耗。
低功耗模式支持基于运动的智能电源管理,从而以极低的功耗进行阈值感测和运动加速度测量。
ADXL345 采用3 mm × 5 mm × 1 mm,14 引脚小型超薄塑料封装。
对比常用的飞思卡尔的MMZ7260三轴加速度传感器,ADXL345,具有测量精度高、可以通过SPI或I2C 直接和单片机通讯等优点。
特性:超低功耗:VS= 2.5 V 时(典型值),测量模式下低至23uA,待机模式下为0.1μA 功耗随带宽自动按比例变化用户可选的分辨率10 位固定分辨率全分辨率,分辨率随g 范围提高而提高,±16g 时高达13 位(在所有g 范围内保持4 mg/LSB 的比例系数)正在申请专利的嵌入式存储器管理系统采用FIFO 技术,可将主机处理器负荷降至最低。
单振/双振检测,活动/非活动监控,自由落体检测电源电压范围:2.0 V 至3.6 VI / O 电压范围:1.7 V 至VSSPI(3 线和4 线)和I2C 数字接口灵活的中断模式,可映射到任一中断引脚通过串行命令可选测量范围通过串行命令可选带宽宽温度范围(-40°C 至+85℃)抗冲击能力:10,000 g无铅/符合RoHS 标准小而薄:3 mm× 5 mm× 1 mm,LGA 封装模组尺寸:23*18*11mm(高度含插针高度应用:机器人控制、运动检测过程控制,电池供电系统硬盘驱动器(HDD)保护,单电源数据采集系统手机,医疗仪器,游戏和定点设备,工业仪器仪表,个人导航设备电路功能与优势ADXL345是一款小巧纤薄的低功耗三轴加速度计,可以对高达±16 g的加速度进行高分辨率(13位)测量。
(完整版)三轴数字加速度传感器ADXL345技术资料
概述:ADXL345 是一款小而薄的超低功耗3 轴加速度计,分辨率高(13 位),测量范围达± 16g。
数字输出数据为16 位二进制补码格式,可通过SPI(3 线或4 线)或I2C 数字接口访问。
ADXL345 非常适合移动设备应用。
它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。
其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。
该器件提供多种特殊检测功能。
活动和非活动检测功能通过比较任意轴上的加速度与用户设置的阈值来检测有无运动发生。
敲击检测功能可以检测任意方向的单振和双振动作。
自由落体检测功能可以检测器件是否正在掉落。
这些功能可以独立映射到两个中断输出引脚中的一个。
正在申请专利的集成式存储器管理系统采用一个32 级先进先出(FIFO)缓冲器,可用于存储数据,从而将主机处理器负荷降至最低,并降低整体系统功耗。
低功耗模式支持基于运动的智能电源管理,从而以极低的功耗进行阈值感测和运动加速度测量。
ADXL345 采用3 mm × 5 mm × 1 mm,14 引脚小型超薄塑料封装。
对比常用的飞思卡尔的MMZ7260三轴加速度传感器,ADXL345,具有测量精度高、可以通过SPI或I2C 直接和单片机通讯等优点。
特性:超低功耗:VS= 2.5 V 时(典型值),测量模式下低至23uA,待机模式下为0.1μA 功耗随带宽自动按比例变化用户可选的分辨率10 位固定分辨率全分辨率,分辨率随g 范围提高而提高,±16g 时高达13 位(在所有g 范围内保持4 mg/LSB 的比例系数)正在申请专利的嵌入式存储器管理系统采用FIFO 技术,可将主机处理器负荷降至最低。
单振/双振检测,活动/非活动监控,自由落体检测电源电压范围:2.0 V 至3.6 VI / O 电压范围:1.7 V 至VSSPI(3 线和4 线)和I2C 数字接口灵活的中断模式,可映射到任一中断引脚通过串行命令可选测量范围通过串行命令可选带宽宽温度范围(-40°C 至+85℃)抗冲击能力:10,000 g无铅/符合RoHS 标准小而薄:3 mm× 5 mm× 1 mm,LGA 封装模组尺寸:23*18*11mm(高度含插针高度应用:机器人控制、运动检测过程控制,电池供电系统硬盘驱动器(HDD)保护,单电源数据采集系统手机,医疗仪器,游戏和定点设备,工业仪器仪表,个人导航设备电路功能与优势ADXL345是一款小巧纤薄的低功耗三轴加速度计,可以对高达±16 g的加速度进行高分辨率(13位)测量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于加速度传感器ADXL345的计步器设计摘要:计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。
早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。
晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。
计步器功能可以根据计算人的运动情况来分析人体的健康状况。
而人的运动情况可以通过很多特性来进行分析。
与传统的机械式传感器不同,ADXL345是电容式三轴传感器,由它捕获人体运动时加速度信号,更加准确。
信号通过低通滤波器滤波,由单片机内置A/D转换器对信号进行采样、A/D转换。
软件采用自适应算法实现计步功能,减少误计数,更加精确。
单片机STC89C52控制液晶显示计步状态。
整机工作电流只有1-1.5mA,实现超低功耗。
关键词:计步器;加速度传感器;ADXL345;低功耗0 前言随着社会的发展,人们的物质生活水平日渐提高,人们也越来越关注自己的健康。
计步器作为一种测量仪器,可以计算行走的步数和消耗的能量,所以人们可以定量的制定运动方案来健身,并根据运行情况来分析人体的健康状况,因而越发流行。
手持式的电子计步器是适应市场需求的设计,使用起来简单方便。
计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。
早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。
晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。
电子计步器主要组成部分是振动传感器和电子计数器。
步行的时候人的重心会上下移动。
以腰部的上下位移最为明显,所以记步器挂在腰带上最为适宜。
所谓的振动传感器其实就是一个平衡锤在上下振动时平衡被破坏使一个触点能出现通/断动作,由电子计数器完成了主要的记录与显示功能,其他的属于热量消耗,路程换算均由电路完成。
计步器中一般采用一种加速度计来感受外界的震动。
常用的加速度计原理如下:在一段塑料管中密封着一小块磁铁,管外缠绕着线圈,当塑料管运动时,磁铁由于惯性在管中反向运动,切割线圈,由于电磁感应,线圈中产生电流,人体运动时,上下起伏的加速度近似为正弦过程,线圈的输出电流也是正弦波,测量正弦波的频率就可以得出运动的步数,再计算的出速度,距离,和消耗卡路里。
1 总体方案设计1.1 设计要求(1)掌握加速度传感器ADXL345的工作原理。
(2)掌握LCD1602的工作原理及编程方法。
(3)该系统能够有效的检测人体步行动作。
(4) 能够显示并且记录单位时间内的步数,一段时间内总步数,行走的距离以及消耗的热量。
(5) 使用单片机技术处理数据。
1.2 单片机芯片的选择方案和论证采用AT89S51芯片作为硬件核心,内部具有4KB ROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,所以在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
采用STC89C52芯片,STC89C52是一种低功耗、高性能的8位CMOS微控制器,具有8K的可编程Flash存储器。
同样具有AT89S51的功能,且具有在线编程可擦除技术,当对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏,因此选择采用STC89C52作为主控制系统核心。
1.3 显示模块选择方案和论证方案一:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字合适,采用动态扫描法与单片机连接时,虽然占用的单片机口线少,但连线还需要花费一点时间,所以也不用此种作为显示。
方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,若采用在显示数字显得太浪费,且价格也相对较高,所以在此也不用此种作为显示。
方案三:采用LCD1602液晶显示屏;它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
1602LCD可以显示的内容为16X2,即可以显示两行。
该液晶显示屏的显示功能强大,内置192种字符,可显示大量符号、数字,清晰可见,而且功率消耗小寿命长抗干扰能力强。
综上,在此设计中采用1602液晶显示屏。
1.4 传感器的选择方案和论证方案一:选择机械式振动传感器机械式振动传感器内部有一个平衡锤,当传感器振动时,平衡被破坏,如此会造成上下触点的通断。
佩戴者在跑步过程中,身体起伏重心高低产生变化,计步器内部的振动传感器就会将这一变化转换为数字量送至控制单元,从而获得佩戴者的运动信息。
机械式振动传感器原理简单、精度和成本低,适用于振幅较大的场合。
方案二:选择加速度传感器三轴加速度传感器分为压阻式,压电式和电容式。
加速度的变化能够改变电阻、电压或者电容的变化,从而获得空间位置三个垂直方向的加速度分量。
佩戴者在跑步过程中,身体上下起伏,计步器内部的微控制器读取三轴加速度传感器的三组模拟量,通过计步算法分析,获取运动信息。
三轴加速度传感器具有精度高、反应速度快、通讯协议简单可靠等特点,广泛使用于汽车、数码产品、航天设备等领域。
方案三:选择压力传感器压力传感器是将压力的变化转化为电压的变化。
利用这一特性,可将压力传感器内置在鞋的底部,当用户在行进过程中,压力传感器受到的压力不同(抬脚时脚对鞋无压力,放脚时脚对鞋有持续压力),这样,计步器的主控单元读取压力值,经过计步算法即可判断运动状态。
为选择一款最适合本课题的计步传感器将三种传感器对比如下表:目前内置于鞋底的压力传感器属于柔性传感器。
在2008年北京奥运会上曾将它用于检测运动员的蹬地力、蹬地时间、足底接触形状、运动速度、离心力等信息,以便指导运动员取得更好的成绩。
这种传感器价格昂贵,设计难度较大,不适合本设计。
机械设振动传感器应用于早期的计步器,测量精度低,误判、漏判严重,不符合本课题高精度的设计原则。
随着加速度传感器的工艺逐渐成熟,测量精度也逐渐提高,同时也有很高的灵敏度,功耗已达到微安级别,温度漂移小,具有良好的稳定性,随着市场的大量使用,价格也降了下来,加速度传感器非常适合移动设备应用。
综上,加速度传感器符合本课题的设计理念。
表2列出了不同型号的三轴加速度传感器的特性。
结合价格、功耗和精度等多方面考虑,本课题选择的三轴加速度传感器ADXL345作为计步传感器。
1.5 系统最终方案设计该计步器是由ADXL345加速度传感器、STC89C52单片机以及LCD1602显示屏等组成。
传感器采集数据,经内部A/D转换后,输入单片机内部,将数据处理后输出至液晶显示器显示。
图1 总体方框图2 硬件电路设计2.1 系统硬件概述本电路是以STC89C52单片机为控制核心,该芯片具有在线编程功能,功耗低,能在3.3V的超低压下工作,在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;加速度传感器采用ADXL345,它是一款小而薄的超低功耗3轴加速度计,测量范围达正负16g,数字输出数据为16位的二进制补码格式,可通过SPI(3线或4线)或IIC数字接口访问。
显示模块使用LCD1602液晶显示屏来实现,该显示屏具有低功耗、寿命长、可靠性高,可供显示的字符较多,控制指令简单的特点,其工作电压为5V。
2.2 主要单元电路的设计2.2.1 系统主控制模块的设计本设计中单片机主要负责对外设的控制和各个功能模块间的协调,没有复杂的数据计算,因此,8位的52系列单片机足以胜任,它具有体积小、控制功能强、成本低,易扩展,可靠性好、使用温度范围宽等众多优点。
通常使用的国产STC89C52单片机以其低廉的价格以及较出色的性能成了很多控制系统的首选。
它具有丰富的内部资源,较大的数据存储区和程序存储区。
同时,由于学习52单片机容易上手,指令简单易懂,编程灵活,在本设计中具有较高的应用价值。
一个典型的单片机最小系统一般由时钟电路、复位电路、电源指示灯和外部扩展接口等部分组成,本系统也不例外,当单片机具备了这些最基本的条件后,就可以正常工作了。
STC89C52单片机外部结构图如图2所示。
图2 单片机外部结构图1、复位电路的设计复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态开始工作。
(1)单片机常见的复位电路通常单片机复位电路有两种:上电复位电路,按键复位电路。
上电复位电路:上电复位是单片机上电时复位操作,保证单片机上电后立即进入规定的复位状态。
它利用的是电容充电的原理来实现的。
按键复位电路:它不仅具有上电复位电路的功能,同时它的操作比上电复位电路的操作要简单的多。
如果要实现复位的话,只要按下RESET键即可。
它主要是利用电阻的分压来实现的在此设计中,采用的按键复位电路。
按键复位电路如图3所示。
Q2PNP图3复位电路(2)复位电路工作原理上电复位要求接通电源后,单片机自动实现复位操作。
上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。
RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
上电与按键均有效的复位电路不仅在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作。
2、晶振电路的设计晶振电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。
单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。
通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,如图4中X1、C1、C2。
可以根据情况选择6MHz、12MHz或24MHz等频率的石英晶体,补偿电容通常选择30nF左右的瓷片电容。
图4时钟振荡电路2.2.2计步器传感器采集模块ADXL345的内部功能结构如图5所示,X、Y、Z三个相互正交的方向上的加速度由G-Cell传感器感知,经过容压变换器、增益放大、滤波器和温度补偿后以电压信号输出。
图5 ADXL345内部结构功能框图所谓的G-Cell传感器是由半导体材料(多晶硅)经半导体工艺加工得到,其结构可简化为三块电容极板,如图6。
两端的极板圈定,中间的极板在加速度的作用下,偏离无加速度的位置,这样它到两端极板的距离发生变化,造成电容值的变化.这个变化值经容压变换、增益放大,滤波等后体现在最后的电压输出值上,从而完成对加速度的测量。
图6 G-Cell传感器的物理模型ADXL345的三个相互正交的测量方向如图7,固定在人体上后,这三个方向上的数据意义也就随之确定了。
图7 ADXL345的三测量轴向引脚配置(顶视图):图8引脚功能图ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达±16g。