所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
带触摸的手势传感器试用:桌面级手势方向游戏机
#嘉诚欧巴# #嘉诚欧巴# 2019-09-18 17:19:22
3
1
简单
步骤1 步骤1
废话不多说,先来看看效果

优酷暂时上传不了....晚点补

这是一个桌面手势游戏机,每隔一段时间随机点亮一个LED,玩家需要及时作出对应方向的手势才可以消除。上置5个触摸按键可以调节5个不同的难度。

步骤2 步骤2
故事的开始
本次的手势传感器由DFRobot创客社区提供,拿到手有了一段时间了,最开始想做一个触摸板以及手势翻页的PC外置设备,思来想去,还是觉得功能鸡肋。最终通过手势传感器的四个方向和四个LED,完成了这个作品。
projectImage

于是申请了本次社区的试用活动,收快递的时候居然还有些小惊喜。

步骤3 步骤3
程序功能说明
代码 代码
	                    					  DFGT.setGestureDistance(20);             // suggest default value
  DFGT.disableFunction(DFGT_FUN_ALL);       // enable all functions
  DFGT.enableFunction(DFGT_FUN_BACK | DFGT_FUN_FORWARD | DFGT_FUN_RIGHT | DFGT_EVT_LEFT);    // disable function test
  DFGT.enableFunction(DFGT_FUN_TOUCH1); 
  DFGT.enableFunction(DFGT_FUN_TOUCH2); 
  DFGT.enableFunction(DFGT_FUN_TOUCH3); 
  DFGT.enableFunction(DFGT_FUN_TOUCH4); 
  DFGT.enableFunction(DFGT_FUN_TOUCH5); 
	                    				

首先是设置传感器距离以及开启所需要的方向或者按键,这个手势传感器是采用串口返回数据。

代码 代码
	                    					    int flag;
    int level=2000;
    static unsigned long openLED=millis();       //every 1s open one LED
    if (millis() - openLED >= level) {
        openLED=millis();
       flag = random(2,6);
       digitalWrite(flag,HIGH);
    }

	                    				
这部分的功能是记录系统时间,每隔一段时间将会随机点亮一盏LED。并且变量level可以通过5个触摸按键进行设置,可以调节游戏难度。
注:函数介绍 random() 

 描述:生成伪随机数。 

函数原型: 

random(max) 

random(min,max) 

参数: 

min: 随机数区间下限值,且包括在内。此参数可选,省略则从0开始。

max: 随机数区间上限值,且不包括在内。 

返回值:min和max-1之间的随机数。

 randomSeed() 描述:初始化随机数生成器。 

函数原型:randomSeed(seed) 

参数:用于初始化伪随机序列的数字,随机数种子。 

返回值:没有。

代码 代码
	                    					      case DFGT_EVT_LEFT: {
        Serial.println("get event left");
        digitalWrite(5,LOW);
      } break;
      case DFGT_EVT_TOUCH1: {
        Serial.println("get event touch1");
        level = 200;
      } break;
	                    				

这部分拿了两个进行举例,按键调节难度,方向进行熄灭对应方向的LED。

步骤4 步骤4
制作过程
材料清单 材料清单
1x
arduinoUNO
1x
arduinoUNO拓展板
4x
红色LED模块
1x
手势传感器模块
projectImage

首先使用LaserMaker软件(其他绘图软件都可以)绘制了该作品的激光切割图。

projectImage
并用激光切割机进行零件的加工。
projectImage

准备好零件以后,准备一个壁纸刀、一个胶棒、一张白纸。

projectImage
projectImage

将背面用胶棒贴上一层白纸并用刀割掉以后,便会得到这样的零件。空白部分即可透光。

projectImage
projectImage

然后将我们的手势传感器固定上去。

projectImage

并用热熔胶将LED发光对准箭头,固定好以后,将多出来的电线进行整理。

projectImage

这样,一个桌面手势游戏机就完成了!!

projectImage
步骤5 步骤5
改进方向
1、增加游戏结束条件,例如场上不能同时有三盏以上的LED点亮。

2、增加数字显示,如LCD、数码管等,及时显示玩家分数。

步骤6 步骤6
最后
由于最近一直在忙淘宝造物节,又遇电脑莫名死机。作品粗糙请各位见谅,做完了才发现,作为手势练习机相当不错。下面奉上代码。
附件 附件
步骤7 步骤7
我是捣鼓车间李嘉诚,我们下次再见!~
Makelog作者原创文章,未经授权禁止转载。
3
1
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]