优酷暂时上传不了....晚点补
这是一个桌面手势游戏机,每隔一段时间随机点亮一个LED,玩家需要及时作出对应方向的手势才可以消除。上置5个触摸按键可以调节5个不同的难度。
于是申请了本次社区的试用活动,收快递的时候居然还有些小惊喜。
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);
}
描述:生成伪随机数。
函数原型:
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。
首先使用LaserMaker软件(其他绘图软件都可以)绘制了该作品的激光切割图。
准备好零件以后,准备一个壁纸刀、一个胶棒、一张白纸。
将背面用胶棒贴上一层白纸并用刀割掉以后,便会得到这样的零件。空白部分即可透光。
然后将我们的手势传感器固定上去。
并用热熔胶将LED发光对准箭头,固定好以后,将多出来的电线进行整理。
这样,一个桌面手势游戏机就完成了!!
2、增加数字显示,如LCD、数码管等,及时显示玩家分数。