文档章节

EZ430 Chronos 开发设想 :广义手势语言

FreeBlues
 FreeBlues
发布于 2012/07/01 19:20
字数 1364
阅读 307
收藏 2

EZ430 Chronos 开发设想 :广义手势语言

终于收到了代购的开发套件,这几天都在思考究竟用它来开发一款什么样的有趣应用呢? 终于在昨天确定了开发设想:手势语言,充分利用套件的3轴加速度感应器,捕捉手势数据,再根据预先设定的对应模型翻译成字符、数字或者指令,可以把翻译结果保留在手表内存/FLASH里,等到联机时再用RF传到PC上,也可以直接就用RF同步传送到PC上。

为什么起名为“广义手势语言”,而不是“手势交互”或者“手势输入”?因为准备设计一个比较全面的手势语言系统,类似于手语之类的,当然,还是一步步来,不可能一次就搞定,分阶段进行,最终能够跟实际的自然语言一一对应。

这种手势语言跟MCU结合紧密,比如可以直接利用手势来输入程序指令(好像需要编译才可以运行,后面再关注细节),可以直接在手表上把特定的三轴坐标翻译成指令来操作MCU的底层硬件(比如启动一个程序、进入程序的菜单进行设置,确认设置结果,等等),也可以利用手势来开启/关闭无线传输,还可以用手势来代替按钮的功能,调用不同的内置程序,修改设置什么的,比如调整时间,调整日期。

现阶段主要以手腕上可以方便佩戴的 chronos 为手势输入源,后续有一定进展后计划使用手套式传感器,每个手指头上都放置一个类似的三轴传感装置,因为手指的移动范围更灵活,更省力,可以创造更丰富简单的手势语言。

这个设想的难点是对于手势语言的设计,至于利用 chronos 收集手势信号,分析三轴数据并转换为有意义的语言,这些都可以通过建模编程来实现,都是一些按图索骥的工作,难度不是很高。

 

【 20120703更新:】

难点还是在前面的设计,因为属于无中生有地创造一个新体系--虽然可以参考一些现有的资料,不过难度还是比较大,至于后面的软硬件实现,就是按图索骥了,只要保证不出错,再兼顾一下手势识别算法的效率(这块可能有较多改进余地),就可以了。

综合来说,主要有下面2个难点:
1、高难度:设计手势语言的各种手势,以及对应的含义,要符合人类的习惯(就是顺着关节的运动,不搞特别别扭的),要有较大信息带宽,各个手势不要太相似--要从架构设计层面来降低识别算法的难度;
2、中难度:手势识别算法模块,把各种手势对应的3轴变化数据建立对应关系,尽量降低误判,尽量降低算法复杂度(先考虑时间复杂度,再考虑空间复杂度)。

需要避免无意触发,所以我这几天在考虑是否在触发手势发出后再启动一个5秒定时器来等待一个确认手势,现在想到一种很方便的触发手势:
1、手腕静止3秒;
2、迅速翻转手腕180度,保持2秒;
3、再次迅速翻转手腕-180度(反方向转动返回原来位置)。

确认手势:(LCD显示提示是否进入手势捕捉状态)
1、手腕迅速转动90度,不保持;
2、手腕迅速转动-90度(反方向翻转恢复原位),不保持;
3、手腕迅速转动90度,不保持;
4、手腕迅速转动-90度(反方向翻转恢复原位),不保持;
其实确认手势就是连续2次快速转动90度

这个广义手势语言的设想有些太大,所以也没指望一步登天地短期内迅速搞定,不过可以一步步来,先识别简单手势,再识别复杂手势,能放在CC430上处理的算法就放在CC430上,过于复杂的手势算法就由PC来实现,让手表在无法识别时就把未知手势的全部3D坐标打包发给PC,总之思路是很丰富的。

过段时间会先实现一些简单的指令性的手势,比如:
1、启动手势识别;
2、关闭手势识别;
3、用手势调用温度显示程序;
4、用手势调用秒表程序,显示上次状态;
5、用手势开关秒表程序;
6、用手势调用时间程序;
7、用手势调整时间。

估计需要预先设计出以下手势:
1、启动手势识别的手势;
2、关闭手势识别的手势;
3、确认的手势;
4、取消的手势(默认超时无确认就是取消);
5、调用某个程序的手势(其实是用手势进入那个菜单选择,包括进入主菜单,进入子菜单);
6、10个数字输入的手势(感觉这个最麻烦)

© 著作权归作者所有

共有 人打赏支持
FreeBlues
粉丝 98
博文 280
码字总数 493678
作品 0
其它
程序员
私信 提问
eZ430 Chronos 的无线 BSL(Bootstrap Loader)功能原理详解

eZ430 Chronos 的无线 BSL(Bootstrap Loader) 功能原理详解 eZ430 Chronos 提供了一个名为 RFBSL 的功能,也就是通过RF无线方式来执行BSL操作进行手表固件程序(firmware )的刷新,不需要...

FreeBlues
2012/07/18
0
0
eZ430 Chronos 的 eZ430_Chronos_CC.dll 中提供的函数收集

eZ430 Chronos 的 eZ430ChronosCC.dll 中提供的函数收集 ///////////////////////////////////////////////// COM Port Management// 1. Opening the COM portbool BM_OpenCOM( char * strPo......

FreeBlues
2012/07/18
0
0
【重要】eZ430 Chronos 3轴加速计CMA3000的寄存器、管脚定义以及连接图

【重要】eZ430 Chronos 3轴加速计CMA3000-D01的寄存器、管脚定义以及连接图 注:仔细研究了文档 slau292f.pdf 发现如下有趣事实: 1、Black PCB 使用了 VTI 的 CMA3000-D01 作为加速计; 2、...

FreeBlues
2012/07/19
0
0
EZ-430 Chronos 的相关参数

EZ-430 Chronos 的相关参数 • 适合佩带的小巧外形使客户能够方便地进行远程开发; • TI SimpliciTI 与 BM Innovations 的 BlueRobin™ RF 协议使开发人员无需掌握 RF 专业知识,即可方便地...

FreeBlues
2012/06/25
0
0
EZ430 Chronos SDK 研究计划

EZ430 Chronos SDK 研究计划 首先熟悉系统控制部分,不过貌似单片机的SDK主要就是对硬件系统的直接控制,为清晰起见,做个列表。 1、如何在手表上用软件方式启动一个程序?如何关闭一个程序?...

FreeBlues
2012/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JeeSite4.x 消息管理、消息推送、消息提醒

实现统一的消息推送接口,包含PC消息、短信消息、邮件消息、微信消息等,无需让所有开发者了解消息是怎么发送出去的,只需了解消息发送接口即可。 所有推送消息均通过 MsgPushUtils 工具类发...

ThinkGem
14分钟前
3
0
OpenML

https://www.openml.org/search?type=data

shengjuntu
16分钟前
2
0
java强引用,软引用,弱引用和虚引用

先来简要说一下这四种引用的特性: 强引用:如果一个对象具有强引用,那垃圾回收器绝不会回收它 软引用:如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它 弱引用:在垃圾...

woshixin
20分钟前
1
0
dubbo服务在kubernetes中对外暴露服务

一些场景下,在开发时可能存在dubbo consumer需要访问k8s中部署的dubbo provider,尤其是对于自建的kubernetes集群环境,tcp的端口很难代理,这就导致了开发发链接集群内的服务比较麻烦,这里...

上官胡闹
30分钟前
1
0
Java获取小程序带参二维码(太阳码)

获取小程序码 官方API地址 : https://developers.weixin.qq.com/miniprogram/dev/api/qrcode.html 首先使用官方提供的 接口B:适用于需要的码数量极多的业务场景 https://api.weixin.qq.com/...

回忆是如此忧伤
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部