基于APP控制的空气鼓棒的设计与实现

更新时间:2009-03-28

0 绪论

架子鼓是现代乐队中一个重要组成部分,但是对比与其他乐器,架子鼓的体积大质量重,搬运非常困难,同时它难以控制的巨大音量常常在乐队排练时盖过其他乐器声音,训练过程中还有扰民的危害。对比于这种情况,这款基于APP控制的空气鼓棒只需要用两个鼓棒,就可以模拟出真实架子鼓的声音,无疑的方便了许多。该空气鼓棒设计方法合理,成本低,使用与制作都很方便,对于架子鼓爱好者是一个大大的福音,有一定的推广价值。

1 系统设计

  

图1 系统总设计结构图

本设计由两个加速度传感器、一个脚踏开关,一个主控芯片和一款APP组成。加速度传感器和开关检测到使用者的姿态后,传输给主控MPU,在主控芯片进行处理后通过蓝牙发送给安卓手机,APP接收到数据后,根据接收到的数据发出特定音频。

1.1 硬件设计

在本设计中,使用了一些外围器件以及模块电路,检测模块使用mpu6050,主控芯片选用STM32F407最小系统板,语音模块使用版本为4.0以上的安卓手机,通信使用蓝牙芯片。Mpu6050模块固定在鼓棒上便于检测到使用者的挥动,通过电气连接与主控stm32连接,stm32模块除了必要的基础电路以外,还搭建了一个蓝牙模块,用于与手机通信。

1.2 软件设计

本项目的目标是实现超级鼓棒可以发出真实击鼓的声音、易于携带和便于练习。不仅仅需要硬件的高度配合,软件的辅助也很重要。所以本次采用的是与stm32系列单片机相对应的高级语言和结构化设计方法来对控制程序的编写,使用Android studio为开发环境,JAVA为开发语音对APP进行编写。

小学数学学科作为教育中的三大主科之一,与生活当中的各个方面都有着密切的联系,因此应该创新小学数学的教学方式,促进小学数学的教学效率,以促进学生的发展。在教学当中可以从以下几个方向进行:

  

图2 软件总流程图

1.3.2 蓝牙通信部分

STM32的控制程序分为3个部分:对mpu6050数据处理、蓝牙模块的通信程序、对鼓棒挥动的判定。

在Amos 24.0中输出标准化路径系数图,结果显示,免费开放感知对公园满意度、地方依赖以及地方认同有正向影响,公园满意度对地方依赖和地方认同有正向影响,但是“免费开放→地方认同”和“满意度→地方认同”的路径系数太小,地方依赖对地方认同有正向影响且路径系数最大,与预测测量模型大致相同.在研究后对模型进行修改,将“满意度→地方认同”以及“免费开放→地方认同”这两条路径删除,得到现模型(图3)以及变量相互之间的关系(表3),并进行拟合度检验,所有指标都达到标准水平(表4).

Sound Pool一般用来播放的文件特点有:声音短,文件小,延时慢(不像使用 Media Player类播放音乐时,需要等待一段时间),因此常用来播放各种实时音效,如游戏音效。因此选用它是非常合适的。使用方法为(1)将鼓的音乐文件拷贝到工程下(2)新建一个 Sound Pool实例;(3)使用 load()方法,让 Sound Pool实例加载音效资源,该方法会返回一个整型的sound ID,在第四步需要用到;(4)使用 play()方法播放音效,该方法会返回一个整型的stream ID,这个返回值可以保存起来,在需要暂停/恢复播放时需要用到。Sound pool具体使用方法可以参考谷歌官方文档,这里不做过多结束。

(2)蓝牙模块的通信程序。

仿真时设定船舶航向为60°,系统仿真框图见图3,使用两种控制方法得到的航向保持控制的结果见图4和图5,可看出在这两种控制方法下,航向几乎都在160 s左右达到稳定值,且上升速度均较为迅速,在航向稳定过程中不存在超调现象,但经过仔细观察可以发现,在航向达到稳定值之后,使用模糊控制器得到的曲线有细微的波动。

(3)对鼓棒挥动的判定。

蓝牙模块与STM32通过串口通信,所以直接使用串口函数即可通信。

此部分函数的作用为准确检测鼓棒的挥动,且两个鼓棒的检测要分开,不能分别影响。鼓棒的一次挥动分为,鼓棒抬起,与鼓棒落下。因此可以设置状态标识变量,来对鼓棒挥动状态进行实时检测,当满足到一次挥动抬起和一次挥动落下时,判定为鼓棒挥动了一次,即可运行通信函数。

 

1.3 APP程序设计

APP的开发环境为Android Studio,核心代码主要分为3个部分:实现发声功能的Sound Pool音效池部分、实现通信功能的蓝牙部分、界面代码部分。

Equilibria of Port Investment in Multi-Port Region in China

1.3.1 Sound Pool音效池部分

能源是现代社会的重要物质基础和动力,是事关发展全局和国计民生的战略性资源。改革开放40年来,上海能源发展实现了前所未有的重大变化,取得了巨大的历史性成就,为上海经济社会持续快速发展、人民生活水平不断提高打下了坚实的基础。特别是党的十八大以来,面对国际能源发展新趋势、能源供需格局新变化,以习近平同志为核心的党中央高瞻远瞩,提出“能源革命”战略思想,为上海能源进一步发展指明了方向。当前,上海能源消费和能源保障正发生着巨大变革,能源利用水平不断提高,节能降耗取得显著成效。展望未来,上海能源发展的机遇与挑战并存,随着新一轮能源革命开始起步,一个更美好的能源前景已经萌现。

此设计的数据处理调用了mpu6050自带的数字运动处理器, 即 DMP, 并且,InvenSense提供了一个MPU6050的嵌入式运动驱动库,结合 MPU6050的DMP,可以将我们的原始数据,直接转换成四元数输出,而得到四元数之后,就可以很方便的计算出欧拉角,从而得到 yaw、roll和 pitch。具体实施步骤为,主函数内首先利用一个循环初始化mpu6050和IIC,结束后运行算法函数,得到具体的欧拉角。

在诸城市南部山区的康岭山上,占地1.2万亩的榛子林让原本光秃秃的山头,如今变成了树的海洋。“俺每天都来转转,看着这些满山成片的绿色,人就变得更有干劲儿。”64岁的魏本欣是这一片榛子林的主人,他将周边村落的山岭薄地流转过来,荒山造林,还带动百姓脱贫致富。

配置监听广播

 

软件设计分为两块,一为主控芯片stm32的控制程序,二为手机APP的通信发声程序。控制程序中,主要是接受MPU6050传输回来的姿态数据,并进行判定、通过蓝牙模块发送特定数据。APP程序主要是接受数据进行判定,并发出声音。本次APP设计为了实现架子鼓声混音(同时发出多种鼓声),所以APP的发声程序采用多线程编程,并调用Sound pool音效池来实现。

蓝牙通信部分主要用到4种API,分别为Bluetooth Adapter、Bluetooth Socket、Bluetooth Server Socket、Bluetooth Device。此设计具体实现流程为(1)在主线程里设置一个按钮,用来检测蓝牙是否开启,若没有便开启蓝牙。(2)设置另外一个按钮用于开启蓝牙搜索功能并开启广播监听搜索结果。(3)蓝牙搜索到指定设备后,开启连接子线程,设立标志位检测连接是否成功。(4)连接成功后开启通信子线程(5)子线程中接受蓝牙传输过来的数据,并通过 handle方法发送回主线程(6)主线程进行数据判定,播放指定声音。

开启蓝牙并获取本机蓝牙信息

(1)mpu6050 数据处理。

 

搜索设备和停止搜索

 

初始化音效池

 

监听结果

 

连接子线程核心代码

 

通信子线程核心代码

 

主线程发声代码

1.2.1 RNA-seq数据获取 人结肠癌细胞株SW1116瞬转miR-1254模拟体后24 h,通过TRIzol®提取细胞全RNA,干冰保存送检北京贝瑞和康公司测序。

 

1.3.3 界面代码部分

“鼓”在《说文解字》中的意思是打击乐器。成语“一鼓作气”的意思是,打仗时敲第一次击鼓就可以鼓起士兵的士气和精神。比喻趁劲足时一下子把事情完成。“鼓”,名词用作动词,击鼓。

活动代码包含3个按键,name分别为:“打开蓝牙”、“连接鼓棒”、“关闭”。 按照线性布局排列。

  

图3 APP界面图

2 结束语

在组建好硬件并在手机上下载好软件后,两根超级鼓棒能发出传统架子鼓的声音,能够用于平常练习和大部分歌曲的伴奏;播放设备能传送多种鼓声,达到混音效果。接口既可连接耳机也可连接音响。

随着科技的发展和社会的进步,便携式的装备在日常生活中会越来越常见以及受欢迎。如何使乐器做到不占太大空间,方便携带,又能达到训练或演出的效果,并且训练时不扰民,这可能是未来乐器制作的方向。这次设计涉及的姿态检测与APP开发,在便携式装备的开发中有着很重要的地位。

【参考文献】

[1]STMicroelectronics,STM32F103C6T6 数据手册,2007.

[2]刘军,张洋,严汉宇.例说STM32[M].北京,北京航天出版社,2014.

[3]郭霖.第一行代码 Android(第二版)[M].人民邮电出版社,2016.

 
尹忠钰
《科技视界》 2018年第09期
《科技视界》2018年第09期文献
100%安全可靠
7X18小时在线支持
支付宝特邀商家
不成功全额退款