手势传感器试用+【组合2开箱照】
第一次在DFROBOT申请试用,激动~! @luna申请的项目是偶然之间的想法,感觉有了个很好的契机去做出来
{:5_172:}
下面是开箱图@DFRobot ,收到df和蘑菇云2个徽章~
二号试用套装,分别是Leonardo&xbee和手势传感器
第一次试用leonardo,确实存在一些和uno不同的地方,不过也无大碍
关键还是这次的手势传感器
按照官方给的指南,戳这里,
连接线,采用3v3和5v供电均可
刷入指南中给的测试代码
{:5_166:}
接下来就是测试手势传感的效果啦~!
左手.....正常......右手.....正常.....(好像并没有区别.....)
然后我受到了对面基友的无限鄙视的目光........
if ( apds.isGestureAvailable() ) {
switch ( apds.readGesture() ) {
case DIR_UP:
Serial.println("UP");
break;
case DIR_DOWN:
Serial.println("DOWN");
break;
case DIR_LEFT:
Serial.println("LEFT");
break;
case DIR_RIGHT:
Serial.println("RIGHT");
break;
case DIR_NEAR:
Serial.println("NEAR");
break;
case DIR_FAR:
Serial.println("FAR");
break;
default:
Serial.println("NONE");
}
}
看测试例程,里面给出了6种手势,分别是上下左右和靠近/远离
然后,我整理好表情,对着传感器挥手
{:5_195:}
上下左右的敏感度还不错,太快和太慢都会被判断为NONE,至于FAR,手掌靠近,然后远离(速度稍微快一点点点点),然后还剩下一个NEAR.....
引用一下@svw 的心得~
不要用打耳光的速度,用做体操的速度,很容易试出来。
嗯.....呃....
总结出来的出现NEAR的经验就是,和FAR差不多的速度
将手掌向传感器接近,然后,最后的时候,离传感器比较近的时候(大概)
将手掌从传感器的正前方向侧面做一个漂亮的漂移(别拍到传感器上了),然后NEAR就出现啦...
呃...不知道有没有别的方法呢....嗯嗯嗯,.
.多试几次就有感觉啦~,灵敏度和准确度都挺不错的~
----------------------------------------------------------------------------------------------
颜色传感的方面,同一种颜色测试的波动如下,存在色差,但是判断色彩还是没问题的
Ambient: 130 Red: 71 Green: 43 Blue: 41
Ambient: 128 Red: 70 Green: 42 Blue: 41
Ambient: 129 Red: 69 Green: 43 Blue: 41
Ambient: 131 Red: 70 Green: 44 Blue: 42
Ambient: 129 Red: 70 Green: 43 Blue: 41
----------------------------------------------------------------------------------------------
(项目帖待更新)
本帖最后由 nicho 于 2016-8-17 19:32 编辑
发现了一个小小的细节 @luna.........这一点在手势传感器的指南里面没有提及,就是关于传感器使用的SDA/SCL和中断引脚有冲突,(只针对Leonardo)
(我其实也是第一次用Leonardo,开箱的时候顺手拿了uno来测试,没有发现,后来用Leonardo的时候才发现出了问题)
去查了Leonardo的引脚图,INT0和INT1和SDA/SCl是同一个引脚,(和UNO不同,uno的int0和int1分别是d2和d3,SCL/SDA是A4和A5)
这就尴尬了,一开始没发现,指南里面的例程是针对UNO的...
// Pins
#define APDS9960_INT 2 // Needs to be an interrupt pin
这里的引脚定义是针对uno而设的,刷程序进Leonardo,一点反应都没有...应该是出现了"Something went wrong during APDS-9960 init!",不过由于Leonardo的天生限制,看不到这段文字(吧)
下面是中断的引脚对应表
型号int0int1int2int3
uno23
leonardo3201
怎么解决呢?
需要下面这两步:
修改:
#define APDS9960_INT 2 // Needs to be an interrupt pin
为;
#define APDS9960_INT 0 // Needs to be an interrupt pin
或
#define APDS9960_INT 1 // Needs to be an interrupt pin
然后修改:
attachInterrupt(0, interruptRoutine, FALLING);
为
attachInterrupt(2, interruptRoutine, FALLING); //如果上一步修改的引脚是0的话,就改成这样的
或:
attachInterrupt(3, interruptRoutine, FALLING); //如果上一步修改的引脚是1的话,就改成这样的
----------------------------------------------------------------------
这里描述的问题,其实在演示程序里面也有提及一些相关的注意事项,不过,一开始没有注意
{:5_179:}
本帖最后由 nicho 于 2016-8-17 14:43 编辑
占楼更新 nicho~项目和开箱照要分开发哦~~项目名称规范:"手势传感器试用+【自己制作的项目名称】" 你和svw的标题一模一样,我都蒙了{:5_129:} luna 发表于 2016-8-17 15:07
nicho~项目和开箱照要分开发哦~~项目名称规范:"手势传感器试用+【自己制作的项目名称】" ...
{:5_161:}马上改~ nicho 发表于 2016-8-17 15:44
马上改~
{:5_148:} 都怪我没有做个规范说明 不错哦 还有板子 和 传感器:'( 占楼围观 羡慕 围观好项目,哈哈~~~~ 打耳光的速度和做体操的速度哈哈哈哈哈哈!
真是好形象的比喻方式{:5_165:}
页:
[1]