事先声明,本文涉及到的所有代码都是我毕业设计的内容,请勿转载。

  1. 准备工作
    Arduino IDE、Processing、8*8 WS2812B、Leap Motion
    其中,Arduino需要安装Adafruit_NeoPixel.h,用来驱动WS2812B;Processing需要安装LeapForProcessing用于获取Leap Motion的手部信息;而Leap Motion需要从官网中获取SDK,我用到的SDK为最新版2.3.1.
  2. Processing
    为了能够与Arduino进行通信,我们需要在编程层次调用相应的库函数(?这个地方的名称不确定)
import processing.serial.*;
import de.voidplus.leapmotion.*;
  除此之外,我们需要定义其对应的变量名称:
Serial port;
LeapMotion leap;
接下来,进行一些简单的初始化设置:
void setup()
{port = new Serial(this,"COM3",9600);
//这里是设置端口的地方,可以是蓝牙也可以是arduino的端口leap = new LeapMotion(this);
}
为了能够不断地获取手部信息或者手指信息,我们需要用到for循环:
for(Hand hand : leap.getHands()){for(Finger finger : leap.getFingers()){//...}}
当然,我们需要调用函数创建我们的手指类型的变量,比如:
    Finger  fingerThumb        = hand.getThumb();Finger  fingerIndex        = hand.getIndexFinger();Finger  fingerMiddle       = hand.getMiddleFinger();Finger  fingerRing         = hand.getRingFinger();Finger  fingerPink         = hand.getPinkyFinger();
因为我需要用手做出不同的数字进而控制灯光,所以,我用到了`isExtended()`函数来判断单个拇指是否伸出,比如:
(fingerIndex.isExtended() == true)
最后,我们需要发送数据给Arduino,使之产生相应结果:
port.write("a");
到这里,Processing的编码就完成了。
  1. Arduino
    首先,我们需要进行一些简单的初始化、变量的创建、以及库函数的调用。
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> //16兆赫Adafruit饰品所需
#endif// Arduino上的哪个插脚与NeoPixels相连?
#define PIN        6// Arduino上有多少个LED?
#define NUMPIXELS 64Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);#define DELAYVAL 30 //像素之间暂停的时间(毫秒)
然后,需要设置串口通信的波特率:
void setup()
{#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)clock_prescale_set(clock_div_1);#endifSerial.begin(9600);  //比特率设置为一致方可通信pixels.begin();pixels.setBrightness(brightness);
}
并接收Processing发过来的数据:
getStr = Serial.read();
最后,我们通过**if语句**的判断方式  使之产生对应的输出。
需要注意的是,Leap Motion每秒能检测200帧的数据,意味着你哪怕将手放在leap的感应区,它会通过processing发送许多的数据,如果你在arduino的输出程序加入了延时,回答之实时性非常差,这个时候,可以通过while循环的方式解决,如下:
while(getStr != getStr1){//...getStr1 = getStr;}
  1. 总结

写这篇文章是因为,我最开始做这个题目的时候网上相关的资料几乎没有,导致我不断的遇挫;希望我的这篇文章可以帮到需要的人

基于Leap Motion的智能灯光控制系统相关推荐

  1. 基于ARM的智能灯光控制系统(4)数据结构

    基于ARM的智能灯光控制系统(4)数据结构 嵌入式开发培训(阶段2)底层系统开发 视频地址 智能灯光控制系统 视频地址 主控后台服务程序 daemon.c 程序功能模块 #include <pt ...

  2. 基于ARM的智能灯光控制系统-----需求分析

    基于ARM的智能灯光控制系统-----需求分析 项目实践流程: 1.设计项目需求文档 说明项目设计目的,项目功能,项目模块,实现技术. 2.项目编码设计 程序要求模块结构化(函数),编码风格良好,多文 ...

  3. 基于ARM的智能灯光控制系统(1)项目介绍

    基于ARM的智能灯光控制系统(1)项目介绍 项目实践说明: 本实践项目是嵌入式开发培训(阶段2)底层系统开发视频课程的综合实践项目. 项目开发使用的技术知识点包括:C语言编程,文件编程,串口编程,网络 ...

  4. 工厂用计算机自动控制技术,一种基于计算机技术的工厂车间灯光控制系统的制作方法...

    本发明涉及灯光控制领域,具体为一种基于计算机技术的工厂车间灯光控制系统. 背景技术: 计算机技术的内容非常广泛,可粗分为计算机系统技术.计算机器件技术.计算机部件技术和计算机组装技术等几个方面.计算机 ...

  5. 51单片机的智能灯光控制系统

    一.硬件设计 本设计主要由51单片机最小系统.红外热释电模块.光强度检测模块.继电器灯光控制模块和电源模块组成. 硬件框图如下: 二.设计功能 光敏电阻检测环境光的光线强度,然后通过比较器电路做比较, ...

  6. 智能控制和计算机控制的区别,智能灯光控制系统与传统灯光系统有哪些区别?...

    原标题:智能灯光控制系统与传统灯光系统有哪些区别? 灯光是黑夜中不可缺少的重要照明工具,随着城市发展 越来越快,夜间生活也越来越丰富,那么照亮夜间的灯光也就变的越来越重要,也是随着人们对灯光.生活质量 ...

  7. 基于 STM32 的语音识别智能家居控制系统的设计(LD3320语音识别芯片+ESP8266 WIFI模块+DHT11温湿度采集+MQ系列 烟雾及可燃气体+蜂鸣器+步进电机模拟窗帘+OLED液晶显示+

    ## **基于 STM32 的语音识别智能家居控制系统的设计(LD3320语音识别芯片+ESP8266 WIFI模块(阿里云 或ONENET或局域网)+DHT11温湿度采集+MQ系列 烟雾及可燃气体+ ...

  8. B005 – 基于STC8的单片机智能路灯控制系统

    任务详情 基于单片机的智能路灯控制系统 非节能模式下LED灯同时亮灭,凌晨0点--6点为节能模式,该模式下只亮LED灯 中的一部分.当有声响时则开启全部LED灯,延迟1分钟后重新变为一半LED灯处于点 ...

  9. 3、基于51单片机的智能水箱控制系统-温度-PH值-水位(仿真+程序+原理图)

    目录 基于51单片机的智能水箱控制系统 1.主要功能 2.实验结果 3.仿真工程 4.原理图 5.程序源码 6.资源获取 基于51单片机的智能水箱控制系统 1.主要功能 51单片机检测水箱内温度,ph ...

最新文章

  1. linux 常用find命令
  2. 【错误记录】Google Play 上架报错 ( 您还没有为此轨道选择任何国家或地区。至少要添加 1 个国家或地区才能发布此版本)
  3. IOS之通知KVO的常量定义
  4. 主程序分析法MATLAB编程,专题五  概率统计问题的Matlab求解
  5. 边打工边研究数学 泸州“农民数学家”出版15本著作
  6. 如何使用和自定义Win11快速设置菜单
  7. 凑热闹,谈密码,Challenge-Response密码验证
  8. Python实现重心法
  9. MacBook苹果电脑翻盖自动开机及音效设置
  10. 生活中笔记本内存的主要作用
  11. 日本官方版灌篮高手结局
  12. hihocoder 1251 Today Is a Rainy Day 2015北京区域赛C
  13. 什么是双线双IP,什么叫双线双IP
  14. Solr之Facet与FacetPivot的使用和区别
  15. diy计算机工作站,程序猿 篇一:迟到的 618 攒机实录:自建巨硬工作站
  16. java生成word,html文件并将内容保存至数据库 (http://blog.163.com/whs3727@126/blog/static/729915772007325112014115/)
  17. 计算机图形学直线算法程序,计算机图形学直线生成算法实现.doc
  18. java远控_利用Java实现远程控制
  19. 2018年最新Python学习路线图
  20. DorisDB系列文档(三)基本原理

热门文章

  1. ROC曲线的阈值确定与平衡点确定
  2. 9月份四六级报名通知来啦!2020年上半年四六级考试特别提示
  3. CCF x Jina AI:1024 中国工程师文化日全议程
  4. Qt开发基础(10)——定时器
  5. Win7系统提示对于目标文件系统文件过大
  6. 【HCIE-RS 天梯路】VXLAN EVPN
  7. URAL 1295. Crazy Notions(数学 规律)
  8. [网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
  9. Gym实战-冰面滑行
  10. 计算机的物理地址概念,物理地址与内存空间的概念问题