本发明涉及检测运动轨迹演奏音响的方法,尤指一种智能架子鼓音效系统及其实现方法。
背景技术:
架子鼓是乐器中的佼佼者,然而由于其体积庞大,难以实现随时移动,是架子鼓不能走进小型演唱会的重要原因。再加上其价格昂贵,使得架子鼓难以走入寻常百姓家。在可穿戴设备兴起的浪潮中,将架子鼓与可穿戴设备相融合,使架子鼓音乐系统变成体积小、成本低的乐器,提供给架子鼓爱好者或者没有足够空间摆放真实架子鼓的场合。是架子鼓发展市场的需要。
技术实现要素:
针对现有技术的缺失和市场的需要,本发明的目的在于提供一种智能架子鼓音效系统及其实现方法。
本发明解决其技术问题所采用的技术方案之一是:提供一种智能架子鼓音效系统,其特征在于:包括装于模拟鼓棒中的微处理器、与微处理器连接的传感器和气压计,所述微处理器通过蓝牙与上位机连接,其中:
传感器和气压计用于捕捉用户使用鼓棒时的姿态变化数据;
微处理器用于对采集的姿态变化数据进行处理,整合两个鼓棒数据并进行数据分析;
蓝牙模块用于实现与上位机的通信。
进一步地:
所述微处理器可以采用STM32微型处理器。
所述传感器可以采用MPU6050九轴传感器。
所述气压计可以采用MAS5611-01BA03气压计。
所述蓝牙可以是BLE低功耗蓝牙4.0。
系统可以装有开关,用于控制系统的开启和关停。
所述上位机可以是现场的电子音响装置或移动终端(例如手机、可移动的电子音响设备)。
本发明同时提供一种利用上述架子鼓音效系统的架子鼓音效实现方法,包括如下步骤:
步骤S1,数据采集和处理:采集模拟鼓棒的X、Y、Z三轴的加速度、角度和高度值,并求出以下三个值:
az=((AzH<<8)|AzL)/32768*16*g
其中az为Z轴加速度、AZ为传感器传回的Z轴加速度值,H、L分别表示数据的高低位、g为重力加速度值;
Yaw=((YawH<<8)|YawL)/32768*180(°)
其中:Yaw为偏航角;
H=((H3<<24)|(H2<<16)|(H1<<8)|H0)(cm)
其中H为高度值,H3、H2、H1、H0为高度数据的高低位;
将Z轴加速度az,角度的3个方向值Yawx,Yawy,Yawz以及高度H分别用q1,q2,q3,q4,q5表示,同时将第i时刻的动作数据用向量表示,在一段连续的时间内,若干个时间点的去Qi列向量进行组合形成时间-数据矩阵w[i][j](i<=5,j为第j个时间点),于是,w[1][j]代表着第j个时间点的加速度值,w[2][j]代表着第j个时间点的x轴角度值,依次类推;
步骤S2,进行姿态分析:
判断步骤S1所得的w[1][j]是否满足以下条件:
w[1][j]<w[1][j-1]&&w[1][j]<w[1][j+1]&&w[1][j]<min
w[1][j]-min<D
其中D为识别判定中,新数据与波谷之间的差值需要满足的阈值;min为识别判定中,波谷的最大限制阈值;
否则返回步骤S1;是则认定该点为敲击点,记录数据j,并由此找出与j相对应的角度Yaw和高度H;依次记录为t1,t2,t3…,tm,以此确定敲击方向和高度;
步骤S3,依据敲击方向和高度执行发声函数,确定镲和鼓的发音选择,返回步骤S1。
可选地,在步骤S1之前,针对不同的使用者对D,min两个阈值的设定进行确认,
步骤S0-1,单次敲击动作阈值确认:
使用者按照提示,用四肢分别控制相应模块单独敲击十次,在这个过程中,不断地采集数据并进行滤波处理,确定每次敲击过程中数据变化的波峰、波谷以及波谷变化到波峰所需要的时间,舍弃前三次的数据,根据剩下的数据做如下设定:
min=剩余数据中波谷的最大值;
D=min+(剩余数据每组的波峰与波谷的差值的平均值)*30%。
另外,可选地,针对同一使用者,可以进行多次敲击动作阈值优化。
步骤S0-2,多次敲击动作阈值优化:
在步骤S0-1成功之后的0.1s至0.17s之内判定另一次敲击,该次敲击所得的min和D进行min*110%和D*90%的运算,所得值作为新的相应的min和D。
另外,为了确定敲击方向角度值和鼓棒敲击位置的关系,可选地,在执行步骤S1之前,确定敲击方向角度阈值,
步骤S0-3,确定敲击方向角度阈值:
步骤S0-3-1:将鼓棒水平放置,在5秒时间内保持不变,得到初始位置偏航角角度值μ,在使用过程中,根据用户每次的敲击动作,得到敲击点的偏航角角度值λ
步骤S0-3-2:计算得到差值σ=λ-μ;
步骤S0-3-3:将使用者前方[-90°,90°]的区域平分为6个角度部分,角度阈值取值点分别为:-60°,-30°,0°,30°,60°的位置,根据计算得到6个不同点的角度阈值σ值,确定鼓棒的敲击方向,继而确定对应的发声,并根据高度值确定镲和鼓的选择。
本发明的有益效果是:使架子鼓音乐系统变成体积小、成本低的乐器,提供给架子鼓爱好者或者没有足够空间摆放真实架子鼓的场合。迎合架子鼓发展市场的需要。
附图说明
下面结合附图对本发明作进一步的描述。
图1是本发明一种智能架子鼓音效系统的架构示意图。
图2是本发明一种智能架子鼓音效实现方法的流程示意图。
图3是本发明实施例的软件实现框图。
具体实施方式
参见附图,本发明一种智能架子鼓音效系统,其特征在于:包括装于模拟鼓棒中的微处理器1、与微处理器1连接的传感器2和气压计3,所述微处理器1通过蓝牙4与上位机5连接,其中:
传感器2和气压计3用于捕捉用户使用鼓棒时的姿态变化数据;
微处理器1用于对采集的姿态变化数据进行处理,整合两个鼓棒数据并进行数据分析;
蓝牙4模块用于实现与上位机的通信。
在本发明的实施例中:
所述微处理器1采用STM32微型处理器。所述传感器2采用MPU6050九轴传感器。具体地,本发明采用的是集STM32微型处理器和MPU6050九轴传感器为一体的JY-901系列模块。该模块集成高精度的陀螺仪、加速度计、地磁场传感器,采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法,能够快速求解出模块当前的实时运动姿态。模块内部集成了姿态解算器,配合动态卡尔曼滤波算法,能够在动态环境下准确输出模块的当前姿态。
所述气压计3采用MAS5611-01BA03气压计。MS5611-01BA03是由MEAS公司在瑞士分公司(原intersema厂家)设计并生产的高分辨率的测高传感器,它提供SPI接口和I2C总线两种接口。适合于高度测量和气压测量。该传感器模块包括一个高线性压力传感器和一个24位低功耗的AD转换器,传感器内部包含有工厂校准系数。它提供了一个精确的24位压力和温度值。该传感器在测量气压的同时具有温度测量的功能。可以连接到几乎所有微控制器,通讯协议简单,不需要装置内部编程存储器。小尺寸,便于集成应用。
所述蓝牙4是BLE低功耗蓝牙4.0。
系统装有开关6,用于控制系统的开启和关停。
所述上位机是手机和可移动电子音响设备。
本发明同时提供一种利用上述架子鼓音效系统的架子鼓音效实现方法,包括如下步骤:
步骤S1,数据采集和处理:采集模拟鼓棒的X、Y、Z三轴的加速度、角度和高度值,并求出以下三个值:
az=((AzH<<8)|AzL)/32768*16*g
其中az为Z轴加速度、AZ为传感器传回的Z轴加速度值(16进制),H,L表示数据的高低位。g为重力加速度值;
Yaw=((YawH<<8)|YawL)/32768*180(°)
其中:Yaw为偏航角;
H=((H3<<24)|(H2<<16)|(H1<<8)|H0)(cm)
其中H为高度值,H3、H2、H1、H0为高度数据的高低位(32进制);
将Z轴加速度az,角度的3个方向值Yawx,Yawy,Yawz以及高度H分别用q1,q2,q3,q4,q5表示,同时将第i时刻的动作数据用向量表示,在一段连续的时间内,若干个时间点的去Qi列向量进行组合形成时间-数据矩阵w[i][j](i<=5,j为第j个时间点)。于是,w[1][j]代表着第j个时间点的加速度值,w[2][j]代表着第j个时间点的x轴角度值,依次类推;
步骤S2,进行姿态分析:
判断步骤S1所得的w[1][j]是否满足条件:
w[1][j]<w[1][j-1]&&w[1][j]<w[1][j+1]&&w[1][j]<min
w[1][j]-min<D
其中D为识别判定中,新数据与波谷之间的差值需要满足的阈值;min为识别判定中,波谷的最大限制阈值。
否则返回步骤S1;是则认定该点为敲击点,记录数据j,并由此找出与j相对应的角度Yaw和高度H;依次记录为t1,t2,t3…,tm,以此确定敲击方向和高度;
步骤S3,依据敲击方向和高度执行发声函数,确定镲和鼓的发音选择,返回步骤S1。
由于对不同使用者来说,敲击动作的幅度、力度会不同,可选地,在步骤S1之前,针对不同的使用者对D,min两个阈值的设定进行确认,
步骤S0-1,单次敲击动作阈值确认:
使用者按照提示,用四肢分别控制相应模块单独敲击十次,在这个过程中,不断地采集数据并进行滤波处理,确定每次敲击过程中数据变化的波峰、波谷以及波谷变化到波峰所需要的时间,舍弃前三次的数据,根据剩下的数据做如下设定:
min=剩余数据中波谷的最大值;
D=min+(剩余数据每组的波峰与波谷的差值的平均值)*30%。
另外,由于在使用过程中,使用者在做连续敲击的过程中有时会出现第二次、第三次敲击的幅度和力度明显小于第一次的情况,这就会造成连续敲击过程中会有识别不准确的情况出现,针对此情况,可选地,针对同一使用者,进行多次敲击动作阈值优化。
步骤S0-2,多次敲击动作阈值优化:
在步骤S0-1成功之后的0.1s至0.17s之内判定另一次敲击,该次敲击所得的min和D进行min*110%和D*90%的运算,所得值作为新的相应的min和D。
另外,为了确定敲击方向角度值和鼓棒敲击位置的关系,可选地,在执行步骤S1之前,确定敲击方向角度阈值,
步骤S0-3,确定敲击方向角度阈值:
步骤S0-3-1:将鼓棒水平放置,在5秒时间内保持不变,得到初始位置偏航角角度值μ,在使用过程中,根据用户每次的敲击动作,得到敲击点的偏航角角度值λ
步骤S0-3-2:计算得到差值σ=λ-μ;
步骤S0-3-3:将使用者前方[-90°,90°]的区域平分为6个角度部分,角度阈值取值点分别为:-60°,-30°,0°,30°,60°的位置,根据计算得到6个不同点的角度阈值σ值,确定鼓棒的敲击方向,继而确定对应的发声,并根据高度值确定镲和鼓的选择。