可穿戴设备运动手表智能运动手表报告智能手表设计.docx
- 文档编号:28965263
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:21
- 大小:287.54KB
可穿戴设备运动手表智能运动手表报告智能手表设计.docx
《可穿戴设备运动手表智能运动手表报告智能手表设计.docx》由会员分享,可在线阅读,更多相关《可穿戴设备运动手表智能运动手表报告智能手表设计.docx(21页珍藏版)》请在冰豆网上搜索。
可穿戴设备运动手表智能运动手表报告智能手表设计
电子设计大赛
题目名称:
可穿戴设备设计——运动手表
队长姓名:
学校:
联系电话:
通讯地址:
邮政编码:
结题日期:
2014年9月2日
项目组成员:
序号
姓名
性别
年级专业
学号
摘要
本设计是一款智能运动手表,以微控制器ATmega644PA为控制核心,利用PCF8563时钟芯片、三维加速度传感器、温度传感器、气压传感器采集运动数据,并使用OLED显示屏实现显示时间功能、显示温度、气压、海拔高度功能、计步功能,结合蓝牙2.1模块,实现与安卓手机的通信功能;团队开发了一款安卓APP与智能手表结合使用,智能手表可以将数据传送到安卓手机,通过APP对数据进行2次处理,实现运动步数、卡路里消耗量、运动距离、运动时间、运动规律的记录与分析,能根据数据为使用者提供健康方面的建议。
一、任务
制作具备一定创新和实际应用综合功能的可穿戴软硬件电子系统(注:
以软件开发为主的,需结合外部硬件平台实现特定系统功能)
2、系统功能
分析我们的主题,决定我们的设计的系统的功能如下:
1、显示时间、包括年份月份日期、星期以及实时时间;
2、显示温度、气压、海拔高度;
3、记录走路或者跑步步数并显示;
4、将传感器数据传送到安卓手机;
5、安卓手机软件接收数据,存入数据库,对历史数据进行保存;
6、安卓手机软件分析数据,根据用户设定,计算出跑步距离,消耗卡路里等,并储存数据,通过分析历史数据,得出用户的运动状况,并能给用户跑步方便的建议。
7.记录睡觉时的数据,分析睡眠状况;
8、手机短信提醒、来电提醒功能。
三、产品的对象
我们的产品在设计上在保证原有的手表显示时间的基础之上,加上运动模块元素,可以对用户的运动数据采集,配套相应APP,可以实现对运动数据的分析处理。
适合广泛的热爱运动的人群使用,以及广大的旅游爱好者使用。
四、方案论证
为了完成上面所涉及的各种功能,将整个电路分成三个部分:
电源模块、主控模块、传感器模块、显示模块和蓝牙模块。
框图如图1所示。
图1原理方框图
考虑到我们的产品作为一款手表,要充分考虑到产品的体积问题,我们在各个模块的选择上尽可能采用小的部件。
在实现传统手表的功能的基础上加入运动的元素,我们的手表支持运动的功能,就要考虑手表的实用性。
在数据传输方面,我们采用蓝牙传输方式,将运动过程中产生的各类数据通过蓝牙的方式传输到我们的移动终端,从而实现对运动数据的处理。
(1)供电系统
整个系统由3.7V锂电池供电,通过升压模块升到5.0V给单片机以及其他模块使用。
在供电方面的选择上,因为要考虑到手表的体积,我们采用了体积较小的锂电池。
因为采用oled显示,而且还支持手表与移动终端的通信,这样在能耗方面就比传统的手表要大得多,所以选择可以多次充电的锂电池是理想的选择。
锂电池与充放电电路具有保护电路,保证了产品的安全性。
选用的充电器接口为microusb接口,能够与众多的电源设配器使用,增加了产品使用的普遍性。
(2)控制方式的选择
方案一:
采用AT89C51作为控制器
采用AT89C51单片机进行控制。
AT89C51价格低廉,结构简单,而且资料丰富;但是51单片机系统资源有限,8位控制器,运算能力有限,且没有内置AD/DA转换器,需要外接大量外围电路,而且程序的编写相对复杂。
方案二:
采用ATmega644PA作为控制器
采用ATmega644PA单片机进行控制。
ATmega328单片机具有强大功能的8位微控制器,它内部集成8路10为ADC,可以直接用于传感器数据采集,以及数字控制输出;采用ATmega644PA单片机,能将相当一部分外围器件结合到一起,使用方便,抗干扰性能提高。
因此,我们选用方案二。
(3)开发环境的选择
方案一:
AVRstdio开发环境
AVRstdio是ALMEL公司的一个免费集成开发环境,只支持汇编语言。
方案二:
Arduino开发环境
Arduino是一块基于开放源代码的USB接口Simplei/o接口板并且具有使用类似Java,C语言的IDE集成开发环境。
Arduino的理念是开源。
针对周边I/O设备的Arduino编程,很多常用的I/O设备都已经带库文件或者样例程序,在此基础上进行简单的修改,即可编写出比较复杂的程序。
因此,我们选用方案二。
(4)传感器的选择
1.MPU6050
智能手表的记步功能可以通过两种不同方式来实现,
方式A:
通过GPS传感器采集GPS数据,通过分析采集GPS采集回来的经纬度信息,计算得出运动距离,再根据用户设定的步长,来反推步数;这种方式除了可以计步,还能记录实时位置,但是这种方式出来的结果可能不太准确,特别是当跑步距离较短的时候,精准定位难度大,距离计算难道大。
方式B:
通过3D加速度传感器采集加速度数据,步行运动中,垂直和前进产生的加速度与时间大致为一个正弦曲线,而且在某点有一个峰值,其中垂直方向的加速度变化最大,通过对轨迹的峰值进行检测计算和加速度阈值决策,即可实时计算用户运动的步数,还可依此进一步估算用户步行距离。
这种方式计算出来的步数比较准确,方法简单,所以我们采用方式B,传感器用的是MPU6050传感器。
2.BMP180
可用量程:
300hPa至1100hPa(对应海拔-500m到+9000m)
绝对精度最低可以达到0.03hPa,另外还能测量温度值;此传感器可用来采集气压和温度,显示到屏幕上。
(5)显示模块
显示模块考虑LCD显示或者OLED显示,分析如下:
1.OLED是主动放光显示器件,可以实现比LCD更高的效率,更好的视角。
LCD由于开口率,5层透光光学结构限制,其发光的有效率始终超不过10%。
2.OLED是元器件的主动发光器件,就像做集成电路二极管一样,可以做的像素很小,所以分辨率可以很大,加上材料高分子有机材料,能够做成很薄很轻的设计,这是主要的优点,适合用于体积要求较高的可穿戴电子设备。
综合上面分析所以我们选择体积小、省电、实用性大的OLED模块。
(6)通信模块
通信方式的选择可以有多种,例如有线传输和无线传输,考虑到用户使用体验,决定采用无线传输方式,而无线传输方式中适合单片机与安卓智能手机
通信的有蓝牙通信和WIFI通信。
wifi通信模块适合大数据量的传输,而且传输的速度也较快,最大的的弱点就是功耗高,其稳定性也不够高,而蓝牙技术也比较成熟,在短距离传输方面其稳定性要好,而且其功耗也相对较小,可以很方便的实现点对点通信。
作为我们的智能可穿戴的设备,我们尽可能要寻找低功耗的模块,而且我们的设备主要是传送用户的运动信息,信息量不是很大,所需要传送的距离也不是很大,不需要wifi的无线局域网,我们的要求是能够稳定的传送,所以蓝牙模块是我们比较理想的选择。
五、硬件电路
在硬件的选择上,我们均采用了与arduino开发环境兼容的microduino系列模块作为我们的主要硬件电路。
之所以选择该系列的模块,是因为Microduino系列模块体积小、可层叠式搭配使用,总体积将在3CM*3CM*3CM之内。
在我们的设计的手表的可接受范围之内,总的电路的体积不会太大。
Microduino系列模块有常见的各种配套模块,基本符合智能运动手表的需要的硬件支持。
1.核心模块选择了搭载了AtmelATmega644PA的Microduino-Core+,该模块具备了DigitalI/O数字输入/输出端共0~23,A0~A7。
AnalogI/O模拟输入/输出端共A0~A7。
支持六路PWM输出端口,支持ISP下载功能。
三路路外部中断。
主控芯片的最小系统:
2.采用Microduino系列的矢量传感器模块,集成了磁场强度强度传感器,气压传感器,三轴加速度传感器以及三轴陀螺仪,并且可通过I2C接口与Core/Core+核心模块通信。
利用该模块所具有的传感器,就可以实现我们的对温度、气压、海拔以及运动步数的测量。
磁场强度传感器(HMC5883L)
3.三轴加速度+三轴陀螺仪传感器(MPU6050),此模块为实现手表计步等功能的主要模块,通过读取加速度数据,可以得到运动时的震动曲线,通过对曲线的分析可以得出运动状态。
另外,若用户睡眠时戴着手表,我们能通过读取加速度数据来判断使用者的睡眠状况。
4.Microduino-BT模块是一块支持蓝牙串口透明传输模块,利用该模块可以实现我们的运动手表与移动终端设备的通信,把数据传给手机,通过手机端的APP对用户的运动数据进行处理,从而反映出用户的运动状况。
蓝牙与手机的通信电路图:
5.Microduino-RTC时钟模块是基于PCF8563芯片的时钟模块,模块还附加AT24c32芯片,提供额外的EEPROM功能。
IIC接口通信。
超级电容提供了一定的掉电计时能力。
PCF8563使用一个外部晶体和电容,并有1个中断输出,可以定时触发中断,用途十分广泛。
显示模块Microduino-OLED12864是基于SSD1306的0.96吋12864OLED显示模块。
采用I2C接口,3.3V电源。
Microduino-USB2TTL/zh方便与计算机的通信,通过该模块可以实现对程序的烧写,方便系统的更新以及算法的优化。
用Arduino实现数控功能的框图如图2所示:
图2用ATmega644PA实现数控功能的方框图
六、软件的设计
(1)单片机程序框图
(2)
一、安卓手机客户端程序功能框图
0.内置
自动提醒功能
1.登陆界面
a)动态添加用户选项
b)点击用户选项进行登陆
2.主界面
a)今日计划
p1.展示每日的建议以及统计量
p2.展示每周的计划要求以及统计量
p3.完成度的统计
p4.分享功能
b)计划制定
p1.自定义锻炼计划
共4种方案
/1/以锻炼时间为基准
设置每周的运动时间(小时)
详情:
考虑到以天为单位的锻炼计划缺乏弹性,以周为单位的锻炼计划更加合理。
而且周六日的空闲时间会比较多,所以在今日计划的建议中分配的权重会相对工作日更大。
/2/以跑步距离为基准
设置每周的跑步距离(公里)
详情:
考虑到以天为单位的锻炼计划缺乏弹性,以周为单位的锻炼计划更加合理。
而且周六日的空闲时间会比较多,所以在今日计划的建议中分配的权重会相对工作日更大。
/3/以降低体重为基准
设置计划减低的体重(斤)
设置此计划用时(天)
详情:
考虑到减肥具有很强的目的性,所以提供降低的体重和计划用时两个选项让用户进行选择。
然后在后台利用“动态体重估测模型”(见下)进行模拟,提供参考价值高的建议
/4/以消耗的卡里路为基准
设置每天需要通过运动消耗的卡路里(卡路里)
详情:
考虑到选择此选项的人会对卡路里的摄入比较关心,所以我们以天为一个设置单位。
p2.已制定的计划
展示已制定的计划
c)历史记录
手段:
读写数据库
p1.展示最近一周(从本周一开始展示)的记录
/1/分类方法:
{
历史记录
{
最近一周内每天的总统计
{
每天的每个时间端的统计
{
每个时间段的各项数据以及各种细节
}
}
}
}
/2/获取最近一周的天气情况结合智能手表中的蓝牙数据,动态显示天气的情况
p2.一周前的记录按照月份进行组织
设计同上,不过进行了一定的简化。
d)健康资讯
p1.自动跳转至一个讲解跑步锻炼相关的知识的网站
3.账号管理界面
a)查看本机的账号,进行更删改查
b)跳转至账号注册界面
4.账号注册界面
a)输入基本数据
b)把用户与智能手表进行绑定
c)把用户的基本信息写入用户信息数据库
5.数据同步界面
a)利用蓝牙进行数据的同步
b)将获得的数据写入数据库
七、算法亮点
1.动态体重估测模型:
对体重变化进行非线性模拟
——对有需要减肥的朋友提供更靠谱的指导
使用固定的减少饮食或增加运动的减肥策略,减肥效果会越来越差,因为减重的效果并非线性递减,而是逐渐趋缓的。
告诉你想在X天内减肥Y千克,饮食跟运动习惯该如何调整,可不是简单的1千克含几千卡热量所以减肥几千克要少吃几千卡这种简单的四则运算。
模型以及算法的详细说明:
2.计步算法:
我们利用了其三轴加速计(x,y,z轴代表方向如图)的特性来分析。
分别用以检测人步行中三个方向的加速度变化。
用户在水平步行运动中,垂直和前进两个加速度会呈现周期性变化,如图所示,在步行收脚的动作中,由于重心向上单只脚触地,垂直方向加速度是呈正向增加的趋势,之后继续向前,重心下移两脚触底,加速度相反。
水平加速度在收脚时减小,在迈步时增加。
因为用户在运动中可能手平持设备或者将设备置于口袋中,所以设备的放置方向不定,为此我们通过计算三个加速度的矢量长度,获得一条步行运动的正弦曲线轨迹。
第二步是峰值检测,我们记录了上次矢量长度和运动方向,通过矢量长度的变化,可以判断目前加速度的方向,并和上一次保存的加速度方向进行比较,如果是相反的,即是刚过峰值状态,则进入计步逻辑进行计步,否则舍弃。
通过对峰值的次数累加可得到用户步行步伐。
最后是去干扰,手持设备会有一些低幅度和快速的抽动状态,或是我们俗称的手抖,或者某个恶作剧用户想通过短时快速反复摇动设备来模拟人走路,这些干扰数据如果不剔除,会影响记步的准确值,对于这种干扰,我们可以通过给检测加上阈值和步频判断来过滤。
算法如下:
for(intm=0;m { accelgyro.getMotion6(&ax,&ay,&az,&gx,&gy,&gz);//读取6050数据 Ax=ax/16384.00; Ay=ay/16384.00; Az=az/16384.00; data_of_N_FFT[m].real=sqrt((Ax*Ax)+(Ay*Ay)+(Az*Az));//输入采样数据 data_of_N_FFT[m].imag=0; } FFT();//③进行FFT计算 //进行低通滤波,滤掉高频部分 for(intii=20;ii //****************************************************** IFFT();//进行IFFT计算 data_of_N_FFT[N_FFT].real=data_of_N_FFT[N_FFT-1].real;//输入采样数据 stepc=stepc+countstep(N_FFT); intcountstep(intn) { intcount=0; intmaxi=0,mini=0; doubledataMAX=IFFT_RESULT(0); doubledataMIN=IFFT_RESULT(0); doubletheTop=IFFT_RESULT(0); doubletheLow=IFFT_RESULT(0); //boolfindTop=0,findLow=0; for(inti=1;i { if(IFFT_RESULT(i)>=dataMAX)//求波峰 {dataMAX=IFFT_RESULT(i); if(IFFT_RESULT(i+1) {//if(i>n-1)count=count+1; theTop=dataMAX; maxi=i; dataMIN=IFFT_RESULT(i);//%重新设置比较的起点 } } if(IFFT_RESULT(i+1)<=dataMIN) { dataMIN=IFFT_RESULT(i); mini=i+1; if(IFFT_RESULT(i+2)>dataMIN)//%%在这个数据比上一个最小值还小时,看下一个值是不是比这个值大,大的话这里的就是波谷 { if(abs(dataMIN-theTop)>0.35&&abs(maxi-mini)>15)//这个阀值目前还没通过实验确定,算法也太过简单待完善 {count=count+2; } dataMAX=IFFT_RESULT(i);//%重新设置比较的起点 } } } returncount; } 八、产品的外包装 在产品的包装上,在保证了把我们的电路包装在一个包装壳的前提下,我们追求我们的外包装的美观,以及能够保证电路系统能够充分的散热,我们对电路的各部分进行了测量,通过proe绘制了我们的外壳的零件图,并最终通过3d打印,把我们的产品的外包装设计了出来。 产品最终的效果图如下: 九、产品的测试 我们对产品进行了多次的测试,将测试的结果与实际进行分析 温度的测试: 我们在不同的时间段选取了室内室外不同的温度情况进行了测试,与用实际的温度计的测量结果进行比较: 温度计(℃) 17.4 20.0 25.0 27.2 31.5 手表测温(℃) 17.5 20.1 25.1 27.4 31.7 通过与实际的温度计的测量结果进行比较,发现我们的手表在温度的测量上与实际温度相比较为接近。 运动步数测量: 我们通过佩戴我们的手表进行测试,分别在步行跟跑步的状态对手表进行测试,结果如下 步行状态: 实际步数(步) 8 15 50 100 200 手表测步(步) 8 16 50 96 192 跑步状态: 实际步数(步) 8 15 50 100 200 手表测步(步) 8 14 46 94 188 测量运动距离: 我们通过多次在100m的跑道上进行测试,结果如下: 实际距离(m) 100 100 100 100 100 手表测距(m) 96 104.0 105.6 97.6 90.0 由于我们的测量距离是相对比较准确的,误差小于6%。 分析: 我们的测量数据主要是通过我们的传感器来收集的,传感器的精度以及算法的设计很大程度上影响测量的结果。 当然电路系统的发热很影响了实际的测量结果。 但是通过分析我们的数据,可以发现我们的测量结果在我们的接受范围之内,可以满足我们对用户运动数据的采集,依据此数据可以分析用户的运动健康状况。 十、总结 通过设计我们的硬件系统,采用各类传感器对我们的用户的运动的数据进行采集,实现了我们的设计初的基本功能。 在通信方面,采用蓝牙技术,实现点对点通信,实现手表与手机等移动终端的数据通信,能将用户的信息发送到手机端。 在手机端,我们开发了配套的APP,用户可以在APP应用程序上登记注册信息,从而实现对个人信息的管理,及时了解运动数据,对用户的身体健康状况进行分析,是广泛群体的好帮手。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 穿戴 设备 运动 手表 智能 报告 设计