雷竞技注册
项目

FITBYTE:如何制作ATTINY85动力活动跟踪可穿戴

2017年12月13日通过Demsey柯克伍德

这是一款健康可穿戴设备的原型,当它检测到停滞时,就会振动。

在这个项目中,我们将建立一个可穿戴健康设备的原型,设计为当它检测到停滞时振动。这种设备成本低,可以帮助你保持移动。

我喜欢数据,尤其是当你可以用它来改善你的生活时。但有时少即是多。运动追踪器在帮助你设定目标和跟踪改进方面做得很好,但我个人唯一需要的功能是提醒我要更积极。但当你可以戴着能在你偷懒时振动的多氯联苯出门时,谁还愿意在手腕上戴着一个傻乎乎的手环呢?

每周几次,我会往下看,意识到我已经在我的办公桌冻结了几个小时。这是激发了FITBYTE的原因,这是一个简单的活动跟踪器,当您在预设时间段内时不活动时会通知您。这是一种简单的构建,有一点通孔焊接。成品将适合您的手腕,是一个伟大的谈话启动器,有助于促进我们所有人假装的健康生活方式。

材料清单

示意图

这个项目的核心是ATtiny85,尽管它的体积很小,但却为这个项目带来了足够的冲击力。这个微控制器可以Arduino IDE编程,很容易适合项目,以保持成本和规模较小。有三个模拟输入和两个PWM输出,ATtiny85有足够的I/O为这个项目。

对于我们的活动感知需求,我使用MMA7341LC 3轴加速度计,它在不同的模拟线路上输出每个轴。这个加速计也有一个睡眠模式,可以由微控制器激活,以提高电池寿命。我们的活动提醒将通过一个圆盘振动电机,尽管它的体积很小,但足够强大的感觉,无需引起注意到你的昏昏欲睡的生活方式。我发现一个足够强大的振动,直接驱动电机从小,但可以添加一个小晶体管,以提高振动性能。

一切都可以按照以下接线图进行连接:

请注意:

  1. 电容器C1,C2,C3,C4和电阻器R1和R2包含在用于该项目的MMA7341LC突出板中。
  2. 加速度计的输出阻抗为32k ω,连接ADC的信号输出阻抗应小于10k ω;因此,在模数转换之前最好对模拟信号进行缓冲。

布线

这个项目的很大一部分是形式因素。通过保持组件到最低限度的项目可以适合在两个1“方原型板。这些板足够小,可以很好地安装在普通男性的手腕上(假设我的手腕是普通男性的代表)。一块板将用于电池支架,另一块将用于其余的组件。这两块板子将用几根跳线连接起来,使板子在中间弯曲,使手腕轮廓更好。

最初,我想把电池盒放在原型板的后面,把组件放在前面。然而,这感觉太高了,穿起来不舒服。我建议在实际加热烙铁之前尝试一些组件布局的变化,以确保最好的最终结果。

除CR2032电池座外,所有所选组件都是通孔。电池支架是表面贴装,但它很容易焊接到Protoboard上。我选择使用表面贴装电池座保持轮廓低,因为它看起来比通孔变体更凉爽。

要安装电源板,首先,在板的中间焊一根线。这个焊点应该尽可能小,以减少对其他焊点的压力,并使负极连接到我们的电池。其他焊点可以如下图所示。这些焊锡垫是用来连接表面安装电池连接器的正极。

然后将电池座放置在焊料球上,从电池座卡片顶部施加热量,直到预焊孔在电池座周围回流。这是相对容易的,但它需要一点耐心。焊接电池时要注意不要碰到电池座。这是一个极好的散热片,很快就会变热!

另一块板子将包含项目的有趣部分:ATtiny85单片机、MMA7341LC加速度计、振动电机和电源开关。我发现下面的布局很适合这个项目。我留下了一排焊锡孔自由在右边的带子的附件。你可以连接一个传统的表带与这个项目,但我认为它将是有趣的焊接我自己与一些常见的电子元件。

大多数振动电机有胶粘剂的背景,所以安装是一件轻而易举的事。测量两次,撕下标签一次,你就可以走了。我用电源板上的电源线和地线将两个原型板连接在一起。这也使得活动追踪器在中间弯曲,更好地符合手腕。可以使用额外的跳线,以确保电力电缆没有过度的压力。

这就是在完全焊接在一起后应该如何照顾。值得注意的是,一些扁平管有连接相邻焊盘的​​痕迹。这些很容易用锋利的刀切切割,但如果错过,可以导致严重的头痛。

为了使生活更轻松,我检查了我的电路,因为我焊接以确保所有东西都正确连接。此时,活动跟踪器已完成。如果您将在口袋中携带活动跟踪器或绑在袋子上,它已准备好使用。

额外的步骤:做一个皮带

我计划穿着矿山作为一个更“传统的”活动乐队,所以我决定制作合适的表带。

我买了一根带状电缆用作表带。这可以焊接到以前未使用的垫片上的任何边缘的原型板。

在为我的手腕测量了表带后,我焊接了一排可堆叠的头,以任何一边的表带作为连接两端的方式。

一定要测量正确之前,你修剪电线,使带子适合。如果你把它弄短了一点,或者很多人都戴着这个活动追踪器,可以用一组跳线来拉长皮带。

程序流程

程序背后的想法是如果预定义的计时器耗尽,则通知佩戴者。程序读取加速度计输出信号,将它们与阈值进行比较,如果超出阈值,则重置计时器。以下是代码的简要片段:

const long maxAtRestMinutes = 15;const long maxAtRestSeconds = (maxAtRestMinutes * 60);//用户可以休息的最长时间int accelCenter = 1024/2;// 0g = Vdd/2 int thresholdHigh = 650;//这是一个合适的活动水平(步行)实验int thresholdLow = (2 * accelCenter)-thresholdHigh;// thresholdHigh and Low are centered around 0g void loop{if(activityTimer > maxAtRest) //给提醒得到活动{vibMotor();activityTimer = 0;} if (xVal < thresholdLow || xVal > thresholdHigh ||yVal < thresholdLow ||yVal > thresholdHigh | >0 zVal < thresholdLow >1 >2 zVal > thresholdHigh) {activityTimer = 0;}

这段代码运作良好,但不是很节能。为了提高电池寿命,当我没有检查当前的加速时,我将微控制器和加速度计放入睡眠状态。Attiny85和MMA7341LC都具有低功耗模式,以确保电池排水至少为最小。可以将Attiny85放置预定的时间量,并且每当销7被驱动到逻辑低电平时,MMA7341LC就会睡着。这意味着除非微控制器正在检查加速度数据,否则所有内容都可以保持在低功率状态。

程序大部分时间处于休眠状态,但每分钟醒来一次以监控加速计。在监控加速计时,程序每秒检查一次加速度值,持续5秒。

加速度值将与预先设置的活动阈值进行比较。如果它们超过这个阈值,则重置活动计时器。当活动计时器到期时,振动电机被激活,以提示用户更加活跃。

在执行各种日常活动时,通过试验和错误确定阈值。为简单起见,将所有加速度值与相同的阈值进行比较。我认为这效率低下,未来可能会得到改善。

fitbyte_activity_tracker.zip

结论

我认为这个项目变得非常好!它有助于让我诚实地对我的活动水平 - 并且有一定的魅力。我认为有很多选择可以改善这个项目的硬件和软件方面。让我知道你做了什么,使这个项目在下面的评论中你自己!

6个评论
  • E
    ee_eng 2017年12月29日

    伟大的项目!考虑通过带状电缆腕带将电池电量进行路由,以便在您不穿它时停用设备。

    喜欢的。 回复
  • Siddhesh Kocharekar 2018年1月12日

    这就跟你问声好!
    我真的很欣赏你的工作,也很喜欢这个FitByte项目。我对Arduino之类的东西很熟悉,但我不知道如何将微型AVR程序员与ATtiny85微控制器接口,主要是编程部分。非常感谢你的帮助。

    谢谢!
    Sid。

    喜欢的。 回复