制作Kinect体感控制小车教程 <一>
转载请注明出处:http://blog.csdn.net/lxk7280
Kinect体感控制小车
Kinect部分:
购买KInect,这第一步就不多说了。
由于Kinect二代出了之后,Kinect一代价格立马降了不少,这对于刚開始学习的人绝对是一个福音。几个月之前700多的Kinect一代,如今仅仅须要400多了。
有的Kinect交流群里面二手的都已经仅仅卖100块钱了。
买回Kinect,之后就開始学习了。
一:硬件配置
- 一台电脑。当然内存越大越好(推荐2G或者以上)。处理器频率(2.66GHz及以上)越高越好。
- Windows 7操作系统。以及支持Microsoft DirectX9.0c兼容的显卡
- Kinect for Xbox360 Sensor(假设单买的话,自带有USB Power Adapter,假设是和Xbox360套装一起捆绑的话。由于Xbox主机能够直接为Kinect外设提供电源,所以没有电源。可能须要另买USB Power Adapter)
可是。如今购买的Kinect已经不像几个月曾经那样麻烦了。电源不须要专门购买Adapter了。一般都能够直接插在电源上。
PS:曾经须要专门购买Adapter是由于,Kinect的供电是外国标准电源。与中国标准的220V,50HZ的民用电源不同。所以须要一个转换电源。
二:软件配置
1. Visual Studio 2010 Express或者Visual Studio 2010专业版或其它版本号
2. .NET Framework 4.0
3. Kinect for Windows SDK,最新版本号为1.8版本号,下载地址:http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx
三:安装步骤
断开Kinect与电脑的连接;
关闭Visual
Studio;
安装SDK;
安装完毕后就能够识别Kinect,这是Kinect上面LED指示灯会变成绿色,就表示成功了。
以上三部分我是依照这个博文做下来的:http://www.cnblogs.com/yangecnu/archive/2012/03/30/KinectSDK_Geting_Started.html,内容非常具体,步骤也非常清楚。
之后依照这位大牛博主翻译的文章好好看几篇,跟着练习几篇之后。就能够開始进行我们的Kinect部分的处理了。
Time Goes By,After Some Days , I Decide To Start
To Write My Program.
每次写这样的程序。最好之前好好分析一下要用到哪些控件、哪些库,然后由简单入深一个一个学习完之后開始做。就我个人来说,我做东西不怎么喜欢系统得学习一样东西,比方要用到Visual
,可能有的人会买本Visual的书,一个章节一个章节得看下去,我感觉这样花时间并且记不住。所以用到什么学什么,这样蛮好的。
分析:
一共两大部分,Kinect识别部分和小车移动部分。小车部分基于Arduino。C。Kinect基于Visual,C#。
对于一个一无所知的人,我相信你不会做这个。
。所以默认作者是一个入门了的geek。
已经知道了解会用C和C#的小白。(这里说的会用。仅仅要你会基本的语法就能够了。)
对于我所说的由浅入深。
非常明显Kinect部分难于Arduino部分,所以体感小车从Arduino部分入手開始制作。
Arduino程序:
Aruidno如图:
即将用到的东西事实上非常少。六个普通的Digital引脚(用来控制电机驱动)。
两个引脚给ENA,ENB(低电平有效,可控)。两个引脚给P0P1
(左轮) , 还有两个给P2P3(右轮),分别控制左轮电机,右轮电机。
电机驱动如图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHhrNzI4MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="400" height="300" alt="" />
以下简单的介绍一个怎么控制:
<span style="white-space:pre"> </span>ENA = 0 ; ENB = 0; P0 = 0; P1 = 1; P2 = 0; P3 = 1; //前进。 ENA = 0 ; ENB = 0; P0 = 1; P1 = 0; P2 = 1; P3 = 0; //后退。
ENA = 0 ; ENB = 0; P0 = 0; P1 = 1; P2 = 0; P3 = 0; //右转弯。
ENA = 0 ; ENB = 0; P0 = 0; P1 = 0; P2 = 0; P3 = 1; //左转弯。
ENA = 0 ; ENB = 0; P0 = 0; P1 = 0; P2 = 0; P3 = 0; //停止。
PS
: 由于机械臂比較重。所以选用的是坦克履带车。
双电机驱动。一个电机控制一边的履带,通过差速转弯。关于差速转弯,能够通过PWM控制,在这里由于我不须要非常高精度的控制,我选择的是一边转一边停的方式转弯。假设要精确控制的时候,还是要用到PWM控制的。
坦克履带车如图:
电机控制之外还要用到无线串口模块。通过波特率9600,功率15dbm,电压5V的无线串口,接收PC端发过来的数据。
无线串口如图:
比如程序:
Serial3.begin(9600); Serial.begin(9600); while(Serial3.avaliable() > 0)
{ str = Serial3.read(); Serial.printnl(str); }
之后对接收到的数据进行简单的Switch Case语句的处理。
基本的算法处理在PC端。PC端识别手势骨骼之后,进行算法处理。最后总结归纳出五个字符,分别例如以下:
<span style="white-space:pre"> </span>L --- 左拐
<span style="white-space:pre"> </span>R --- 右拐
<span style="white-space:pre"> </span>S --- 停止
<span style="white-space:pre"> </span>F --- 前进
<span style="white-space:pre"> </span>H --- 后退 (由于后面的体感机械臂中要用到B字符。所以就用H取代B作为后退指令)
接下来,写一下switch伪代码,相信大家都能写完这段程序,就不附源码了:
switch(str)
{
case 'L':
{
左拐;
break;
}
case 'R':
{
右拐。
break;
} case 'F':
{
前进。
break;
}
case 'H':
{
后退;
break;
}
case 'S':
{
停止。
break;
}
}
学完这两个部分:体感小车在程序方面。你就已经有能力完毕小车了!
是不是非常快。
So,用啥学啥,接下来能够開始干Kinect了。Arduino部分真的非常easy,会C语音的人绝对能够天之内搞完。
我写的顺序都是依据我个人学习的顺序,可能在大家看来会比較乱,可是属实的记录了这个过程。望谅解。
这篇教程比較简单,Arduino端没什么难的地方。下一篇将着重介绍PC端的处理。
这段时间做东西并且上课比較累,更新会比較慢 = 。
=
From : Themeldoy
QQ: 416815882
Tel: 18362971110
制作Kinect体感控制小车教程 <一>的更多相关文章
- 使用HTML5开发Kinect体感游戏
一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...
- Kinect外包团队(长年承接微软Kinect体感项目外包,有大型Kinect案例)
承接Kinect体感企业项目.游戏项目外包 北京公司.专业团队,成员为专业WPF产品公司一线开发人员,有大型产品开发经验: 提供优质的售后服务,保证产品质量,轻量级产品可以提供规范清晰的源代码,有业务 ...
- Kinect外包-就找北京动点飞扬软件(长年承接微软Kinect体感项目外包,有大型Kinect案例)
承接Kinect体感企业项目.游戏项目外包 有丰富案例提供演示,可公对公签正规合同,开发票. 我们是北京的公司.专业团队,成员为专业WPF产品公司一线开发人员,有大型产品开发经验: 提供优质的售后服务 ...
- arduino体感控制简单版
https://learn.sparkfun.com/tutorials/apds-9960-rgb-and-gesture-sensor-hookup-guide/all 硬件连线 关键 VCC= ...
- Kinect+unity 实现体感格斗闯关小游戏
文章目录 项目地址 1 项目概况 1.1 项目简介 1.2 项目目的 1.3 主要技术 2 设计 2.1 基本概念 2.2 框架 2.3 算法 2.4 模型 2.5 调查问卷 3 实现 3.1 技术难 ...
- 十大最佳Leap Motion体感控制器应用
十大最佳Leap Motion体感控制器应用 Leap Motion Controller也许还没有准备好大规模的发售,但是毫无疑问,这款小巧的动作捕捉器是我们见过的最酷的设备之一.这款设备的硬件 ...
- OpenNI结合Unity3D Kinect进行体感游戏开发(转)
OpenNI结合Unity3D Kinect进行体感游戏开发(转) 楼主# 更多 发布于:2012-07-17 16:42 1. 下载安装Unity3D(目前版本为3.4)2. 下载OpenN ...
- U3D外包公司—北京动点(公司性质)承接U3D、Kinect、VR虚拟现实,增强现实,体感互动,大屏互动等各类外包
unity3d外包就找动点软件承接虚拟现实项目外包 承接U3D.Kinect.VR虚拟现实,增强现实,体感互动,大屏互动等各类外包 联系请加QQ:372900288 联系电话:13911652504 ...
- Kinect 1.8 体感开发,手势,姿态(Pose) 捕捉判断方法以及一些辅方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
随机推荐
- TCP/IP图解学习总结(二)
注意:这里的第n层是依照OSI协议来的 I 网桥--2层交换机.数据链路层面上链接两个网络的设备.它可以识别数据链路层中的数据帧. II 路由器-3层交换机.网络层面上连接两个网络,并对分组报文 ...
- 安装 VNC 和 XRDP
安装 VNC 和 XRDPapt-get install vnc4server tightvncserver xrdp fluxbox xtermcat >vncstop.sh << ...
- IIS特殊字符设置
简介:[iis7]请求筛选模块被配置为拒绝包含双重转义序列的请求.HTTP 错误 404.11 - Not Found 特殊字符最好替换成其他的字符,主要的特殊字符有”*”.”&”.”%”.” ...
- BZOJ2142: 礼物(拓展lucas)
Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店 ...
- Python操作MySQL数据库完成简易的增删改查功能
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目介绍 二丶效果展示 三丶数据准备 四丶代码实现 五丶完整代码 一丶项目介绍 1.叙述 博主闲暇之余花了10个小时写的 ...
- STM32之CAN通讯接收过滤器过滤分析
一.前言 学习了CAN通讯,底层的东东CAN控制器已经帮你处理完成,也就是CAN通讯协议已经做好,你按协议格式往对应的位扔数据发送就好,所以使用CAN通讯,我们只需要去关心制定发送的数据间的协议,也就 ...
- Lamp(linux+apache+mysql+php)环境搭建
Lamp(linux+apache+mysql+php)环境搭建 .安装apache2:sudo apt-get installapache2 安装完毕后.执行例如以下命令重新启动apache:sud ...
- VA对于开发QT是神器,VA自动补全QT
我怎么就忘了,VA也可以适用于VS下开发QT程序.其中QT的头文件自己增加,主要是: C:\Qt\4.8.6_2008\include 但还有一些特殊类不认识,所以还得继续增加: C:\Qt\4.8. ...
- Android实现点击通知栏后,先启动应用再打开目标Activity
情况简述 在开发Android app的过程中,遇到这样一个需求:app中启动一个Service,该Service在独立进程中运行,与服务器保持长连接,将服务器推送过来的消息在通知栏中显示,并设置点击 ...
- css中的!important作用
css中的!important作用 一.总结 1.!important:是hack, 2.!important作用:让浏览器首选执行这个语句,当对同一个对象设置了多个同类型的属性的时候,首选执行这一个 ...