详扒应用Bluetooth Smart技术的全套智能骑行设备的技术细节和应用场景
时间:11-03
来源:互联网
点击:
现代人生活节奏快、生存压力大,锻炼健身就成了必不可少的减压方式,绿色环保的自行车运动自然也就成为了热门健身方式。而随着自行车骑行爱好者和专业运动员对实时数据监测和运动数据分析的需求不断提高, 应用Bluetooth Smart技术的全套智能骑行设备应运而生,下文就详细介绍这些设备的技术细节和应用场景。
为自行车手们开发的Bluetooth Smart设备
为自行车手们开发的标准Bluetooth Smart套件一般包括一个心率监测仪、一个踩踏速率传感器和一个车轮转速传感器。顶级选手还会在自行车的曲柄部安装功率计,来测量选手运动的功率输出。这些设备都能采集数据并发送至安装在车把部位的专用Bluetooth Smart自行车电脑(cycling computer)或装有相应APP的智能手机上。
上图:自行车电脑;下图:速度传感器/踩踏速率传感器/心率监测仪
数据、数据、数据——重要的事情再说三遍!
对于更智能的训练,最重要的必须是数据!(虽然这样讲可能对劳苦飞奔的双腿有点不公平……)
自行车电脑能分析接收到的数据,并将其转化为选手们所需的信息。具体以何种形式、怎样分类、显示哪些信息,则由开发者进行配置,以确保数据被最大化地利用、并得以显示。
自行车电脑通常能够通过家庭网络云服务器同步骑行数据,便于后续通过更完善的网络或移动APP进行更有力的分析和可视化处理。因此数据的使用也可以划分为两个阶段:骑行中和骑行结束后。
收集数据,Bluetooth Smart实现骑行过程中实时监测
心率监测仪的主要工作是计算、并阶段性地报告心率监测结果。如果设备采用的蓝牙配置文件(第二篇中将详细介绍)规定某些数据项为选择性的,那么设备也能够获取这些数据,如消耗多少千焦能量、以及在测量心率的同时测得“RR间期”等。“RR间期”是心电图波形中两个R峰之间的时间间隔,如下图所示。
踩踏速率传感器能够与事件时间戳一同汇报累计曲柄转数,让自行车电脑能够计算踩踏速率的当前值和平均值。
与之类似,车轮转速传感器能够与时间戳一同汇报累计车轮转数,以计算车轮转速的当前值和平均值。它对于自行车手更重要的意义在于,如果自行车电脑中的配置中有精确测量车轮周长的功能,就能测得行车的距离,以及行车速度的当前值和平均值。
Bluetooth Smart助你实现训练目标
一些自行车电脑还能在骑行过程中进行更高级的数据分析和传感器数据显示。小编的PolarV650就能显示五个心率区间时长的柱状图。在骑行过程中,只需要轻触摸屏就能查看。有的自行车手(和跑步者)将心率训练视为改善整体成绩的重要方法之一。柱状图能够快速、简易的查看运动员的实际负荷状态。所有这些功能都基于Bluetooth Smart实时传输的数据。
计时赛选手们都力求以最快的速度、经由相对短的路径完成比赛。这也是训练的好方法。小编常在一条长12英里的环形赛道上进行训练,有时会设定一个尽可能短的完成时间,争取打破自己的记录。在骑行过程中,我可以全程查看当前速度和平均速度。要想打破个人记录,我就必须达到并维持一定的平均速度。为此我只需对比当前速度与平均速度,如果当前速度更快,那么平均速度就会得到提升,反之亦然。这在技术上很容易实现,而且数据的帮助也非常大。
心理激励不可忽视的力量
高质量数据既能对我们产生无意识的影响,也能有意识地帮助我们制定决策。
如果双腿会说话他们一定会反对,不过所有的专业运动员都相信心理作用对运动成绩的巨大影响。蓝牙自行车传感器能够采集数据、并显示于自行车电脑上,这些数据能够对选手产生极大的激励作用。从小编自己的经验来看,如果数字显示目前进展顺利,我就会感觉良好并更有动力继续保持战果;如果数据显示我表现不佳,我会更有意识地进行调整,让双腿发力、扭转现状。
这些给力的数据也能让我在训练和比赛中更好地作出决定。选手们的体力是有限的,因此长赛程中的体力分配就尤为重要,这里也包括何时进食和饮水。而在长距离赛程中,身体在巨大的消耗下作出的生理反馈其实是非常不可靠的。选手们需要确保不能从一开始就一直快速行进,否则赛程后段就会体力不支。他们需要时刻留意行进的距离,为前方艰难的山路赛段保留体力,并在适当的时候进食和饮水,以能量补充。
骑行结束?No,真正的分析才刚刚开始
骑行结束之后,无论是成绩喜人还是糟糕透顶,筋疲力尽的选手们第一想法肯定是赶紧倒地休息。但训练并非就此结束,满怀抱负的自行车手们更希望能够导出数据进行分析,以求日后改进。数据可以从自行车电脑同步至云端,并进行更高级的分析和数据可视化处理。下面就是一张小编今年早些时候的山地骑行数据分析图。
智能手机,口袋里的接收器
Bluetooth Smart还为自行车骑行世界带来的了另一项有趣的功能,那就是让自行车手能够通过各种智能手机APP直接接收和处理自行车传感器采集的数据。当前几乎所有的智能手机都采用了Bluetooth Smart,因此这项功能不难实现。市面上已经有一些采用其他专利无线技术的自行车电脑也添加了Bluetooth Smart 支持,能够接收并显示来自选手衣兜里的智能手机的通知。
哪些配置文件必不可少?
与骑行相关的主要配置文件包括:心率配置文件(Heart Rate Profile)、骑行速度和踩踏速率配置文件(Cycling Speed and Cadence Profile)、骑行功率配置文件(Cycling Power Profile)。
心率配置文件使用通知将心率测量结果传输至向与之相连的GATT客户端。通知中包括的不仅仅是心率数据,稍后小码哥会详细说明。骑行速度和踩踏速率配置文件也使用通知传输数据,每个通知都包含车轮转数或(和)曲柄转数数据。骑行功率配置文件也使用“通知”这一超级有用的属性协议(Attribute Protocol)信息来传输数据。
Bluetooth Developer Studio助力开发
Bluetooth Developer Studio是蓝牙技术联盟新推出的开发工具,是助力开发的神器。其庞大的配置文件、服务、特性和描述符资源库并不局限于之前所提到的。Bluetooth Developer Studio是探索这些配置文件的绝佳工具,让开发者能够通过插件生成代码,迅速进入开发的实施。
Bluetooth Developer Studio
可供下载的智能手机APP
许多配置文件可用的移动应用程序,可以下载并使用。下面列举的三个是适用于安卓系统的移动应用程序:
·Polar Beat
·Wahoo 健身
·北欧半导体BLE nRF 工具箱
开发专属你的炫酷APP
如果你是移动开发者,你一定会想要开发自己的Bluetooth Smart应用,尤其是当蓝牙技术联盟或其他设备制造商发布新的配置文件时。而且,随意结合采用的服务和你自己自定义服务打造自己的自定义配置文件也是完全合法的。
编写代码的种类取决于开发所面向的平台以及开发的是GATT客户端还是GATT服务器。如果你编写的是与自行车或选手身上的一种或多种类型的传感器协同工作的GATT客户端应用,就需要订阅包含所需传感器值的特性的通知,当通知通过Bluetooth Smart从传感器传输至设备时,就可以依照代码对这些通知进行相应处理。
让我们再进一步观察一下这三个配置文件,然后我会陆续穿插一些代码片段。
心率配置文件 (HRM)
这一配置文件包括一项强制性 服务,即心率服务;以及一项选择性 服务,即设备信息服务。心率服务定义了以下几项特性:
心率测量特性值可分解为若干不同的字段,因此接收此特性通知的应用要做的第一件事就是对值数据进行划分。我们可以从Flags 字段的首字符和0-4比特位中了解心率传感器的更多功能,以及特性值其余部分的数据形式。例如,表示每分钟心跳数的心率值可能是8位或16位字段,Flags 字段会以一个特定的通知告诉我们是哪种情况。
一个8位字段能够保存0-225范围的值,对于人的心率来说足够了。一种计算心率理论最大值的方法是220-年龄,所以一个40岁的人心率理论最大值为180。但如果你要用心率测量仪给一只蜂鸟侧心率,那这一数值可能在50-1260跳/每分钟之间,就需要一个16位的值才够。
处理安卓系统中的心率通知
骑行速度和踩踏速率配置文件(CSC)
这一配置文件也有一个强制性的服务,即骑行速度和踩踏速率服务;以及一个选择性的服务,即设备信息服务。CSC服务定义了以下四个特性:
CSC测量特性是应用开发者最感兴趣的,它的值也可以分解为若干个字段。首个字节包括一个Flags 字段, 前两个字节可指示该值是否包含车轮转数数据或(和)曲柄转数数据。车轮转数数据包括一个32位的累计车轮转数,以及一个代表以1/1024为单位最后一次测量车轮事件的时间的16位的值。曲柄数据包括一个16位的曲柄转数累计计数,以及一个类似的16位的最后一个事件的时间字段。有了这些数据,客户端就能够计算自最后一次事件的车轮转动或踩踏的平均速度,即便蓝牙连接在中间发生过中断。如果客户端知道车轮的圆周,那么还可以计算出自最后一次事件之后的行进距离和平均骑行速度。
处理安卓系统中的CSC 通知
骑行功率配置文件(CPP)
这一配置文件定义了四个角色,允许通过两种完全不同的方式使用骑行功率传感器。通常“收集器”可以连接至“CP 传感器”,发现GATT服务和特性并与之互动。但配置也可以把骑行功率传感器设置为“CP广播者“的角色,有一个或多个客户端作为“CP观察者”通过无定向不可连接的GAP广播接收骑行功率数据。在后者的情况下,必须使用Bluetooth Smart传输数据,反之也可以通过蓝牙BR/EDR调用CP 传感器和收集器的角色。
请注意,在不同位置(如自行车左右两侧曲柄)安装、并同时使用多个骑行速率传感器是十分常见的。骑行功率服务的传感器位置特性可以适应这一情况。
这一配置文件定义了一项强制性 服务(即骑行功率服务)以及两项选择性 服务(即数据信息服务和电池服务)。其中骑行功率服务定义了以下5项特性。
以上骑行功率测量时大多数应用都会利用的特性。通知可采用GATT用于从CP传感器向与之相连的采集器传输数据。如果这一特性的服务器特性配置描述符被设置为0x01,特性就能采用GAP广播数据包在服务数据字段中被广播。
测试客户端应用
使用蓝牙开发板生成模拟传感器读数,就可以很更简单地测试与传感器设备协调工作的蓝牙客户端应用。这显然比每次做出改动、安装应用后都要亲自骑车测试便利的多。虽然可能没有亲自骑车那么有趣,但的确非常便利。
我有一些来自不同制造商的开发板,如CSR(已被高通收购)、北欧半导体、蓝兆(已被Silicon Labs收购),它们都包括心率配置文件的实施,可以生成模拟心率数据。北欧半导体SDK还包括CSC配置文件。创建常见的配置文件的模拟时,用心率配置文件做模板即简单、又省事。
适用于北欧半导体nRF1DK的心率配置文件项目
另外,一个叫做LightBlue的iOS和Mac应用能帮助开发者建立Mac、iPhone或iPad的“虚拟外围设备”, 并支持CSC、HRM、骑行功率等多项配置文件。
资源
Bluetooth Developer Studio让开发者能够快速启动开发,使用、设计服务和特性,来打造自己的解决方案。这一工具是无价的资源库,让开发者能够创建自己的服务,并了解采用的服务器如何工作。
北欧半导体有一个非常不错的安卓应用,同时支持心率配置文件、骑行速度和踩踏速率配置文件,以及其他配置文件。源代码还公布于Github上:
我最初便携的两个 Bluetooth Smart APP都是针对BlackBerry 10的心率配置文件、骑行速度和踩踏速率配置文件。两个应用的代码现已开源(Blackberry 10 心率监测仪,Blackberry 10 CSC 监测仪),有需要请上网搜索。
总结
以上就是智能骑行系列全部内容,希望感兴趣的开发者有所收获。有了蓝牙,开发者们能够更好地发挥创意,为自行车选手们打造出让他们惊叹的应用。
为自行车手们开发的Bluetooth Smart设备
为自行车手们开发的标准Bluetooth Smart套件一般包括一个心率监测仪、一个踩踏速率传感器和一个车轮转速传感器。顶级选手还会在自行车的曲柄部安装功率计,来测量选手运动的功率输出。这些设备都能采集数据并发送至安装在车把部位的专用Bluetooth Smart自行车电脑(cycling computer)或装有相应APP的智能手机上。
上图:自行车电脑;下图:速度传感器/踩踏速率传感器/心率监测仪
数据、数据、数据——重要的事情再说三遍!
对于更智能的训练,最重要的必须是数据!(虽然这样讲可能对劳苦飞奔的双腿有点不公平……)
自行车电脑能分析接收到的数据,并将其转化为选手们所需的信息。具体以何种形式、怎样分类、显示哪些信息,则由开发者进行配置,以确保数据被最大化地利用、并得以显示。
自行车电脑通常能够通过家庭网络云服务器同步骑行数据,便于后续通过更完善的网络或移动APP进行更有力的分析和可视化处理。因此数据的使用也可以划分为两个阶段:骑行中和骑行结束后。
收集数据,Bluetooth Smart实现骑行过程中实时监测
心率监测仪的主要工作是计算、并阶段性地报告心率监测结果。如果设备采用的蓝牙配置文件(第二篇中将详细介绍)规定某些数据项为选择性的,那么设备也能够获取这些数据,如消耗多少千焦能量、以及在测量心率的同时测得“RR间期”等。“RR间期”是心电图波形中两个R峰之间的时间间隔,如下图所示。
踩踏速率传感器能够与事件时间戳一同汇报累计曲柄转数,让自行车电脑能够计算踩踏速率的当前值和平均值。
与之类似,车轮转速传感器能够与时间戳一同汇报累计车轮转数,以计算车轮转速的当前值和平均值。它对于自行车手更重要的意义在于,如果自行车电脑中的配置中有精确测量车轮周长的功能,就能测得行车的距离,以及行车速度的当前值和平均值。
Bluetooth Smart助你实现训练目标
一些自行车电脑还能在骑行过程中进行更高级的数据分析和传感器数据显示。小编的PolarV650就能显示五个心率区间时长的柱状图。在骑行过程中,只需要轻触摸屏就能查看。有的自行车手(和跑步者)将心率训练视为改善整体成绩的重要方法之一。柱状图能够快速、简易的查看运动员的实际负荷状态。所有这些功能都基于Bluetooth Smart实时传输的数据。
计时赛选手们都力求以最快的速度、经由相对短的路径完成比赛。这也是训练的好方法。小编常在一条长12英里的环形赛道上进行训练,有时会设定一个尽可能短的完成时间,争取打破自己的记录。在骑行过程中,我可以全程查看当前速度和平均速度。要想打破个人记录,我就必须达到并维持一定的平均速度。为此我只需对比当前速度与平均速度,如果当前速度更快,那么平均速度就会得到提升,反之亦然。这在技术上很容易实现,而且数据的帮助也非常大。
心理激励不可忽视的力量
高质量数据既能对我们产生无意识的影响,也能有意识地帮助我们制定决策。
如果双腿会说话他们一定会反对,不过所有的专业运动员都相信心理作用对运动成绩的巨大影响。蓝牙自行车传感器能够采集数据、并显示于自行车电脑上,这些数据能够对选手产生极大的激励作用。从小编自己的经验来看,如果数字显示目前进展顺利,我就会感觉良好并更有动力继续保持战果;如果数据显示我表现不佳,我会更有意识地进行调整,让双腿发力、扭转现状。
这些给力的数据也能让我在训练和比赛中更好地作出决定。选手们的体力是有限的,因此长赛程中的体力分配就尤为重要,这里也包括何时进食和饮水。而在长距离赛程中,身体在巨大的消耗下作出的生理反馈其实是非常不可靠的。选手们需要确保不能从一开始就一直快速行进,否则赛程后段就会体力不支。他们需要时刻留意行进的距离,为前方艰难的山路赛段保留体力,并在适当的时候进食和饮水,以能量补充。
骑行结束?No,真正的分析才刚刚开始
骑行结束之后,无论是成绩喜人还是糟糕透顶,筋疲力尽的选手们第一想法肯定是赶紧倒地休息。但训练并非就此结束,满怀抱负的自行车手们更希望能够导出数据进行分析,以求日后改进。数据可以从自行车电脑同步至云端,并进行更高级的分析和数据可视化处理。下面就是一张小编今年早些时候的山地骑行数据分析图。
智能手机,口袋里的接收器
Bluetooth Smart还为自行车骑行世界带来的了另一项有趣的功能,那就是让自行车手能够通过各种智能手机APP直接接收和处理自行车传感器采集的数据。当前几乎所有的智能手机都采用了Bluetooth Smart,因此这项功能不难实现。市面上已经有一些采用其他专利无线技术的自行车电脑也添加了Bluetooth Smart 支持,能够接收并显示来自选手衣兜里的智能手机的通知。
哪些配置文件必不可少?
与骑行相关的主要配置文件包括:心率配置文件(Heart Rate Profile)、骑行速度和踩踏速率配置文件(Cycling Speed and Cadence Profile)、骑行功率配置文件(Cycling Power Profile)。
心率配置文件使用通知将心率测量结果传输至向与之相连的GATT客户端。通知中包括的不仅仅是心率数据,稍后小码哥会详细说明。骑行速度和踩踏速率配置文件也使用通知传输数据,每个通知都包含车轮转数或(和)曲柄转数数据。骑行功率配置文件也使用“通知”这一超级有用的属性协议(Attribute Protocol)信息来传输数据。
Bluetooth Developer Studio助力开发
Bluetooth Developer Studio是蓝牙技术联盟新推出的开发工具,是助力开发的神器。其庞大的配置文件、服务、特性和描述符资源库并不局限于之前所提到的。Bluetooth Developer Studio是探索这些配置文件的绝佳工具,让开发者能够通过插件生成代码,迅速进入开发的实施。
Bluetooth Developer Studio
可供下载的智能手机APP
许多配置文件可用的移动应用程序,可以下载并使用。下面列举的三个是适用于安卓系统的移动应用程序:
·Polar Beat
·Wahoo 健身
·北欧半导体BLE nRF 工具箱
开发专属你的炫酷APP
如果你是移动开发者,你一定会想要开发自己的Bluetooth Smart应用,尤其是当蓝牙技术联盟或其他设备制造商发布新的配置文件时。而且,随意结合采用的服务和你自己自定义服务打造自己的自定义配置文件也是完全合法的。
编写代码的种类取决于开发所面向的平台以及开发的是GATT客户端还是GATT服务器。如果你编写的是与自行车或选手身上的一种或多种类型的传感器协同工作的GATT客户端应用,就需要订阅包含所需传感器值的特性的通知,当通知通过Bluetooth Smart从传感器传输至设备时,就可以依照代码对这些通知进行相应处理。
让我们再进一步观察一下这三个配置文件,然后我会陆续穿插一些代码片段。
心率配置文件 (HRM)
这一配置文件包括一项强制性 服务,即心率服务;以及一项选择性 服务,即设备信息服务。心率服务定义了以下几项特性:
心率测量特性值可分解为若干不同的字段,因此接收此特性通知的应用要做的第一件事就是对值数据进行划分。我们可以从Flags 字段的首字符和0-4比特位中了解心率传感器的更多功能,以及特性值其余部分的数据形式。例如,表示每分钟心跳数的心率值可能是8位或16位字段,Flags 字段会以一个特定的通知告诉我们是哪种情况。
一个8位字段能够保存0-225范围的值,对于人的心率来说足够了。一种计算心率理论最大值的方法是220-年龄,所以一个40岁的人心率理论最大值为180。但如果你要用心率测量仪给一只蜂鸟侧心率,那这一数值可能在50-1260跳/每分钟之间,就需要一个16位的值才够。
处理安卓系统中的心率通知
骑行速度和踩踏速率配置文件(CSC)
这一配置文件也有一个强制性的服务,即骑行速度和踩踏速率服务;以及一个选择性的服务,即设备信息服务。CSC服务定义了以下四个特性:
CSC测量特性是应用开发者最感兴趣的,它的值也可以分解为若干个字段。首个字节包括一个Flags 字段, 前两个字节可指示该值是否包含车轮转数数据或(和)曲柄转数数据。车轮转数数据包括一个32位的累计车轮转数,以及一个代表以1/1024为单位最后一次测量车轮事件的时间的16位的值。曲柄数据包括一个16位的曲柄转数累计计数,以及一个类似的16位的最后一个事件的时间字段。有了这些数据,客户端就能够计算自最后一次事件的车轮转动或踩踏的平均速度,即便蓝牙连接在中间发生过中断。如果客户端知道车轮的圆周,那么还可以计算出自最后一次事件之后的行进距离和平均骑行速度。
处理安卓系统中的CSC 通知
骑行功率配置文件(CPP)
这一配置文件定义了四个角色,允许通过两种完全不同的方式使用骑行功率传感器。通常“收集器”可以连接至“CP 传感器”,发现GATT服务和特性并与之互动。但配置也可以把骑行功率传感器设置为“CP广播者“的角色,有一个或多个客户端作为“CP观察者”通过无定向不可连接的GAP广播接收骑行功率数据。在后者的情况下,必须使用Bluetooth Smart传输数据,反之也可以通过蓝牙BR/EDR调用CP 传感器和收集器的角色。
请注意,在不同位置(如自行车左右两侧曲柄)安装、并同时使用多个骑行速率传感器是十分常见的。骑行功率服务的传感器位置特性可以适应这一情况。
这一配置文件定义了一项强制性 服务(即骑行功率服务)以及两项选择性 服务(即数据信息服务和电池服务)。其中骑行功率服务定义了以下5项特性。
以上骑行功率测量时大多数应用都会利用的特性。通知可采用GATT用于从CP传感器向与之相连的采集器传输数据。如果这一特性的服务器特性配置描述符被设置为0x01,特性就能采用GAP广播数据包在服务数据字段中被广播。
测试客户端应用
使用蓝牙开发板生成模拟传感器读数,就可以很更简单地测试与传感器设备协调工作的蓝牙客户端应用。这显然比每次做出改动、安装应用后都要亲自骑车测试便利的多。虽然可能没有亲自骑车那么有趣,但的确非常便利。
我有一些来自不同制造商的开发板,如CSR(已被高通收购)、北欧半导体、蓝兆(已被Silicon Labs收购),它们都包括心率配置文件的实施,可以生成模拟心率数据。北欧半导体SDK还包括CSC配置文件。创建常见的配置文件的模拟时,用心率配置文件做模板即简单、又省事。
适用于北欧半导体nRF1DK的心率配置文件项目
另外,一个叫做LightBlue的iOS和Mac应用能帮助开发者建立Mac、iPhone或iPad的“虚拟外围设备”, 并支持CSC、HRM、骑行功率等多项配置文件。
资源
Bluetooth Developer Studio让开发者能够快速启动开发,使用、设计服务和特性,来打造自己的解决方案。这一工具是无价的资源库,让开发者能够创建自己的服务,并了解采用的服务器如何工作。
北欧半导体有一个非常不错的安卓应用,同时支持心率配置文件、骑行速度和踩踏速率配置文件,以及其他配置文件。源代码还公布于Github上:
我最初便携的两个 Bluetooth Smart APP都是针对BlackBerry 10的心率配置文件、骑行速度和踩踏速率配置文件。两个应用的代码现已开源(Blackberry 10 心率监测仪,Blackberry 10 CSC 监测仪),有需要请上网搜索。
总结
以上就是智能骑行系列全部内容,希望感兴趣的开发者有所收获。有了蓝牙,开发者们能够更好地发挥创意,为自行车选手们打造出让他们惊叹的应用。
传感器 蓝牙 触摸屏 Cadence 半导体 CSR 相关文章:
- 光缆结构及工艺的发展(03-04)
- 基于Zigbee的远程家庭监护系统的应用研究(04-08)
- 触摸屏基本原理(04-16)
- 无线传感器网络的服务质量保障技术(10-16)
- 网络自组织通信模式和技术研究综述(10-26)
- 视频传感器网络覆盖控制(Coverage Control)问题研究概述(11-24)