项目名称
AirDrum鼓棒
项目实现的功能说明
手机APP会实时显示真实鼓棒的方向
快速落下鼓棒时APP会检测鼓棒落棒动作和落点位置
根据落点位置播放预设鼓声
软硬件设计思路
硬件使用SensorTile砖块板作为核心,外加3V钮扣电池供电
通过STM32L476单片机实时读取LSM6DS3H和LSM303AGR的加速度、角速度、磁场数据通过Open.Mems传感器融合库将数据转换成姿态数据,再通过BLUENRG蓝牙控制器将数据通过蓝牙协议发送至上位机
原理图
原码
相关帖子集锦
SensorTileSWD调试口引脚定义
https://bbs.eeworld.com.cn/thread-506803-1-1.html
用SensorTile播放声音
https://bbs.eeworld.com.cn/thread-509150-1-1.html
说说SensorTile例程里传感器配置的文件结构
https://bbs.eeworld.com.cn/thread-511807-1-1.html
不会android也能玩转SensorTile上位机开发?
https://bbs.eeworld.com.cn/thread-520743-1-1.html
用手机显示SensorTile MIC频谱
https://bbs.eeworld.com.cn/thread-521072-1-1.html
想用SensorTile开发HID设备,希望来了?
https://bbs.eeworld.com.cn/thread-521942-1-1.html
https://bbs.eeworld.com.cn/thread-521965-1-1.html
osxMotionFX的移植和调试过程
https://bbs.eeworld.com.cn/thread-523508-1-1.html
虚拟架子鼓-----模拟演示
https://bbs.eeworld.com.cn/thread-527371-1-1.html
虚拟架子鼓------鼓点识别的想法
https://bbs.eeworld.com.cn/thread-527695-1-1.html
虚拟架子鼓------落棒检测算法
https://bbs.eeworld.com.cn/thread-528125-1-1.html
虚拟架子鼓------移植Beacon到BlueMicrosystem2
https://bbs.eeworld.com.cn/thread-528385-1-1.html
虚拟架子鼓------Android程序开发
https://bbs.eeworld.com.cn/thread-529522-1-1.html
作品形象代表照片
作品总结
开始申请参加活动的时候是想通过SensorTile上的麦克风实现鼓棒落在不同物体上的检测,比如用鼓棒敲桌子和敲书本的声音频谱是不同的,利用FFT分析出频谱特征,判断出被敲的物体再播放对应的鼓声,开始是朝着声音识别的方向在弄,这种方法实现起来会简单些。不过由于鼓棒必需要落在指定的物体上对空间有一要求也会产生噪音,并不是理想的选择。
最好的方案是通过力学传感器识别鼓棒的位置或者角度,这样鼓棒不必落到指定物体只需要空中挥动就能实现架子鼓的功能,过程中接触了ST的Open.mems库,用起来还比较方便,经过尝试最后才选择姿态检测这个方案。
由于第一次接触传感器整合算法,还只停留在使用层面,对原理理解不多,开始的时候也遇到过很多问题,后来经过论坛发贴求助高手,最后算是都解决了。
以前实验的时候要使用开发板调试,所以敲打都是后拿开发板试验的,因为开发板有很多线连接操作起来不能太用力,后来把SensorTile硬件和电池都贴到鼓棒上以后用起来方便很多,不过现在又发现一个问题就是如果鼓棒挥动的速度太快的话玩的时间长了会出现一些偏差,影响使用的感受,这个问题在论坛发贴提问还没有得到解答,猜测可能是快速挥动时的加速度超出来传感器的测量范围,或者陀螺仪的角速度范围设置的过小造成的。
最后陈述,为自己的作品拉票
说说作品的亮点等
AirDrum是一个只需尽情挥舞它就能实现架子鼓功能的神奇鼓棒,无论是站着还是坐着,闭上眼睛想象眼前就是一套架子鼓,敲它,聆听它从手机里传出的“真实”鼓声,带上耳机,一个人享受,也不会影响他人。
我这人从小就喜欢听节奏感强的音乐,上中学的时候家里给买了一个随身听,本来是用它学英语的,没过几天我就去别人家录了一本舞曲磁带《野人》,又买了一个大耳机,扣耳朵上冬天不冷那种,每天骑着自行车听着嗨曲,感觉踩着鼓点骑车就是特别有劲。后来被我爸知道了,一气之下,啪,给摔了,我捡起来用听了一下没坏,顺便还拆了几回,看看啥原理。
那以后还是经常听这种音乐,每次听歌的时候都在脑袋里把音乐里的各种乐器分享出来,尤其是架子鼓的声音,现在听到比较劲暴的音乐时偶尔也会用脚踩踩,用手敲敲,想象自己正在鼓捣架子鼓的感脚。有段时间也想过买一套玩玩,后来还是忍住了,挺大岁数,两天热血不敲了东西还没地儿放。
那时想过如果有两只鼓棒在空中乱敲就能实现架子鼓的功能该有多好,把这个想法记下来,又用我当时掌握的技术分析了一下,觉得不好实现就放下了。
后来下了些APP,有个叫Real Drum的虚拟架子鼓不错,那时晚上无聊会带上耳机乱敲一会儿。因为是运行在手机屏幕上的APP,每个鼓的距离都很近,只能用手指有限有空间上点来点去,比较别手,不是很爽。
这次借着ST AMG SensorTile开发大赛想把这个虚拟鼓棒再弄弄, SensorTile上集成了很多力学传感器,还有一颗数字麦克风,体积又小做这个东西是个不错的选择。
演示视频(一顿乱敲)
https://training.eeworld.com.cn/course/4063/learn#lesson/9347
GIT项目网址(演示时需要申请license,修改osx_license.h,把osx_mfx_license替换成申请得到的license)
本帖最后由 littleshrimp 于 2017-4-30 14:23 编辑