Kienct与Arduino学习笔记(1) 基础知识之Arduino’Kinect‘Processing

转载请注明出处:http://blog.csdn.net/lxk7280

        首先,对即将要用到的主要东西进行初步的理解。

分为两大类,硬件和软件。硬件,即Kinect。软件,即Arduino和Processing。Arduibo相信很多人都用过,机器人、四轴飞行器等电子产品不少与Arduino这个浪漫的编译器有联系,为什么说浪漫呢,这不得不从它的开发者说起,Arduino的开发者可以说是艺术家出身,所以Arduino总给人一种浪漫高贵的感觉,不得不吐槽一下Keil,界面确实不怎么好看,不过依然是我的最爱。毕竟是第一个接触的编译器,Keil的兼容性简直牛。

1. Arduino。

       Arduino是一个开源硬件平台,由微控制器、编程语言和IDE构成。

      下面说说Arduino的浪漫的起源,在2005年的意大利伊夫雷亚交互设计学院,这款以“让艺术家和设计师也可以轻松掌握电子学和编程”为意图的平台诞生了。

       Arduino的核心是一个8bit的Atmel的AVR单片机,它的引脚有两种模式:输入和输出,默认情况下为输入。它有14个数字引脚,6个脉冲调制引脚,1个6通道的模数转换器(ADC)10bit。即:0V==0  5V==1023  2.5V==512,ATmega内置了20千欧的上拉电阻。

小知识点补充:几位单片机重的几位是什么意思?如:8位的Arduino,32位的Stm32,32位的K60等等。

Answer:这里的位数指的是二进制数,多少位是指该处理器,特别是其中的寄存器能够保存多少位的数据,也就是它一次能处理多少位的数据。位数越大,处理速度越快,保存数据越多。

2.Processing

Processing的IDE类似于Arduino的IDE,后者跟着前者的基础做。

Processing的创始者:Casey
Reas与Ben Fry是美国麻省理工学院媒体实验室
(M.I.T. Media Laboratory) 旗下美学与运算小组
(Aesthetics & Computation Group) 的成员。美学与运算小组由著名的计算机艺术家John
Maeda领导,于一九九六年成立至今,在短时间内声名大噪,以其高度实验性及概念性的作品,既广且深地在艺术及设计的领域里,探索计算机的运算特质及其带来源源不绝的创造性。极少数人能完美结合并平衡艺术家、设计师和计算机工程师的才华于一身,更重要的是Casey和Ben拥有开放源码的胸襟。

下面介绍一下Processing编译器上面的几个按钮:

Export:可以把Processing代码转换成Java代码并编译成可以嵌入浏览器的Java Applet,我们在网上看到的Processing Applet都是通过这个方法实现。

        Standard:用来切换标准模式与Android模式,用于Android应用开发。

3.Kinect

关于Kinect的历史,它于2010年11月4日面世,60天出售了80万套,以“历史上销售速度最快的消费类电子产品”载入吉尼斯纪录。2009年6月1日,微软推出Project Natal项目,2010年6月13日改名为Kinect,但未提供任何驱动程序。2010年11月,300美元奖励提供驱动程序的Hector Martin。2010年,PrimeSense发布驱动程序和OpenNI的Kinect架构,推出华硕Kinect。2011年,微软发布非商业化的Kinect的SDK。2012年2月,又发布了一个商业版本。

    继PrimeSense发布OpenNI框架,华硕和PrimeSense推出专门的PC兼容设备,2012年华硕推出Xtion PRO,带有一个深度摄像头,随后发布了Xtion PRO Live,和Kinect一样,包括RGB摄像头和红外摄像头。Xtion针对PC专门设计的,而Kinect针对Xbox360.

    Kinect的硬件构造:由一个RGB摄像机,一个红外激光投射器和红外线CMOS传感器组成的深度传感器,一个带有声源定位和环境噪声抑制功能的话筒阵列,一个LED光源,一个三轴加速度计,一个舵机。可实现3D扫描,一般工作范围:1.2m到3.5m,太近了扫描不到,显示黑点;太远了扫描精度下降,看起来像一个平面物体。

   Kinect的功能:1.640x480的RGB图像。

                             2.640x480的红外线图像。

     3.11bit的深度图。

                             4.手势跟踪和骨骼跟踪。

    Kinect的驱动程序框架:OpenKinect的LibFreenect驱动;PrimeSense的OpenNI和NITE,分别访问Kinect的数据流和骨骼手部跟踪功能。

    OpeNI:是PrimeSense的框架,让人可以从Kinect中获取深度和RGB图像,它是开源的,可以用于商业用途。

    Nite:是中间件,让人可以执行手部或者骨骼跟踪和手势识别功能,Nite不是开源的,但是可以用于商业用途。

小知识点补充: 什么是驱动程序?

驱动程序:把预先定义好的API应用编程借口转换成硬件内置的API,让不同的设备有同样的外观和行为,可以看作是硬件与其应用程序或操作系统之间的一个翻译。

什么是3D扫描技术?

深度传感器的两个工作单元,红外线投射器与红外线摄像机通过PrimeSense芯片连接,捕捉前方3D场景。Kinect重的红外线摄像机是VGA(640x480)分辨率,深度为11bit,灵敏度级别为2048.

“世界上首个独家提出的专业PC动作感应软件开发解决方案”。    --  Xtion PRO Live

时间: 2024-09-29 02:00:55

Kienct与Arduino学习笔记(1) 基础知识之Arduino’Kinect‘Processing的相关文章

C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字节的值,该如何在它上面调用方法? 二:值类型转换为引用类型--装箱 2.1CLR对值类型进行装箱时:新分配托管堆内存,将值类型的实例字段拷贝到新分配的内存中,返回托管堆中新分配对象的地址.这个地址就是一个指向对象的引用. int i = 10; Object obj = i; 三:将引用类型转换为值

[Golong]学习笔记(一) 基础知识

Go编程基础 Go的内置关键字(25个) 不多 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continute for import return var Go的注释方法(和js一样) 单行注释: // 多行注释: /**/ Go程序一般结构 common_structure.go 通过 pack

.net学习笔记---xml基础知识

一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基础: <?xml version="1.0" encoding="utf-8" ?> <books ISBN="9787544238212"> <title>xml学习笔记</title> <pr

C#学习笔记(基础知识回顾)之枚举

一:枚举的含义 枚举是用户定义的整数类型.在声明一个枚举时,要指定该枚举的示例可以包含的一组可接受的值.还可以给值指定易于记忆的名称.个人理解就是为一组整数值赋予意义. 二:枚举的优势 2.1:枚举可以使代码更易于维护,有助于确保给变量指定合法的.期望的值. 2.2:枚举可以使代码清晰,用描述性的名称来表示整数值,增加代码可读性. 三:枚举的使用 /// <summary> /// 声明一个枚举,审核状态 /// </summary> public enum AduitStatus

[算法学习笔记]算法基础知识

算法基础知识 算法的五大要素 有穷性:算法必须能够在有限个步骤内完成. 确定性:算法的每一步必须有确定的定义. 输入 输出 可行性:算法的每个步骤都必须能分解为基本的可执行操作,每个步骤都必须能在有限时间内完成 循环不变式 循环中的循环不变式可以帮助我们理解算法的正确性.为了证明算法的正确,必须证明循环不变式的三个性质: 1. 初始化:循环不变式在循环开始之前是正确的. 2. 保持:循环不变式在循环的每一次迭代开始之前是正确的. 3. 终止:在循环结束时,不变式会给出一个可以对判断算法是否正确有

《汇编语言》学习笔记1——基础知识

第一章   基础知识 汇编语言的组成 汇编指令:机器码的助记符,有对应的机器码(汇编语言的核心) 伪指令:没有对应的机器码,由编译器执行,计算机并不执行 其他符号:如:+.-.*./等,由编译器识别,没有对应的机器码 指令和数据都是应用上的概念,在内存或磁盘上指令和数据都是二进制信息. 存储器被划分为若干个存储单元,每个存储单元从0开始. 一个存储器有128个存储单元,一个存储单元存储一个字节,一个字节有8个二进制位. 内存换算: 1bit=8byte(B).1KB=1024B.1MB=1024

Scala学习笔记--正则表达式基础知识、如何在scala内使用

正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www.jb51.net/tools/zhengze.html  版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源 使用格式:  见java API  http://docs.oracle.com/javase/7/docs/api/ java : java.util.reg

汇编学习笔记---(2)基础知识

今天,接着上次,继续学习汇编语言,主要对内存地址空间.主板.接卡口.存储芯片等进行了解. 什么是内存地址空间? 要搞清楚这个问题,我们首先要知道主板和接口卡. 每个PC都会有一个主板,主板上附有核心器件,包括CPU.存储器.外围芯片组.扩展插槽等,它们通过地址总线+数据总线+控制总线相连. 接口卡啥作用,说白了就是通过总线接收CPU发送的命令,对显示器.音响等外部设备进行控制. 一台PC中主要有两种存储器:随机存储器RAM和只读存储器ROM. RAM中用于存放CPU使用的绝大部分程序和数据,PC

R语言学习笔记:基础知识

1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) 表示把1 - 100的所有数字都给x这个变量 5.查看x的类型:>mode(x) 6.查看x的长度:>length(x) 7.将两个向量组成一个矩阵: >rbind(x1, x2)  注:r是row的意思,即行,按行组成矩阵. >cbind(x1, x2)  注c是column的意思,

python3基础学习笔记(基础知识)-01

python的基础学习: 数据类型:python是弱类型语言,在定义变量的时候,可以不直接制定数据类型. 1.Numbers: int 有符号整型    a = (-1)  a = 1 long 长整型 float 浮点型 complex 复数 2.boolean: True    Flase 3.String :字符串   a = "Hello World" 4.List :列表 有序  list1 = [] 5.Tuple : 元组  定义后不能被修改  a = (1,2,3) 6