复古手环:用开源硬件打造你自己的可穿戴设备

电子说

1.3w人已加入

描述

  

  “复古手环”是开源Arduino可穿戴设备的第二版作品。以我来说,这不该称为“智能手环”,这仅有简单功能罢了。实际上,还不如称之为活动跟踪记录仪……只是“智能手环”这个词对我来说更亲切些。智能手环的重要特征是他们能通过蓝牙和移动设备相连,记录用户工作日程。

  Arduino实现的复古手环只有单一功能,即通过加速计收集数据,然后发到移动设备上,移动设备根据数据计算用户消耗热量和走动步数。功能很简单,也就意味着这个装置结构上比之前的“复古手表”简单,那么根据你的个人品味制作也就变得容易了。

  

  安卓应用使用Arduino复古手环反馈信息计算行走步数,而应用的算法并不复杂。如果你对算法这一块颇有心得,用你自己的算法替代亦可。手机应用储存消耗热量数据,所以你能得到每月/每日/每小时图表报告。不过要提醒的是,Arduino复古手环的内存很小,不能在自身储存信息,它只能在连接到移动设备上工作,也就是说你不能单靠Arduino复古手环收集数据。我认为,这个问题在Arduino改进后将得到很好解决。

  第一步:工作机制

  复古手环由Arduino部分和一个安卓应用组成。

  Arduino部分分为4个主要部分——Arduino板、加速计(MPU-6050)、蓝牙模块(HC-06)、聚合物锂电池(充电板可选)。

  安卓应用也包括4个部分——安卓界面、蓝牙管理、算法部分、后台服务。

  如果Arduino电源开启,并和复古手环应用配对完毕,那么主板将每秒读取加速计数据20次。接着,它将数据每秒发送一次到移动设备上。加速计测量x轴、y轴和z轴数据(20次x3轴),发送它们到移动设备上。安卓应用收到两秒之间的数据进行比对,找出用户在步伐加速上的周期。在用户步伐加速时,就计算为用户踏出了一步。接着,安卓应用根据用户的体重和步数计算消耗的热量,并按月、日和小时进行叠加。

  第二步:准备工作

  

  

  

  

  这里用了下列零件来制作: – Arduino Pro mini 3.3伏 – 加速计/陀螺仪传感器(MPU-6050) – 蓝牙模块(HC-06) – USB异步收发机转接器(FTDI)

  手环部分(硬件)

  Arduino

  我用了“复古手表”上相同的Arduino板,Arduino Pro Mini 3.3伏(ATmega328)。选择它的原因是它能在锂聚合物电池3.7伏电压下工作以及它的尺寸。如果你不介意模块和电池的尺寸,而仅仅拿来测试,那用Arduino Nano板也未尝不可(容易实现和测试)。Arduino Pro Mini以8兆赫频率工作,在5伏时则是16兆赫,但8兆赫的频率就足够了。总的来说,你只需要准备Arduino Pro Mini 3.3伏板和USB异步收发机转接器模块。

  蓝牙

  大部分你能入手的蓝牙模块都是HC-06模块,而且有控制界面板。界面板上有重设按钮、工作状态LED,支持3.3伏或5伏工作电压,就显得比较方便,但尺寸就较大了。而LED不是必须的,而且还耗电。所以我直接就用HC-06模块,忽略界面板。

  加速计

  使用的是MPU-6050加速/陀螺仪传感器模块。如果你有其他类似的加速计,也可以拿来替代。不过这么一来,源代码就要做出改动了。

  电池

  在这里我使用了锂聚合物电池。单芯锂电输出电压为3.7伏,能让Arduino Pro mini正常工作。当然市面上也有不同尺寸和容量大小的电池任君选择。低于100毫安时的电池尺寸小,但不能保证持续供电,而且电量太低的话,启动系统都是个问题。我建议使用带有过充放保护的电池,如果由可拆卸插座的就更好了。

  为了方便,你也可以加上锂电池充电模组,带有USB充电口,从引脚输出电源到Arduino上。

  其他材料

  你需要导线、电烙铁、开关、电池座。而这个组装教程也对你有所帮助。

  安卓部分

  复古手环的安卓程序在安卓4.0环境下运行。如果你的安卓版本低于4.0,或者用的是iPhone的话,呵呵……

  第三步:组装

  

  

  

  图上显示的是除了电池外每个模块组装后的结果。现在FTDI为整个模组供电,所以就不需要电池。

  连接Arduino-蓝牙模块

  如果想知道如何配对测试蓝牙模块,百度之!只要跟着教程对VCC、GND、TXD、RXD引脚接线即可。(VCC接3.3伏、GND接地、TX接D2、RX接D3)

  连接Arduino-加速计(MPU-6050)

  加速计模块使用I2C界面。(VCC接3.3伏、GND接地、SDA接A4、SCL接A5)

  连接Arduino-电池

  供电是很简单的事,只要将正极接入输入端(RAW),负极接地(GND)即可。如果你想带有充电功能,那么就使用锂电池充电模块吧。这是,你应将电池的B+、B-接到充电模块的正负输出上,将输出的正负极分别连到Arduino板的RAW和GND上。

  检查连接

  完成了所有过程后,就轮到下面步骤了。除了电池外,连接了每个部分,电源由FTDI模块供给,在源代码上载和完成测试前就不要连接电池了。当所有测试完成后,断开FTDI模块,将电池连上(或加上充电模块)。

  第四步:手环的Arduino源代码

  在GitHub上你能下载到手环的程序框架

  上载Arduino源代码

  在代码编译完成后,你需要将其上载到Arduino板上。在上载之前,选择主板型号“Arduino Pro mini 3.3伏(ATmega328)”,在上载前按下板上的重设按钮。如果过程失败,就会有下列信息反馈:

  arvdud: stk500_getsync():not in sync: resp=0×00

  显示这段信息的原因通常是:

  1.你在Arduino开发环境里选择的主板类型和实际的不同。 2. TX、RX引脚连接错误。 3. 用作连接TX、RX引脚的串口引脚出错。 4. 板上的启动引导故障。 5. 用户使用了不支持自动重设功能的USB模块。

  对于第一种情况,你需要在Arduino开发环境的[tools 》 board]中选择正确的主板类型;第二种情况,检查TX、RX引脚是否正确连接;改正后如果还是像第三种情况所说的那样,将D0和D1引脚断开连接;第五种情况,你只需按下重设按钮。当你按下Arduino开发环境里的上载按钮后,观察出现的信息,有一个时刻上它会从“Compiling”(编译中)转为“Uploading”(上载中)。如果你看到USB模块上TX/RXLED灯在闪烁,那么表示上载过程正常。比较罕见的是情况4的那种,那你就用一块 UNO板对故障的启动模块进行重写。

  调试

  你需要确定连接好了每个模块,工作无误。首先运行Arduino开发环境的串行监视器,看看加速计是否正常运行。(在完成上载程序代码后,板上的 LED会亮,运行程序试验。)因为下面的源代码有段检错代码,当连接正常时,它应当显示Arduino板发回的数值。没有的话,就证明加速计连接有问题。(在完成所有调试工作后,可以删除检错代码。)

  // Print the raw acceleration values《br》 Serial.print(F(“accel x,y,z: ”)); Serial.print(accel_t_gyro.value.x_accel, DEC); Serial.print(F(“, ”)); Serial.print(accel_t_gyro.value.y_accel, DEC); Serial.print(F(“, ”)); Serial.print(accel_t_gyro.value.z_accel, DEC); Serial.print(F(“, at ”)); Serial.print(iAccelIndex); Serial.println(F(“”));

  现在,轮到检查蓝牙模块。准确连接VCC、GCN引脚后,移动设备扫描下模块应该能被找到。如果在设备列表上看不到HC-06模块,就检查一下电源引脚。完成这步后,是时候检查程序应用部分。

  假设配对过程正常,但程序应用收不到数据,那么就是TX/RX引脚连接出了问题。换个说法,从Arduino到蓝牙模块的数据传输异常。

  第五步:安装运行应用

  

  

  

  

  讲解如何编译及修改安卓源代码会很长,所以这里就掠过了。不过你能在GitHub上下载整个复古手环安卓源代码,并对其进行修改,任意传播,只要保留版权信息即可。在[RetroBand_AndroidRetroBand]文件夹内可以找到安卓应用的源代码。

  我将应用放到了谷歌应用商店上了,只要在上面搜索“RetroBand”就能找到,然后安装。它在安卓4.0系统以上运行。

  安装应用,运行程序,利用复古手环对移动设备程序进行校正,看应用能否成功收到信息。安卓应用有3个列表选单。

  时间轴:这里每小时收集累计消耗热量数据,你能查到每小时、每日、每月消耗热量数据。

  图表:显示加速计收到的数据,并将其绘制为图表,你能看到3轴数据是如何变换的。

  设置:这里配置程序设定,输入自己体重。其他功能将陆续开放。

  成功测试安卓应用的话,连接锂电池,完成接下来的工作。

  复古手环技术参数:

  处理器:ATmega328-3.3v(8MHz),32KB闪存(2KB引导启动共享),2KB内存,1KB EEPROM。

  安卓4.0或以上的专用安卓应用。

  基于步数计算的消耗热量计算功能。

  累计消耗热量数据,将统计数据以每月、每日、每小时方式显示出来。

  实时监测加速计上3轴数据变化。

  开源。

  在下图你能看到产品原型——Arduino、加速计、蓝牙模块、充电模块、锂电池、电源开关的组合体。我故意抹上了一些胶,让它看起来脏兮兮的,但还是能正常工作的。

  第六步:包装

  

  

  

  

  

  

  如果你有一台3D打印机,那就试试看自己设计外壳。这里看到的外壳就是由一台3D打印机打印的。

  第七步:后记

  复古手环是我的第二个作品,”自制智能手表(复古手表)“的后续作。我的智能手环比起其他活动跟踪产品的功能太简单了,但蓝牙模块和加速计是其他作品要用到的基本模块。根据我的程序源代码,你能做出不同的改型。

  我希望本教程对你有所帮助。感谢以下诸位帮我完成这个作品。

  Chang-Han Jeon、Il-Yong Park、Byung-Gyu Kim、KyungReol Ku、Sang-Won Lee、Kyung-Bu Jeong。

  参考个人主页: HardCopyWorld.com

  原文链接 原作:GodsTale

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
WHW2008 2017-08-03
0 回复 举报
英海昕科技推出台湾进口智能手环触摸IC/升压IC,/三轴加速传感器/性价比超好,稳定,抗干扰~~欢迎来电咨询 王先生 134 2398 4687 收起回复
黄伟杰 2017-02-10
0 回复 举报
LIS2DH/LGA-14 现货 三轴加速传感器 有需求的请联系黄生:15014071723! 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分