拳击娱乐系统是为知足广大群众的须要而设计,目前市场上还没有仿照真人的对抗性的拳击娱乐设备,该系统的涌现使人们从呆板的磨炼中摆脱出来,能够主动地投入到娱乐中。在人形靶的头部正面和胸部正面各安装一个击打气袋和压力传感器,当语音提示可以开始击打时,利用者可以全力击打头、胸部,同时ARM9处理器采集相应的击打数据,在人形靶上安装有自动出击拳装置。
该系统选用了Samsung公司的16/32位RISC处理器S3C2440,由于该处理器价格低、功耗小、性能高,从而降落了全体系统的本钱,便于市场的推广。
在用户界面的设计上,采取目前盛行的Qt/Embedded,使显示界面更直不雅观,操作更方便。Qt/Embedded丰富的控件资源和较好的可移植性给界面的设计以及今后的进一步完善带来了极大的方便。

1 拳击健身娱乐系统简介
拳击娱乐系统紧张由人形靶、用户操作界面、语音播报、数据采集处理、自动出拳五部分组成。利用者击打气袋时,该系统采集压力传感器数据,并进行相应的处理,打算出利用者的出拳力量。语音播报用来提示、问候利用者并播报结果数据。自动出拳可以根据前方是否有遮挡物而随机出拳反击。语音播报和自动出拳的结合更丰富了该系统的互动性。
2 人形靶部分
人形靶高度可以根据利用者的高度进行调度,以适应不同人群的利用。该系统针对娱乐的哀求设计了两个击打有效区:头部、胸部。每个击打有效区都由击打气袋、开关触发装置和压力传感器三部分组成。
在人形靶的头部装有反射式光电开关,用来判断前方是否有遮挡物,为自动出拳设备供应输入旗子暗记。
3 用户操作部分
用户操作Qt/Embedded设计开拓,界面更加人性化,大略化,使不同人群快速学会利用。Qt/Embedded是专门为嵌入式设备上的图形用户接口和运用开拓设计的开拓包,可以跨平台运行在ARM处理器上的嵌入式Linux操作系统上。Qt/Embedded具有较好的移植性,从而使得今后该部分的进一步开拓更加方便。采取标准PDA大小的触摸屏,以是操作非常方便。
Qt/Embedded的底层图形引擎基于Framebuffer。Framebuffer是在Linux内核架构版本2.2往后推出的标准显示设备驱动接口。采取mmap系统调用,可以将Framebuffer的显示缓存映射为可连续访问的一段内存储针。Framebuffer驱动程序的实现分为两个方面:一方面是对LCD及其干系部分的初始化,包括画面在缓冲区的创建和对DMA通道的设置;其余一方面是对画面缓冲区的读写,详细到代码为 read,write,lseek等系统调用接口。Qt/Embedded延续了Qt在桌面系统的所有功能,丰富的API接口和基于组件的编程模型,使得嵌入式Linux系统中的运用程序更加方便于该系统的开拓。
该部分分为娱乐和结果回放两部分。
娱乐部分有三种模式:压力测试、力量模式、速率模式。压力测试用来测试头、胸气袋压力是否在得当范围内,压力过高、过低进行语音提示;压力模式用来测试利用者力气大小;速率模式用来测试利用者在一定韶光内击打的有效拳数。
结果回放用来回放前段韶光该系统利用情形,包括击打位置和击打力量两部分信息。
4 语音播报部分
该部分卖力播报利用提示、问候语和利用者的击打结果。播报结果包括有效拳重、有效拳数。当利用者击打到有效区域时,会发出仿真的击打声音;压力测试时,压力过高、过低的报警提示音;在开关机时,系统会播报问候语等。在仿照与真人的对抗性的娱乐环境,语音播报突出了意见意义性,提高了娱乐效果。
该部分是由专用的语音芯片UDA1341来完成的。在Linux下完成此功能,首先须要编译UDA1341的驱动,利用编译工具为交叉编译器arm- linux-gcc 3.4.1,然后移植到ARM开拓板。末了再将madplay播放器利用同样的方法编译后移植到ARM开拓板上。驱动和播放器都移植好后,在运用程序中实现语音播报功能。
5 数据采集处理部分
数据采集处理部分由S3C2440处理器掌握实现。它通过判断采集有效区中触发装置的触发旗子暗记是否有效,掌握压力传感器数据的采集。
5.1 采集击打点触发装置的触发旗子暗记
在运行力量或速率模式时,须要不断的扫描头、胸击打按键的状态,当击打按键闭合时,开启相应压力传感器采集数据,同时打消击打按键的闭合状态。
该部分在硬件上采取了CD4093来锁存按键的状态,并且利用芯片75452来打消击打按键的锁存状态。
5.2 压力传感器的采集
该部分是系统设计的紧张部分,由该部分采集到的数据可以打算出出拳力量。
采集气压须要压力传感器和S3C2410的ADC转换器。压力传感器选用Motorola的MPX5100压力传感器。该传感器须要5 V直流电源供电,量程为110 kPa,对应的输出为0~5 V。
由于击打气袋时,气袋内部门歧位置压力变革不同,造成压力传感器采集的压力数据和其间隔击打位置有关。为了降落由此引起的丈量偏差,在头、胸部分别安装两个独立气袋和传感器。实验证明该方案在一定程度上减小了偏差,能知足本娱乐拳击系统对结果精度的哀求。
由于硬件电路以及电源带来的滋扰,导致采集的电压叠加了许多毛刺,对数据的处理带来了很大的困难。并对大量数据进行剖析后,在软件上选定了中值滤波的方法减小其滋扰,该方法具有编程大略,滤波效果好的特点。
当击打按键被击中,这时记录下规定韶光内采集的电压值,通过中值滤波去除毛刺,得到平滑的波形,从而取其峰值作为击打按键的电压值。
5.3 演习数据的保存
娱告成果数据保存到开拓板NAND FLASH中,为结果回放供应数据。在开始利用该系统前,提示是否覆盖已有数据结果,如此可以确保有充足的NANDFLASH空间保存当次结果数据。数据结果包括击打位置、击打力量。为了往后本系统更随意马虎升级,采取数据库SQLITE存放结果数据,以供结果回放时利用。
数据采集处理部分在软件的实现上,分别编写了按键驱动button.ko,ADC转换驱动adc.ko,该驱动能通过设置,选择采集两路AD中那路。建立SQLITE数据库,并对其进行数据存取。
6 自动出拳部分
自动出拳分为检测是否有遮挡物和出拳掌握两部分。是否出拳、出旁边拳完备是随机的,这样增加了随机不定性,可以达到更好的娱乐效果。
检测遮挡物部分采取反射式光电开关,当光电开关吸收到遮挡物的反射旗子暗记,输出高电平旗子暗记,否则输出低电平旗子暗记,该旗子暗记通过隔离光耦传人处理器S3C2440。S3C2440收到存在遮挡物的有效旗子暗记后,产生一个随机旗子暗记掌握出拳装置。该随机旗子暗记将决定是否出拳、出左拳还是右拳。
出拳掌握部分采取两个直流电机来带动两个机器臂完成出拳动作。为了确保每次出拳时,机器臂在收回状态时终止,在机器臂安装一个能产生反馈旗子暗记的装置。自动出拳系统根据该反馈旗子暗记来确保完成一个出拳周期。
为了避免频繁出拳,引起电机频繁起停对电机本身的危害,同时不影响自动出拳的娱乐效果,自动出拳系统在连续出拳五次后,停息随后的两次出拳,然后规复自动出拳。
该部分软件实现包括:掌握电机驱动和光电开关旗子暗记采集驱动、产生随机旗子暗记并掌握电机的用户态程序。
7 结 语
该系统适用于各个年事层的人群,可以比较准确地丈量击打力量,同时该系统本身的语音播报以及自动出拳的功能使机器人的互动性更加丰富,表示了该系统的娱乐性。该系统在Linux操作系统下开拓,结果保存采取SQLITE数据库,这给今后功能的扩展预留了很大空间。