用户工具

站点工具


ideas:kinect_arduino

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
ideas:kinect_arduino [2015/12/24 15:22]
gdw
ideas:kinect_arduino [2015/12/24 22:34] (当前版本)
gdw
行 8: 行 8:
  
 结束 结束
 +
 {{:​ideas:​k6.jpg?​200|}} {{:​ideas:​k6.jpg?​200|}}
 +
  
 电源,arduino uno,机械臂 电源,arduino uno,机械臂
 +
 +
 {{:​ideas:​k7.jpg?​200|}} {{:​ideas:​k7.jpg?​200|}}
 +
  
 kinect for windows kinect for windows
-{{:​ideas:​k8.jpg?200 |}}+ 
 +{{:​ideas:​k8.jpg|}} 
 kinect演示界面 kinect演示界面
  
行 50: 行 57:
 1.Arduino端 1.Arduino端
 Arduino的主要目的是接收来自Kinect(通过串口通信实现,在后面说明)的数据,并向舵机发出信号旋转相应的角度。这个程序需要对接收到的数据进行分类判断,哪一条是控制大臂舵机的,哪一条是控制小臂舵机的。至于如何实现,Arduino的IDE提供了很多String的例子。我们要把接收到的每一条指令先进行预处理,在根据情况进行操作,下面是个简单的例子: Arduino的主要目的是接收来自Kinect(通过串口通信实现,在后面说明)的数据,并向舵机发出信号旋转相应的角度。这个程序需要对接收到的数据进行分类判断,哪一条是控制大臂舵机的,哪一条是控制小臂舵机的。至于如何实现,Arduino的IDE提供了很多String的例子。我们要把接收到的每一条指令先进行预处理,在根据情况进行操作,下面是个简单的例子:
 +<code c>
 Servo servoA; //​舵机对象 Servo servoA; //​舵机对象
 boolean readCompleted = false;//​是否完成读取串口数据 boolean readCompleted = false;//​是否完成读取串口数据
行 88: 行 95:
 } }
 } }
 +</​code>​
  
 这个例子演示了如何从串口接收数据并且控制舵机。当然还有很多因素需要考虑,比如舵机的旋转限制,数据与舵机编号的对应等等。对String进行预处理的方法可以参考IDE给出的例子,里面写的很详细,而且功能也完全够用。 这个例子演示了如何从串口接收数据并且控制舵机。当然还有很多因素需要考虑,比如舵机的旋转限制,数据与舵机编号的对应等等。对String进行预处理的方法可以参考IDE给出的例子,里面写的很详细,而且功能也完全够用。
  
 在上面那层有一些错误,应该是这样的 在上面那层有一些错误,应该是这样的
 +<code c>
 if(readCompleted)//​判断串口是否接收到数据并完成读取 if(readCompleted)//​判断串口是否接收到数据并完成读取
 { {
行 99: 行 107:
 readCompleted = false;//​标示读取未完成,以进行下一次读取 readCompleted = false;//​标示读取未完成,以进行下一次读取
 } }
 +</​code>​
 2.Kinect端 2.Kinect端
 Kinect端的程序用Kinect SDK for Windows的例子上加以修改的,其主要功能是取得骨骼关键点(也就是关节)的数据,并进行一系列计算,计算出每一个舵机需要旋转的角度,并通过串口发送给Arduino。 Kinect端的程序用Kinect SDK for Windows的例子上加以修改的,其主要功能是取得骨骼关键点(也就是关节)的数据,并进行一系列计算,计算出每一个舵机需要旋转的角度,并通过串口发送给Arduino。
· 最后更改: 2015/12/24 15:22