Paso 7: funciones
Ahora tienes todo que lo necesario para volar autónomamente su abejón. Para escribir programas más complicados serán sólo tienes que saber algunas funciones que el robot es capaz de. A continuación muestro el nombre y describir lo que hacen. También debe comprobar el archivo de Léame de Felixge que fue incluido con la biblioteca de ar-drone ya tiene toneladas de información útil.
TAKEOFF() - tiene el drone despegue y vuelo estacionario por encima del suelo
Land() - tiene la tierra de abejón
up(Speed) - tiene el drone ganancia de altitud a una velocidad entre 1 (máxima velocidad) y 0 (aún).
Down(Speed) - hace el drone reducir la altitud
ClockWise(Speed) - drone giros hacia la derecha
counterClockwise(speed) - drone giros en sentido antihorario
Front(Speed)/back(Speed) - cambia la echada que causa movimiento horizontal
Left(Speed)/Right(Speed) - cambia el rodillo causando movimiento horizontal
STOP() - mantiene el drone que asoma en lugar
(para funciones complejas maniobras como flips, revisa el archivo de Léame ligado por encima)
Todas estas funciones pueden utilizarse en una larga lista con un tiempo dedicado entre ellos utilizando el formato:
cliente
.After (5000, function() {
this.clockwise(0.5);
})
.After (3000, function() {
this.STOP();
});
La cantidad de 5000 es el tiempo en milisegundos que el drone se gire hacia la derecha para en 0,5 de su tasa de giro superior (1 siendo máximo y 0 todavía). Podemos ver la función de parada que no tiene una velocidad porque se encarga de que sí mismo. Haciendo una larga lista de comandos como este podemos establecer una lista de tareas autónomas para llevar a cabo. He copiado el código que mi robot funcionó, en el video en la primera página, a continuación:
arDrone var = require('ar-drone');
var cliente = arDrone.createClient();
Client.TAKEOFF();
cliente
.After (2000, function() {}
this.up(1);
})
.After (2000, function() {}
this.Animate('flipAhead',500);
})
.After (1000, function() {}
this.Animate ('flipBehind', 500);
})
.After (1000, function() {}
this.Animate('flipLeft',500);
})
.After (1000, function() {}
this.Animate ('flipRight', 500);
})
.After (5000, function() {
this.Front(1.0);
})
.After (2000, function() {}
this.clockwise(0.5);
})
.After (5000, function() {
this.back(0.8);
})
.After (2000, function() {}
this.Land();
});
Esperemos que esto le dará una buena idea de cómo se verá el esquema del programa.