已经完成双鼓棒的APP和SensorTile修改
鼓棒增加了磁力计
SensorTile AirDrum 双鼓棒制作
https://bbs.eeworld.com.cn/thread-539503-1-1.html
AirDrum鼓棒 SensorTile的磁场传感器校准
https://bbs.eeworld.com.cn/thread-545773-1-1.html
APP看起来背景是白色的显得很简陋
因为android水平有限,之前试过很多次想增加一个漂亮点的背景图片一直没成功
这次本来打算一步到位,把RealDrum的功能都通过这个APP实现了
提取了RealDrum里的图片和声音素材,准备直接用它的东西来做
查了几天资料做了无数次实验最终还是放弃了,主要原因还是在于鼓的图片的布局和动画效果无法实现
仔细想想虽然没有多难,可就是过不去美工这关
APP不能写全就想想其它办法
另一个解决方案是直接使用SensorTile实现BLE HID 触控板
然后运行RealDrum这个APP,把鼓点转化成对应的触控位置,这样不就可以通过“敲”别人的APP实现虚拟架子鼓的功能了么
在网上查了一些资料,也找了一些例程,比如ATMEL的SAMD21就有一个mult-touch的例程,实现多点触控
\xdk-asf-3.35.1\common\services\usb\class\hid\device\mtouch\example\samd21j18a_samd21_xplained_pro\iar\mtouch_example.eww
正好手里有这个板子就跑了一下,使用USB连接,触控功能可以实现
然后把HID描述符和配置都移到SensorTile里,因为之前用SensorTile做过HID鼠标,所以改起来也比较方便
改好以后通过手机连接却没有触控效果
各种百度google查了很多资料也试了很多方法石硬是没成
既然多点触控不行就再换方案
使用HID鼠标发送绝对坐标总可以吧?
万万没想到,HID鼠标在使用相对坐标的时候手机能看到鼠标指针移动
只要把描述符改成绝对坐标手机立马没有反应
查了一些资料还是不行,后来用同样的描述符使用ATMEL的D21通过USB向PC发送绝对坐标就一切正常
因为电脑没有蓝牙,没法确定是手机的问题还是SensorTile程序的问题
这个方案不行再换
直接用SensorTile发送绝对坐标不行就用软件发
以前写Windows程序时是可以控制鼠标位置的
那如果用APP接收SensorTile的广播数据,然后转换后再通过APP执行相应的触控不也可以么?
这个问题又想简单了,查了一些资料,做了几个实验,确定我的MOTO X极 Android 5.1.1不能实现
网上说4.xx可以,唉
最后实在没办法了,还是给原来的APP添加一个漂亮的背景图片吧
又是查资料做实验,最后居然用一个非常简单的办法实现了
以前显示鼓棒动画时是直接用
setContentView(mGLSurfaceView);的方法让
GLSurfaceView直接显示
那时想的就是怎么设置
GLSurfaceView的背景图片,一直没成功
后来查到
GLSurfaceView可以设置成背景透明,既然
GLSurfaceView背景透明了是不是只要在他的后边放一个图片就可以呢
于是使用下边的方法把
GLSurfaceView添加到
mainLayout上问题总算解决
setContentView(R.layout.
activity_main);RelativeLayout mainLayout = (RelativeLayout)findViewById(R.id.
activity_main);
mGLSurfaceView =
new MySurfaceView(
this);
其它还有一些问题又都是界面美化方面的,背景图片显示不全、背景图片变形、背景图片有白边这些问题
解决后用手机截了一张RealDrum的图片,用photoshop裁剪后用app直接调用
最后就实现了这个效果
附上源码,源码里使用了很多其它网友写的东西,已经找不到出处,最后感谢在网络上提供技术分享的网友
1.SensorTile.rar
(2.4 MB, 下载次数: 7)
2.Android.rar
(17.97 MB, 下载次数: 7)