the code is this:
var Cylon = require('cylon');
Cylon.robot({
//Creazione connessioni
connections: {
leapmotion: {adaptor: 'leapmotion'},
bebop: { adaptor: 'bebop' }
},
//Creazione device
devices: {
leapmotion: {driver: 'leapmotion', connection: 'leapmotion'},
bebop: {driver: 'bebop', connection: 'bebop'}
},
//Creazione funzione principale
work: function(principale){
principale.leapmotion.on('frame', function(frame){
//se leap rileva la mano
if(frame.hands.length > 0){
//decollo
principale.bebop.takeoff();
} else {
//atterraggio
principale.bebop.land();
}
//se leap rileva la mano
if(frame.valid && frame.gestures.length > 0){
//funzione secondaria
frame.gestures.forEach(function(secondaria){
//riconoscimento gesto
if(secondaria.type == 'swipe'){
//Creazione variabili
var posizioneCorrente = secondaria.position;
var posizioneDiPartenza = secondaria.startPosition;
//Creazione di come il drone dovrà muoversi
var direzionex = posizioneCorrente[0] - posizioneDiPartenza[0];
var direzioney = posizioneCorrente[1] - posizioneDiPartenza[1];
var direzionez = posizioneCorrente[2] - posizioneDiPartenza[2];
// Math.abs restituisce il valore assoluto di un valore numerico
var assex = Math.abs(direzionex);
var assey = Math.abs(direzioney);
var assez = Math.abs(direzionez);
//restitusice il valore maggiore tra tutti quelli passati()
var posizioneS = Math.max(assex, assey, assez);
//spostamenti destra e sinistra
if(posizioneS === assex){
if(direzionex < 0){
console.log('SPOSTAMENTO SINISTRA');
principale.bebop.left();
} else {
principale.bebop.right();
console.log('SPOSTAMENTO DESTRA');
}
}
//spostamenti in avanti e indietro
if(posizioneS === assez){
if(direzionez > 0){
console.log('SPOSTAMENTO INDIETRO');
principale.bebop.back();
} else {
console.log('SPOSTAMENTO IN AVANTI');
principale.bebop.forward();
}
}
//spostamenti verso l'alto e verso il basso
if(posizioneS === assey){
if(direzioney > 0){
console.log('IL DRONE SI STA ALZANDO');
principale.bebop.up(1);
} else {
console.log('IL DRONE SI STA ABBASSANDO');
principale.bebop.down(1);
}
}
//esegue un backflip
} else if(secondaria.type === 'keyTap'){
console.log('ESEGUITO UN BACKFLIP');
principale.bebop.backFlip();
after((5).seconds(), function(){
//atterraggio
principale.bebop.land();
})
}
})
}
})
}
}).start();
I dont know why when i put my hand over the leap motion the drone takeoff correctly and when i swipe(left or right) dont work..