手势遥控LED灯设计

易心STEAM编程
关注

手势控制在移动设备上的应用越来越多,今天就来做一个范例,用手势遥控LED灯,透过手势动作进行灯光的Power on、Off以及亮度调节控制。

手势控制灯光的手势

我们希望能控制灯光的 1.亮度调节 2.关闭 3.直接开最亮三种动作,因此设计其手势动作如下:

手势控制灯光的流程

在动作流程方面,基本上用户的想法只有两个「我想要控制灯光」以及「我的命令是XXX」:

Step 1:用户告知系统我想要控制灯光:当使用者打算控制灯光时,需要把手放在镜头前,此时LED灯便会开始恒亮告知使用者从休眠状态醒来了,这时使用者便可把手放开。

Step 2. 系统进入控制模式等待手挥动作:在上一步使用者放开之后,会发现LED持续闪烁,表示系统目前正在等待手挥控制。使用在可在此时在镜头前进行各种手势动作以控制灯光。当系统发现持续了五秒镜没有任何手挥动作的话,便会再进入休眠状态,使用者若想要再次进行手挥控制,必须从第一步开始。

我们可以把上述的两个想法详细拆解如下:

材料准备及接线

以下分为手势控制端及灯具端两部份来说明。

手势控制端

手势控制端此装置可贴于墙壁或放置桌上,角度需方便一般人手部的上下左右挥动来控制远距的灯光设备。为了让用户知道目前系统可否开始进行手势挥动控制,因此加了一个LED灯for模式告知用途。

材料准备

开发板(UNO、Nano…皆可)

创客手势控制开发板EGAD-005

MUART0-S-1-1 无线串行端口传输模块(1对1) 的S0端

三色LED(共阴)

EGAD-005是一款简单好用的手挥控制板,它透过发出红外线来侦测手部的上下左右以及远近等动作,因此这款手挥模块比较适合于室内使用,尤其在黑暗环境中更能发挥其手挥辨识的效果哦,因此相当适合用于室内灯光的控制。

MUART0-S-1-1是与凌阳创新开发的RF UART模块,简简单单就能让我们将手挥控制接口无线化。

接线安装

灯具被控端

一般LED灯泡或灯具其使用的电压为12V或24V,而Arduino透过PWM pin最大的输出仅为5V,因此需要使用TIP 120晶体管来放大电流。(TIP120最大可接至60V/5A)。如下图,左侧原本直接用pwm pin来控制小电流LED,若改用大电流时须改接如右图。(注意这不能用于交流只能用在直流电哦)

材料

Arduino开发板(UNO、Nano…皆可)

MUART0-S-1-1 无线串行端口传输模块(1对1) 的S1端

TIP120 三极管

12V LED灯泡

升压模块 5V to 12V

接线安装

接线示范

手势控制端的程序中,EGAD_005.get_distance()是读取前方手部的距离,这个距离不太长,回传的值会介于18~63之间,如果超过了侦测距离library就会认定手部已离开,此时虽然使用者还举着手以为正在距离侦测模式。因此,有个明显的灯号提醒用户是必要的,程序中使用红灯让表示目前正在距离侦测中(即调光的动作)。

当使用EGAD_005.get_distance()读取前方手部距离时,library会不断的传回目前的距离值,当使用者移动到某距离确定了亮度离开时,注意此时library所回传的距离不会固定在最终那个值,而会持续减少下去;由于使用者有在移动手部调整距离时,回传的距离值会是多组介于18~63的相同数字数值排列,因此,在灯具控制端程序中,可用判断前后两次的距离值是否相同来解决手部离开时,回传的距离值会持续减少的问题。

您还可以改良一下灯具控制端,把输出到TIP 120的PWM讯号接到MUART0-S-1-1的Input port,并且读取手势控制端Output port,就可以判断远程的灯具在使用者手挥控制后,是否被正确的开启或关闭了。

3D打印外壳及组装

下载3D模型,打印

stand.stl:手挥座,lampcase.stl:灯具基座,lamptop.stl:灯具外罩

安装好就可以开始操作了。

作者:Cheng Hsun Tsen

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存