百度云智能手环开源方案

方案介绍

智能运动手环是可穿戴设备的一个主要发展方向,国内外均有产品面世。其使用方式为腕部佩戴(可以有其它变种佩戴形式),基本功能为运动记录、睡眠质量检测、时间显示和静音闹钟、与智能手机的配合产生的实用功能(如来电提醒、手机防丢、一键拍照和解锁等)。

百度在国内首先推出咕咚百度云运动手环;2014年1月,与TCL联合推出dulife品牌的Boom Band手环,首次实现旗舰智能手机+智能运动手环配对上市;2014年6月,与OPPO联合推出了与新一代Find旗舰机型匹配的O Band手环。百度自主研发并为您提供了一套智能手环的参考设计方案,包括硬件电路原理、元器件清单、手环的软硬件设计及源代码,匹配的手机App及云存储和服务。基于此方案,您可以快速、免费和低成本的打造出自己的智能手环产品。

经过不断的演进和上市考验,方案非常成熟;基于百度的强大的云计算技术优势,百度的手环方案运动模型的算法精确度高达90%;百度不仅免费开源,还将提供免费的技术支持。

动机

为了繁荣可穿戴设备的生态,推动市场的发展,促进产业链上下游和相关领域的合作,百度决定开放和开源智能手环方案。您可以基于此方案快速打造一个时尚潮流的智能运动手环或类似可穿戴设备,达到以极低成本快速进入市场之目的。

功能及亮点

功能

运动记录

睡眠记录检测

时间显示

来电提醒

百度健康云服务

亮点

8美元的低成本

开放电路原理图

开放元器件清单

开放硬件设计文档

开放ROM源代码以及文档

开放手环与手机的蓝牙通信协议

成功案例

TCL BOOM Band

这是TCL基于百度智能手环方案打造的产品,于2014年1月上市。有运动计步、睡眠监测,来电提醒、蓝牙防丢等功能。

OPPO O band

OPPO O band,OPPO基于百度智能手环方案打造,于2014年6月上市。采用了LED点阵,并且增加了智能拍照功能。

硬件原理

硬件方案总体介绍

百度智能手环基于Nordic公司nRF51822芯片开发,芯片集成BLE蓝牙4.0协议。使用LIS3DH作为加速度传感器,进行运动和睡眠监测。

开源遵循Apache License, Version 2.0,详情参见:http://www.apache.org/licenses/LICENSE-2.0

手环硬件电路设计部分,包括一颗集成BLE功能的MCU(nrf51822),和由MCU控制的各种外设:

  • 蓝牙射频电路;
  • 使用SPI接口的G-sensor;
  • 使用I2C接口的线性马达驱动电路;
  • 使用I2C接口的LED点阵驱动,与线性马达共用总线;
  • 使用GPIO的按键输入;
  • 使用GPIO的LED灯;
  • 使用GPIO的普通马达驱动电路;
  • 外部复位电路。

下图是百度智能手环公版的结构图:

在公版基础上,各家厂商可以根据自己的需求自定义版本,比如LED显示模块以及马达控制模块的选择。

除了上述公版结构图涉及的功能模块以外,手环电源部分的总体设计方案:

  • 充电电路完成5V到电池电压的转换,不充电时保持低功耗;
  • DCDC完成高效率的电池电压到系统电压(2.8V)的转换;
  • 电池保护电路用于完成过流关断、欠压保护等功能;

电路原理图

ROM

智能手环有两种工作模式:正常模式和升级模式。

正常模式下,手环提供产品定义中的所有功能;

升级模式下,手环等待手机端把要升级的ROM通过蓝牙发过来,然后进行升级。空中升级模式(Over--‐the--‐Air)给手环的bug修复、产品优化提供了实现的途径,这也是智能设备必备的功能。

正常模式

智能手环从软件结构上分为应用层、中间件、硬件抽象层,如图所示:

其中闹钟、时间、提醒、计步、睡眠等用户可以直接接触的功能属于应用层。中间件为应用层提供支撑,从底层获取数据和事件,然后进行处理分发给不同的应用模块。

硬件抽象层包含了底层硬件的驱动和暴露给中间件的调用接口,抽象层的目的硬件设备可以比较容易的更换厂家和型号,只要传递给上层的数据格式不变即可。

蓝牙部分硬件抽象层封装在Nordic提供的softdevice中,在此之上,我们使用了两个标准profile:Battery profile来传递电池信息给手机客户端,Device info profile传递设备信息给客户端;其他自定义的数据,如步数、睡眠信息,我们按照数据通信私有协议组帧后,通过串口协议发送给手机客户端,手机客户端再依据数据通信私有协议进行解析。

升级模式(OTA模式)

升级过程如下图所示:

要了解OTA模式需要知道ROM的内存分布,如下图所示,我们使用256KB Flash的51822芯片,分为四个区。

进入OTA后,系统运行在DFU BootLoader中,它从手机端收到新的ROM放在Swap区,接收完毕、校验成功后,将新的ROM从Swap区复制到Application 区,然后重新启动进入Application。

OTA的工程单独提供,编译出来一个bootloader。其工作流程图如下,具体可以参看Nordic SDK的文档。

资料下载

获取源码https://github.com/baiduwearable/duband

资料清单