| 在本篇文章中,我们主要介绍了如何使用Arduino开发板制作一个手势遥控器。本项目采用了APDS-9960 RGB和手势传感器扩展板。通过将手滑过传感器,您可以控制不同的电子设备,例如电脑、微控制器、机器人等。 采用APDS-9960极大方便了连接,并且它采用I2C接口进行通信。您可以将其用作电视的遥控器,像我们一样,但也可以将其用于控制其他使用红外线(IR)的设备。在本文中,我们会依次介绍项目制作的过程,包括电子电路设计、代码、3D打印部件以及组装。 
 手势遥控器的电路原理图 
  
 主要组件 ●    SparkFun APDS-9960 - RGB和手势传感器 ●    红外(IR)LED 950nm ●    红外接收器二极管 - TSOP38238 ●    倾斜开关(可选) ●    锂聚合物电池 - 3.7v 1000mAh(3.5cmx5cm) ●    USB迷你B电缆 ●    Arduino Pro Mini 328 - 3.3V / 8MHz 
  
 其他次要组件 ●    220欧姆电阻 ●    晶体管 - NPN BC337 ●    SparkFun FTDI扩展板 ●    面包板 ●    跳线 ●    原型PCB(3厘米x 7厘米) 
 硬件 ●    M2钣金十字螺丝x 8 ●    烙铁 ●    3D打印机 
 将这些组件添加到面包板后,我们获得了完整的组件列表,并根据接线说明连接电路。 
 手势遥控器有四个主要部分:APDS-9960传感器实际上是四个不同的传感器!它可以用作环境光线传感器、RGB传感器、接近传感器,当然也可以用作非接触式手势传感器。 我们还使用红外LED将红外代码传输到电视机。Arduino pro mini 3.3v微控制器控制红外发光二极管和传感器,并且使用3.7伏锂聚合物电池为整个电路供电。 
  
 代码 本文使用的代码基于Ken Shirriff针对IR LED的IR遥控库和Sparkfun手势传感器库。 
  
 
  
 我们合并了这两个基本代码示例,一方面发送IR原始代码,另一方面感测不同的手势。该代码可在Github Repo上获得。确保安装上面的两个库以保证其正常工作。 
  
 设置功能 正如你在代码中看到的,我们用不同的手势设置了6个不同的功能: ●    向左或向右挥动,让你在不同的频道之间切换 ●    上下挥动控制音量 ●    将手靠近传感器可使电视机静音 ●    以及将手从传感器上移开即可打开和关闭电视机 
 查找红外信号 在我们实际制作遥控器电视之前,我们需要弄清楚发送给它的红外信号。为此,我们将红外接收器连接到另一个Arduino开发板,并上传IR远程库中的红外接收代码示例。 
 通过打开Arduino IDE上的串行监视器并单击电视遥控器按钮,我们可以确定为每个遥控功能使用哪个IR代码。 
 我们点击了我们想要使用的所有遥控按钮,并将数据复制到代码里面,然后我们将每个数组重命名为其实际的功能名称,并删除了我们不需要的所有部分。接下来,我们将所有红外数组复制到我们以前的手势代码中,并添加红外“send raw”函数,为每个手势使用正确的红外数组。例如,当感测到向上方向手势时,它发送VolUp的IR代码,等等。此时,我们使用FTDI Breakout上传代码进行一些测试。 
 降低功耗 我们在这个项目中处理的另一个问题是功耗。由于我们希望电池能够持续很长时间,因此我们在代码中添加了“深度睡眠”功能。这意味着除非手势传感器接收到信号,否则Arduino实际上会休眠。该信号通过其中断引脚唤醒Arduino。只有这时,Arduino才能执行解密不同手势并通过IR LED发送IR信号的任务。 
 一些最终的调整 为了使电路更小一些,我们使用焊接电路代替面包板。这次我们将这些元件直接焊接到了Arduino上。我们还使用了一块原型PCB,将其切割成3cm x 5cm以连接不同的地线和电源线,以及焊接IR LED晶体管和电阻。 
  我们添加了一个电池插头和2个接头,使我们能够轻松连接IR LED。 最后,我们增加了一个很酷的调整来节省更多的电池电量:我们在电池接地线和Arduino之间焊接了一个倾斜开关。这意味着你可以翻转电路来切断Arduino的电源,类似于电源开关。 
 组装 我们测量了所有组件并建模了一个可以容纳所有组件的3D塑料外壳。你可以在这里找到.stl文件。 然后,我们打印机箱,拧入手势传感器,将LED安装到其孔中,拧入PCB中,将电池装入机箱盖,然后将机箱盖拧紧到机箱上。 
  
 现在手势遥控器已经做好了!我们希望你能喜欢这个项目,并找到它的一些不错的用途。如果您对如何改进此项目有任何想法、意见或疑问,欢迎您在下面进行回复。如果您根据本文制作了这个项目,我们也很乐意听到!
 |