摘要:介绍了基于AVR单片机ATmega128的智能电动跑步机控制器的软、硬件设计。系统采用上、下位机的结构,上位机提供虚拟场景漫游和人机界面的显示,下位机以单片机为核心控制器,通过多路开关量输入/输出、编码器信号输入、矩阵式键盘输入、与上位机的串行通信等对电动跑步机进行实时控制。在操作上采用触摸屏与薄膜按键结合的方式,通过串行通信实现上下位机的协调,在实际应用中运行稳定,达到设计要求。
关键词:AVR单片机;智能电动跑步机;串行通信
1 引言
电动跑步机是目前健身器材中的主流产品,它是通过电机带动跑步带使人以不同的速度被动地跑或走,在人体用力方面,比在地面上跑、走省去了一个蹬伸动作,可使人比在地面运动消耗更多能量。但由于其功能比较单一,缺乏娱乐性和交互性,长时间锻炼会使人感到枯燥乏味。在全社会崇尚健身就是生活质量的今天,传统电动跑步机这种单调重复运动已难以满足人们对健身品质的要求,而具有虚拟现实功能的智能跑步机,以计算机虚拟的模拟环境代替现实世界的真实环境,给人身临其境的沉浸感,增加了健身的乐趣,已成为目前的研究热点。本文将传统电动跑步机与虚拟现实技术相结合,研究并设计了具备传统电动跑步机各种健身模式且具有虚拟场景漫游功能的智能电动跑步机控制系统。系统通过上下位机的串行通信进行各种参数的实时传递,TFT液晶显示器显示友好的操作界面以及实时变化的运动和体能参数,采用触摸屏与薄膜按键结合的操作方式增加操作的灵活性,是虚拟现实、人机交互在健身器材方面应用的一个典型例子。
采用ATMEL公司的ATmega128作为跑步机的主控芯片,它具有先进的RISC架构,内部集成较大容量存储器,有丰富的管脚资源,驱动能力强,具有在系统编程功能,给控制系统的设计及程序的升级和维护提供了极大方便。
2 跑步机控制系统的结构及功能
2.1 系统结构
控制系统由上位机和下位机两大部分组成。上位机采用普通计算机,主要负责触摸屏控制、操作界面显示、多媒体播放和虚拟场景漫游。下位机以ATmega128为核心控制器,配合相应的外围电路,通过采集键盘输入、电机反馈、接收上位机信息等对跑步机进行直接控制。上下位机通过串行通信总线RS232进行通信。跑步机控制系统总体设计框图如图1所示,虚线框内是下位机控制器设计。
图1 跑步机控制系统框图
2.2 系统功能
下位机控制器通过变频器控制电机,增大了速度调节范围并且实现无级变速,速度调节范围为1.0~20.0km/h,坡度调节范围为-5%~15%。配有心率信号接收器,可以通过佩戴胸带或者手握跑步机两侧的手柄测试心率。有多种健身方式可供选择,包括普通健身、程序健身、模式健身、虚拟健身,并且具备多媒体播放功能。液晶显示器显示各种功能按键以及数字键盘,并配有功能提示,用户可以在触摸屏上操作,也可以直接操作跑步机面板上的薄膜按键。各种运动参数在液晶屏上实时显示。在虚拟现实健身模式下,跑步机运转速度驱动虚拟场景的变换和信息的更新,场景路面坡度变化控制跑步机升降,实现跑步台与虚拟场景路面状况同步。系统配有紧急停止开关,跑步机可迅速停止运转已确保安全。
3 跑步机控制器硬件设计
3.1 控制芯片
控制芯片采用ATMEL公司ATmega128单片机,它是基于AVR内核的低功耗CMOS8位单片机,单时钟周期指令,可达到接近1MIPS/MHz的性能,具有128KB在系统编程/应用程序(ISP/IAP)Flash程序存储器、4KB E2PROM、4KB SRAM、32个统一工作寄存器、53个通用I/O口、4个带有比较模式灵活的定时器/计数器、2个可编程的USART接口、可编程带内部振荡器的看门狗定时器等。利用它在系统编程功能可以方便的进行程序的修改调试,参数可保存在内置E2PROM中,定时器/计数器的相位频率可调PWM功能尤其适用于马达控制,内置看门狗定时器可以在程序异常时及时复位。
3.2 电压转换及掉电预检测电路
控制器电路板供电电压为12V,经MC7805转换为5V供单片机使用。电压转换及掉电预检测电路掉电预检测电路原理图如图2所示。
图2 电压转换及掉电检测电路
在系统意外断电时记录跑步台的坡度,保证再次上电时处于水平位置。采用ATmega128内部的模拟比较器,注意选择合适的电容和参考电压,以保证足够的参数写入时间。当模拟输入端AIN1的电压低于AIN0的电压2.5V时,即输入电压降到7.5V以下时,模拟比较器输出ACO置1,触发中断,此时跑步台的坡度值被写入单片机内部的E2PROM中。
3.3 PWM输出电路
利用ATmega128内部16位定时器/计数器应用中的相位频率可调PWM模式,产生50Hz的PWM波形,经过滤波和电平转换后输出到变频器。改变比较寄存器的数值可以得到不同的脉宽,实现对跑步机速度的控制。
3.4 开关量输入/输出电路
三路带光电隔离的开关量输入电路采集健身者在跑步台上的位置信号,并以电平形式输入单片机,据此判断健身者离控制台的远近实现自动调速。六路开关量输出电路中,四路通过继电器控制电机的升降来改变坡度,两路控制横流风扇的风量大小。
3.5 编码器信号输入电路
将转速传感器、心率接收装置输出的编码器脉冲信号经过电容滤波、74HC14整形,输入到单片机外部中断接口。
3.6 串口通信电路
单片机与PC机的通信采用RS-232C标准,此标准与单片机的TTL电平不兼容,采用MAXIM公司的MAX202进行电平转换,外部接0.1uF电容。单片机串行口的TXD、RXD 和GND经电平转换分别与计算机的RXD、TXD和SG相连,进行全双工通信。
3.7 矩阵式键盘电路
要实现开始、停止、暂停、速度加减、坡度加减、风扇控制、速度和坡度直选等功能需要大量按键,因此采用4×8矩阵式键盘。由于跑步过程中的摩擦会产生大量静电,健身者操作键盘时静电可能对电路造成破坏,除了在触摸键上加防护措施以外,在电路中加入TVS (瞬态电压抑制器) 二极管,由于TVS二极管的结面积较大,使得它具有泄放瞬态大电流的优点,具有理想的保护作用。将TVS二极管正极接地,当瞬态电压超过电路的正常工作电压时,二极管发生雪崩,为瞬态电流提供通路,使内部电路免遭超额电压击穿或超额电流过热烧毁。
4 控制器软件设计
考虑到系统可移植性及便于维护和扩充,系统软件采用C语言编写。ImageCraft 的ICCAVR是一种使用符合ANSI标准的C语言来开发微控制器(MCU)程序的工具,它是一个综合了编辑器和工程管理器的集成开发环境(IDE)。跑步机控制程序的编辑、编译均在ICCAVR中完成。
控制系统软件采用模块化设计思想,主要包括主程序、键盘处理程序、中断服务程序和通信程序。主程序逻辑为:控制器上电后首先读取E2PROM中保存的速度系数和坡度参数,实现开机复位和参数的初始化,然后进入主循环。
键盘处理程序采用定时扫描方法,每隔300ms使四行输出均为低电平,判断是否有键按下,若有,再将四行依次输出为低电平,同时读入列值保存到一数组中,用switch-case语句进行按键处理。速度和坡度加、减键若被检测到持续按下,则处理多次,实现速度和坡度的连续加减。有些功能键只处理一次就被锁定,例如开始键被检测到按下后置一个标志,直到该标志被清除再次按下才有效。将几个按键组合在一起可以实现特殊功能,例如速度和坡度的自动校正。
中断服务程序包括内部定时器中断、模拟比较器中断和外部中断。内部定时器中断服务程序主要负责健身时间计算、倒数计时、键盘的定时扫描、通信数据的定时发送等。模拟比较器触发中断后,关闭所有其它中断,将重要参数写入E2PROM中。外部中断服务程序主要负责脉冲信号计数和紧急停止。紧急停止接到最高优先级的外中断上,中断触发后迅速切断PWM输出。
实时显示的运动参数、来自计算机的命令等都是依靠全双工串口通信传递。通信协议制定也采用模块化的思想,不同的功能模块有各自的标志符号。通信协议定义如表1所示。按下电源键后下位机向上位机发出握手信息,上位机检验这一信息符合协议则向下位机反馈一条信息,建立通信。上位机通过串口获得跑步机的各种数据,用以更新虚拟场景画面与操作界面的信息和参数显示,并根据场景路面坡度变化通过串口通信控制跑步机的升降。主程序和通信程序流程图如图3、图4所示。
图3 主程序流程图
图4 通信子程序流程图
表1 通信协议定义
起始符
字节数
标志符
数据
校验码
结束符
@
1个字节
1个字节
若干字节
1个字节
1个字节
5 结论
本文介绍了采用ATmgega128单片机作为主控芯片的智能电动跑步机控制器设计,在实现跑步机各种功能的基础上很好地保证了运行的稳定性。针对采用上下位机控制的特点制定了其专用串行通信协议,确保控制的实时有效性。通过串行通信控制下位机实现了虚拟现实健身模式,避免了室内运动的单调乏味,增加了健身的乐趣,如配置立体显示设备更能增强沉浸感。在此基础上,可研究将上下位机整合,采用SOPC技术自行设计整个控制系统的板卡,这将大大降低成本并且使整机的稳定性有进一步的提高。
本文作者创新点:通过制定专用串行通信协议进行上下位机互动,实现了虚拟现实健身模式,增强了室内健身的乐趣。
参考文献
[1] Atmel Corporation. ATmega128 Datasheet[EB/OL].
XXXXXXXXXXXXXXXXXXXX[2] 马 潮. 高档8位单片机ATmega128原理与开发应用指南(上) [M]. 北京:北京航空航天大学出版社,2004
[3] 谭浩强. C程序设计(第二版)[M]. 北京:清华大学出版社,2000
[4] 潘新民,王燕芳. 微型计算器控制技术[M]. 北京:电子工业出版社,2004
[5] 洪家平. WINDOWS环境下PC机与单片机的通信[J]. 微计算机信息,2004年第3期,143-145.