Javascript 在while循环中刷新来自跳跃运动的帧
我刚刚开始用JS为Leap Motion编程。我正在做一个项目,在这个项目中,我可以根据从跳跃动作中读取的手势来控制马达。帧被解析,然后命令被发送到马达,通过使用johnny five库的Arduino Uno。 以下是我从跳跃动作中抓取帧的方式:Javascript 在while循环中刷新来自跳跃运动的帧,javascript,arduino,leap-motion,johnny-five,Javascript,Arduino,Leap Motion,Johnny Five,我刚刚开始用JS为Leap Motion编程。我正在做一个项目,在这个项目中,我可以根据从跳跃动作中读取的手势来控制马达。帧被解析,然后命令被发送到马达,通过使用johnny five库的Arduino Uno。 以下是我从跳跃动作中抓取帧的方式: `var five = require('johnny-five'), Leap = require('leapjs'), board = new five.Board(), motor, frame, hand; board.on('ready'
`var five = require('johnny-five'),
Leap = require('leapjs'),
board = new five.Board(),
motor, frame, hand;
board.on('ready', function()
{
var controller = Leap.loop({enableGestures: true}, function(frame)
{
checkData(frame);
});
});`
我从Leap运动中获取帧,并将帧发送到一个函数,该函数遍历帧,读取手势,然后调用一个控制电机的新函数:
var motorA = new five.Motor([3, 0, 2]);
motorA.start(255);
while(!finished)
{
board.wait(5000, function()
{
motorA.stop();
runMotorB(number);
finsihed = true;
});
}
我的问题是,我需要一个while循环,让程序在运行下一个马达之前等待第一个马达结束。如果不等待第一个电机停止,board.wait()似乎不会阻止程序继续运行到下一个电机。我还需要能够抓取帧的飞跃运动,同时运行电机在while循环,等待它结束。这是因为我希望能够看到电机运行时是否出现新的手势。然而,每当我尝试使用controller.frame()调用抓取新帧时,我只是从启动while循环的跳跃运动中获取前一帧,而不是跳跃运动在那一秒看到的帧。
在while循环中,有没有一种方法可以看到跳跃运动看到了什么?或者有没有更好的方法让我在不等待的情况下阻止程序移动到下一个电机上?Hm.controller.frame()
应该始终获取最新的帧,如果控制器正在流式传输。这应该是controller.lastConnectionFrame的同义词
我会为每个马达保存状态变量,然后运行帧内回调中的所有内容
如果motor本身不保存state,那么在motor周围有一个wrapper类可能是有意义的,它可以有startUnlessStarted
tryStart
之类的方法