zoukankan      html  css  js  c++  java
  • 制作Kinect体感控制小车教程 <一>

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


                                           Kinect体感控制小车       

    Kinect部分:


     购买KInect,这第一步就不多说了。

    由于Kinect二代出了之后,Kinect一代价格立马降了不少,这对于刚開始学习的人绝对是一个福音。几个月之前700多的Kinect一代,如今仅仅须要400多了。

    有的Kinect交流群里面二手的都已经仅仅卖100块钱了。


    买回Kinect,之后就開始学习了。



          一:硬件配置

    1. 一台电脑。当然内存越大越好(推荐2G或者以上)。处理器频率(2.66GHz及以上)越高越好。

    2. Windows 7操作系统。以及支持Microsoft DirectX9.0c兼容的显卡
    3. 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(右轮),分别控制左轮电机,右轮电机。

    电机驱动如图:


    以下简单的介绍一个怎么控制:

    <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


  • 相关阅读:
    PyCharm 的安装与入门操作
    第一个 Python 程序
    ubuntu中使用apt命令安装ipython失败解决方案
    MOS管学习笔记
    arm-none-linux-gnueabi-gcc No such file or directory这个错误的解决方法
    Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.
    linux 下chown改变隐藏文件夹
    busybox编译 fatal error: curses.h: 没有那个文件或目录解决办法
    mount加载虚拟机增强工具步骤
    命令行终端快捷键
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8282320.html
Copyright © 2011-2022 走看看