制作Kinect体感控制小车教程 <一>
来源:互联网 发布:qq群排名软件 编辑:程序博客网 时间:2024/06/03 16:05
转载请注明出处: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)
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部分真的很简单,会C语音的人绝对可以天之内搞完。
我写的顺序都是根据我个人学习的顺序,可能在大家看来会比较乱,但是属实的记录了这个过程。望谅解。
这篇教程比较简单,Arduino端没什么难的地方。下一篇将着重介绍PC端的处理。
这段时间做东西而且上课比较累,更新会比较慢 = 。 =
From : Themeldoy
QQ: 416815882
Tel: 18362971110
- 制作Kinect体感控制小车教程 <一>
- 通过Kinect制作体感控制机器人
- 基于Kinect体感遥控多功能小车
- 基于S3C6410的小车制作(一)
- 智能小车的制作(一)
- 基于STM32F103WIFI视频小车制作(一)
- (一)基于2440智能小车控制
- Kinect OpenNI 体感开发技术教程
- Android手机控制树莓派制作的四驱小车
- 通过WiFi控制智能小车机器人制作过程详解
- Android手机控制树莓派制作的四驱小车
- Android手机控制树莓派制作的四驱小车
- Android手机控制树莓派制作的四驱小车
- 基于Qt的wifi智能小车的制作(一)
- 智能小车制作过程全纪录:一、硬件平台
- 基于51单片机和L298N的小车制作(一)
- 关于可循线智能小车的制作(一)
- 外挂制作教程一
- Compare_Connect_Letter
- STL之map的基本使用
- ACdream 1209 群赛D qj的招待会(flyod)
- UF超滤膜:UF超滤膜组件对进水水质的要求
- efm32 网站
- 制作Kinect体感控制小车教程 <一>
- 安卓罗盘开发检测系统是否支持电子多盘
- 颜色开发对照表
- myeclipse 配置weblogic
- 微信公众平台开发者文档
- 一本好看的书————《反欺骗的艺术——世界传奇黑客的经历分享》
- 重命名表空间
- 如何mount一个TAR文件
- Hadoop Problem : hadoop0.20.2中的KeyValueTextInputFormat