基于FreeRTOS 的嵌入式智能骑行台*

2022-03-07 12:36禹鑫燚赵嘉楠应皓哲欧林林冯远静
电子技术应用 2022年2期
关键词:磁阻蓝牙客户端

禹鑫燚,赵嘉楠,应皓哲,欧林林,冯远静

(浙江工业大学 信息工程学院,浙江 杭州 310023)

0 引言

室内骑行[1]运动作为一项常规的室内健身活动,配合使用骑行台,可满足人们对于日常自行车骑行运动的需要。

骑行台是一种附带阻尼系统的骑行训练设备,可将室外的骑行运动转移到室内进行,通过骑行者消耗自身的体力来达到健身的目的,是一种常规的有氧健身器材。现在市面上的骑行台,根据智能程度可分为智能型骑行台和非智能型骑行台;按照阻尼系统的划分,可分为重力阻式骑行台、磁阻式骑行台、风阻式骑行台以及液阻式骑行台[2]等。

因为国外自行车运动的普及、参与程度高,所以诞生了一大批家喻户晓的骑行台品牌,如德国品牌Elite、美国品牌Kinetic、荷兰品牌Tacx 等。国外主要有滚筒式骑行台、液阻式骑行台、磁阻式骑行台等种类。比如Tacx的Galaxia-T1100[3]滚筒式骑行台,Cycleops 的Fuild 2[4]液阻式骑行台等。

和国外相比较,国内对骑行台的研究开发起步比较晚,目前有青岛迈金、杭州优趣体育等少数公司在推出自己的骑行台产品。例如,迈金的T300[5]直驱式磁阻骑行台,优趣体育的U5 SMART[6]智能骑行台等。

从目前的产品设计和用户体验来看,传统的非智能骑行台存在骑行环境单一,不能较为准确地控制阻力等一系列影响运动体验的问题。并且在运动过程中无法实时得到骑行速度和骑行者的消耗功率,只能根据骑行者自身的感受进行粗略判断。所以,一种能实时得知骑行速度和功率,实现与骑行台客户端数据交互,丰富骑行者骑行体验的智能骑行系统具有较高的研究价值。

为了解决上述传统非智能骑行系统存在的问题,设计了基于蓝牙SoC 的嵌入式智能骑行系统。该系统可实现如下功能:(1)对骑行速度的实时采集,并根据速度-功率计算公式得到骑行者的骑行消耗功率;(2)将速度和功率数据按照事先设定的数据格式,使用蓝牙协议[7-9]以及ANT+协议[10-12]发送给骑行台客户端实现数据发送;(3)接收并解析骑行台客户端下发的坡度数据来调节骑行时的阻力数据,实现上下坡和平路的骑行模拟;(4)该装置还适配多个骑行台客户端,包括国外的Zwift、国内的UH Fitness 等。并且在此基础上设计了硬件电路与实验装置,通过一系列实验测试验证了系统的可行性。

1 系统需求及总体框架设计

本文设计的嵌入式智能骑行系统主要用来解决传统的非智能骑行台功能单一、骑行体验一般的问题。系统采用了磁阻式的设计方案,从系统硬件结构和系统软件结构两方面对系统进行总体方案设计与实现,系统总体功能框架如图1 所示。

图1 系统总体功能框架图

系统硬件结构部分,设计选用NRF52832 低功耗蓝牙SoC 作为主控芯片,设计了最小系统电路以及射频电路构成主控模块。根据整个系统的功能需要分别设计了电源模块、速度测算模块、磁阻控制模块等。

系统的软件结构部分,为了提高系统处理任务的实时性和可靠性,控制系统移植了开源的实时操作系统FreeRTOS[13-15]。FreeRTOS 实时操作系统目标代码小、简单易用,被广泛应用于各种各样的物联网智能产品中。系统的基本软件功能模块包括速度测算和功率计算程序、磁阻控制程序、蓝牙数据通信程序、ANT+无线数据通信程序等。还包括多款骑行台客户端的适配程序、休眠与唤醒机制等一些提升使用体验的模块程序。

2 系统硬件设计

2.1 系统硬件总体方案设计

本系统硬件总体架构如图2 所示。整个系统主要由主控模块、电源模块、磁阻控制模块以及速度测算模块等电路模块构成。电源模块负责把输入电压降压处理得到合适的工作电压,提供给系统中其他的电路模块使用;主控模块与速度测算模块、磁阻控制模块相连接,实现速度的输入捕获与计算、功率计算、阻力大小的控制以及无线数据通信等功能;速度测算模块利用霍尔传感器实现脉冲检测与信号整形;磁阻控制模块根据主控模块引脚输出的不同占空比的PWM 波实现对H 桥芯片的输出电压调节,从而实现挡位的控制。

图2 硬件总体架构图

2.2 系统硬件设计与分析

2.2.1 电源模块

系统的输入电压是36 V,主要提供给磁阻控制模块中的H 桥芯片和电源模块使用。综合考虑系统正常工作时所需的电流大小后,采用了两级降压电路的方案。第一级降压电路选用LM2596 降压开关电源芯片,将36 V的输入电压降压到5 V,提供给速度测算模块以及磁阻控制模块中的光耦器件使用。第二级降压电路采用AMS1117 芯片以及外围电路组成的稳压电路方案,将5 V电压稳压到3.3 V,提供给主控模块使用。

2.2.2 主控模块

主控模块是整个系统的控制核心,由NRF52832 芯片的最小系统电路和射频电路构成,电路原理图如图3所示。

图3 主控模块

NRF52832 蓝牙芯片内部有512 KB 的Flash 和64 KB的RAM,有着强大的浮点运算能力。它是一款相比较同系列其他蓝牙SoC 具有更高性能、更低功耗的多协议SoC[16],有着良好的抗干扰能力,并且设计灵活性高。其优良的性能满足了本文所需的数据处理能力以及无线通信数据传输性能。

2.2.3 速度测算模块

速度测算模块将霍尔元件切割磁场的周期运动转换为脉冲电信号[17],并将输出信号传输给主控模块进行速度值的计算。

为了进一步降低系统工作时的功耗,速度测算模块选用了型号为A3144E 的霍尔元件。该型号的霍尔元件具有功耗低、灵敏度高、温度特性稳定等特点[18-19],被广泛应用于各种转速检测装置中。模块使用LM393 比较器芯片将霍尔传感器的输出脉冲信号处理成更加接近矩形波的波形,进一步降低霍尔传感器输出脉冲信号对测量结果的影响,从而提高主控芯片计算速度的精确度。

2.2.4 磁阻控制模块

磁阻控制模块是整个系统实现上下坡骑行模拟的关键硬件电路。模块的输出电压通过主控芯片输出的PWM 波的占空比大小来调节。输出电压不同,阻力的大小就不同,从而实现了骑行上下坡的模拟效果。主控芯片与磁阻模块之间用光耦器隔离。模块选用了LMD18200直流电机驱动H 桥芯片。

3 系统软件设计

3.1 系统软件总体方案设计

本系统的软件总体结构图如图4 所示,主要分为硬件驱动层、业务实现层以及应用层。硬件驱动层用来实现对系统所用硬件外设的逻辑控制,并封装成相应的控制函数供业务实现层调用。业务实现层负责调用硬件驱动层的封装函数来一一实现对应的外设功能,并封装成业务函数模块供应用层调用。应用层负责调用每个业务模块的接口函数,来实现整个系统的功能。

图4 软件功能结构图

根据系统的总体软件架构图可知,硬件驱动层主要包括实时操作系统FreeRTOS 的内核,用于输入速度捕获的GPIO,用于控制磁阻控制模块输出电压的PWM 以及中断、定时器等组件。业务实现层包含的业务有蓝牙通信业务、ANT+通信业务、速度计算业务、功率计算业务以及PWM 占空比控制业务等。应用层将根据系统的功能以及运行时的任务需要调用业务实现层的相关业务,并调用故障处理函数处理运行过程中的问题。

3.2 磁阻控制模块程序设计

磁阻控制模块程序用来实现对骑行台客户端下发的坡度数据进行分析来自动调节阻力的大小,从而实现骑行上下坡、平路的模拟。系统一共设计了17 个挡位的阻力控制,其中1~8 挡模拟上坡,9 挡模拟平路,10~17 挡模拟下坡,1~8 挡的PWM 占空比与10~17 挡的PWM 占空比一一对应。挡位所对应的PWM 占空比的确定使用了文献[20]提出的挡位调节方法。软件流程图如图5 所示。

图5 磁阻控制程序

未建立起通信连接前,系统为了降低功耗,程序便设置初始挡位为9。在与骑行台客户端建立连接后,下位机开始接收骑行台客户端下发的坡度数据,并判断系统是否处于休眠状态。当且仅当系统没有休眠,才能按照事先设定的占空比根据下发的数据进行挡位的调节。

3.3 速度功率计算与休眠机制程序设计

实时操作系统通过对速度测算模块输出波形的下降沿捕获,并计算出当前的速度值,再根据速度拟合出功率值。速度计算和功率拟合方法使用了文献[20]中提出的方法。

在系统计算输入脉冲个数小于5 个并持续3 min(每1.5 s 捕获一次,120 次捕获)后,系统会进入休眠状态。在休眠状态时,磁阻控制程序仍然会把挡位设置为9,此时,磁阻控制电路中的H 桥芯片的输出电压为0。

当输入脉冲个数大于等于5 个时,系统会退出休眠状态,并计算当前的速度值,根据功率拟合方法计算出功率值,软件流程图如图6 所示(图中的gpioCurrent 代表捕获到的脉冲个数,stateCount 用来计算当前状态保持的时间,curSpeed 代表当前速度值)。

图6 速度功率计算与休眠机制

3.4 通信模块程序设计

NRF52832 低功耗蓝牙SoC 芯片支持ANT+和蓝牙两种通信协议来进行数据传输,所以方案设计时确定在系统中同时使用两种协议。

无线通信程序模块主要将计算得到的速度和功率数据发送给骑行台客户端,并接收骑行台客户端下发的坡度数据,传送给磁阻控制程序来控制主控引脚输出PWM 波的占空比,进而调节H 桥芯片的输出电压。接下来介绍系统中蓝牙通信和ANT+通信的程序设计。

3.4.1 蓝牙通信程序设计

蓝牙通信程序由蓝牙发送数据和蓝牙接收数据两部分组成,软件流程图如图7 所示。蓝牙透传初始化程序的设计,目的在于把蓝牙的初始状态逐步设置到系统需要的工作状态。设备与骑行台客户端建立蓝牙连接后,会向骑行台客户端发送速度和功率数据。在发送完一次数据后,只有确保协议栈返回的事件是“发送成功”,发送函数才会进行下一次数据发送,这样就保证了蓝牙数据传输的可靠性。

图7 蓝牙通信程序

3.4.2 ANT+通信程序设计

为了更加直观地表示ANT+通信的稳定性,在发送数据和接收数据之前系统会对ANT+进行连接性检查。LED灯点亮的状态表示设备与骑行台之间ANT+保持连接,LED 灯熄灭的状态表示设备与骑行台客户端之间ANT+断开连接。若连接性测试没有通过,会上报故障信息。

ANT+通信协议发送数据与接收数据的流程图与蓝牙通信的相类似,软件流程图如图8 所示。与蓝牙通信不同的地方在于,ANT+通信不是通过协议栈返回事件来确定上一次数据是否发送成功,而是确认发送函数的返回事件是“没有错误”后,再进行下一次的数据发送。

图8 ANT+通信程序

4 实验验证

4.1 测试设备说明

基于本文的硬件电路设计制作了印制电路板,并根据硬件和软件的设计搭建了实验平台。整个实验平台包括系统电路板、电源适配器、ANT+接收器、磁铁(通过手动控制磁铁的运动来达到霍尔传感器切割磁感线的目的)以及第三方骑行台客户端等,设备如图9 所示。

图9 测试所用设备

4.2 蓝牙和ANT+数据传输测试

蓝牙数据传输测试的方法:将电路板上电后,与手机端的UH Fitness APP 建立蓝牙通信连接,并手动控制磁铁的运动,通过查看手机APP 上的速度数据与功率数据来判断蓝牙的数据传输是否符合设计要求。

ANT+数据传输测试方法:将电路板上电后,用ANT+适配器将电路板与PC 端一款ANT+测试软件之间建立连接。手动控制磁铁的运动,通过查看测试软件上的数据判断ANT+数据传输是否符合设计要求。

4.2.1 蓝牙数据传输测试

蓝牙数据传输测试的实验结果如图10 所示,从图中可以看到,手机APP 与电路板之间建立了蓝牙连接。手机APP 接收到了电路板通过蓝牙协议发送的实时速度和功率数据。

4.2.2 ANT+数据传输测试

ANT+数据传输测试的实验结果如图11 所示,从图中可以看到,PC 端的测试软件与电路板建立了ANT+连接。测试软件接收到了电路板通过ANT+协议发送的速度和功率数据。

图11 ANT+数据传输测试

4.3 骑行台客户端适配验证

骑行台客户端的适配测试选用了两款软件,分别是Zwift 和UH Fitness 的联网版。测试方法如下:用ANT+适配器与上电的电路板之间建立ANT+通信连接。打开骑行台客户端的虚拟/实景骑行界面,每隔一段时间手动控制磁铁的运动,观察客户端界面上显示的数据,从而确定是否符合设计的要求。

4.3.1 Zwift 软件

从图12 中可以看到,Zwift 中的虚拟人物处于骑行的状态,而且画面的左上方也有对应的消耗功率,中间部分有骑行速度,该系统适配Zwift 软件。

图12 Zwift 软件适配(ANT+)

4.3.2 UH Fitness 软件联网版

从图13 中可以看到,UH Fitness 联网版中的中间画面的下方也有对应的消耗功率和骑行速度。说明系统适配UH Fitness 软件。

图13 UH Fitness 软件适配(ANT+)

4.4 挡位调节验证

挡位调节测试主要是通过万用表量取H 桥芯片的输出电压来确定是否符合设计要求。测试方法如下:将电路板上电,与UH Fitness 手机端APP 建立连接后,由手机APP 下发挡位信息,再用万用表量取电压,从而确定是否符合设计要求。测量结果如表1 所示。

表1 挡位调节测试结果

4.5 实验结论

从上述一系列的测试结果可以看出,蓝牙通信与ANT+数据通信符合预设的设计要求,而且连接的可靠性和稳定较高。与不同的骑行台客户端适配性比较好,磁阻控制模块的输出电压符合预期的设计要求。测试一段时间后,系统的实时性和可靠性良好,符合预期的设计。整个设计有效地解决了传统的非智能骑行台骑行功能单一、骑行体验一般的问题。

5 结论

本文设计并实现了基于FreeRTOS 实时操作系统的嵌入式智能骑行台装置。本骑行系统的设计解决了传统非智能骑行台的功能单一、不能与骑行台客户端进行任何的数据交互的问题。系统在实现基本的骑行功能前提下,还加入了速度测算与功率拟合程序、蓝牙无线通信程序、ANT+无线通信程序、休眠与唤醒程序等功能程序。下位机与骑行台客户端建立通信连接并分析骑行数据,骑行者可以在虚拟场景中获得与真实场景接近的骑行体验。本系统同时兼容Zwift 虚拟场景骑行客户端和UH Fitness 实景骑行客户端,提升了骑行体验。

猜你喜欢
磁阻蓝牙客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
新型轴向磁通永磁辅助磁阻电机研究
蓝牙音箱的直线之美
永磁磁阻电动机的研究
轻量新能源汽车应用开关磁阻电机系统匹配的研究
如何看待传统媒体新闻客户端的“断舍离”?
基于磁阻传感器的车载型磁电子罗盘的设计
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器