3713|10

17

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

ST-AMG-Sensortile开发大赛——麦克风手势控制 [复制链接]

 
代码库链接:https://github.com/0rig1n/ST-AMG-Sensortile-Development.git
http://player.youku.com/player.php/sid/XMjUzNDg0Njg5Ng==/v.swf
Sensortile小巧玲珑,功能强大。笔者一直有一个梦想,让我们的生活变得智能而人性化。而sensortile有着实现这一梦想的潜力。在我的规划中,sensortile将作为手上的一个挂件,发挥各式各样的作用。这里我开发了一个非常“有情怀”的功能:麦克风的手势控制。
假想在生活中,你收到了一个电话。你可能需要拿起你的电话,或是掏出你的手机。即便目前最方便的方式,也要按一下耳机上的按钮。然而,我这里的构想可以让这一过程变得更为简单:只需要将手抬到嘴边即可通话;抖一抖手即可挂断电话。舍弃了一切多余的动作,让你的生活更加方便。
在这里十分感谢flyloong网友,笔者在写代码的时候出现了很多奇怪的bug,参考flyloong的代码库后,才理解了bug的成因并修复。因此十分感谢。
这里我分享部分代码,希望对各位有所帮助。

首先,要实现这样的一个功能,需要获取手势数据,并做出相应的调整。
Sensortile默认的手势有Pick_UP(拿起)、Glance(抬大约30°)、Wake_Up(摇一摇),考虑实际,这里选用Pick_UP作为开启手势、摇一摇作为停止手势。收到相应的数据后,更新信号位is_on:
  1.       
  2. if( f.getName().equals("Gesture")){
  3.                 FeatureMemsGesture Gesture = mNode.getFeature(FeatureMemsGesture.class);
  4.                 if(Gesture.getGesture(sample)== FeatureMemsGesture.Gesture.PICK_UP){mAudioTrack.play();is_on=true;}
  5.                 if(Gesture.getGesture(sample)== FeatureMemsGesture.Gesture.GLANCE){/*mAudioTrack.play();is_on=true;*/}
  6.                 if(Gesture.getGesture(sample)== FeatureMemsGesture.Gesture.WAKE_UP){
  7.                     synchronized(this) {
  8.                     mAudioTrack.pause();
  9.                     mAudioTrack.flush();is_on=false;
  10.                 }}
  11.             }
复制代码

随后系统根据信号位做出调整,如果信号位为开启,则打开麦克风;如果为关闭则关闭麦克风
  1. if(is_on){
  2.             if(!mNode.isEnableNotification(mNode.getFeature(FeatureAudioADPCM.class))) {
  3.                 mNode.enableNotification(mNode.getFeature(FeatureAudioADPCM.class));
  4.             }
  5.             if(!mNode.isEnableNotification(mNode.getFeature(FeatureAudioADPCMSync.class))) {
  6.                 mNode.enableNotification(mNode.getFeature(FeatureAudioADPCMSync.class));
  7.             }}
  8.             else{
  9.                 if(mNode.isEnableNotification(mNode.getFeature(FeatureAudioADPCM.class))) {
  10.                     mNode.disableNotification(mNode.getFeature(FeatureAudioADPCM.class));
  11.                 }
  12.                 if(mNode.isEnableNotification(mNode.getFeature(FeatureAudioADPCMSync.class))) {
  13.                     mNode.disableNotification(mNode.getFeature(FeatureAudioADPCMSync.class));
  14.                 }
  15.             }
复制代码

最新回复

能否在手机上设计一个麦克风阵列,做到唤醒功能?  详情 回复 发表于 2017-8-14 14:13
点赞 关注
 
 

回复
举报

111

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
楼主手势识别算法是自己写的么?还是沿用ST官方的?

声音处理的部分是如何实现的?期待进一步的展示和分享!
 
 
 

回复

2774

帖子

8

TA的资源

版主

板凳
 
这个有点意思!还是要会上位机呀!……
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

4
 
本来是有个视频连接的,可是不知道怎么被吞了,链接地址:http://v.youku.com/v_show/id_XMjUzNDg0Njg5Ng==.html#paction

点评

nmg
嵌入了,嵌入视频的时候,使用视频的flash地址[attachimg]286056[/attachimg]  详情 回复 发表于 2017-3-2 10:05
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

5
 
alberthink 发表于 2017-3-1 14:37
楼主手势识别算法是自己写的么?还是沿用ST官方的?

声音处理的部分是如何实现的?期待进一步的 ...

ST官方的感觉很好使,所以直接沿用了
声音处理的部分库函数提供了,直接调用即可
 
 
 

回复

9717

帖子

24

TA的资源

版主

6
 
这个创意很好,手机端你准备怎么做?
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

2721

帖子

0

TA的资源

纯净的硅(中级)

7
 
我手机有个“摇一摇”对其桌面图标功能
 
 
 

回复

5221

帖子

239

TA的资源

管理员

8
 
奥利晶 发表于 2017-3-1 18:45
本来是有个视频连接的,可是不知道怎么被吞了,链接地址:http://v.youku.com/v_show/id_XMjUzNDg0Njg5Ng==. ...

嵌入了,嵌入视频的时候,使用视频的flash地址
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

9
 
littleshrimp 发表于 2017-3-1 20:55
这个创意很好,手机端你准备怎么做?

我没太明白问题的意思,视频里这样已经可以了吧。那么你是指的哪里怎么做?

点评

你不是要实现接电话、挂电话和放到嘴边通话功能么 看你的视频已经可以通过APP演示了 实际使用中如果你的手机电话铃响了怎么通过SensorTile控制手机接听呢? 可以接听以后,你的SensorTile发送的音频数据怎么能在  详情 回复 发表于 2017-3-2 14:59
 
 
 

回复

9717

帖子

24

TA的资源

版主

10
 
奥利晶 发表于 2017-3-2 12:34
我没太明白问题的意思,视频里这样已经可以了吧。那么你是指的哪里怎么做?

你不是要实现接电话、挂电话和放到嘴边通话功能么
看你的视频已经可以通过APP演示了
实际使用中如果你的手机电话铃响了怎么通过SensorTile控制手机接听呢?
可以接听以后,你的SensorTile发送的音频数据怎么能在对方的听筒里播放出来?
还有对方话筒里的声音怎么通过SensorTile播放,我想问的是这些问题
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

11
 
能否在手机上设计一个麦克风阵列,做到唤醒功能?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表