L’ajout d’un contrôleur Leap Motion se fait en ajoutant un programme externe (Leap.cpp sur github) qui écrit dans le fichier /tmp/jakopter_cmd.txt. Ce fichier contient une valeur entière unique correspondant à la commande à transmettre au drone. La valeur peut ensuite être récupérer via le channel 4 en LUA :
-- channel de communication numéro 4 pour l'entrée utilisateur cck = 4
-- lecture de la valeur d'entrée valk = l.cc_read_int(cck,0)
Le schéma suivant illustre les différentes zones pour contrôler la hauteur du drone :
Lorsque votre main se situera dans une de ces zones, un caractère sera écrit dans le fichier /tmp/jakopter_cmd.txt :
- Dans la zone ascendante, le caractère ‘u‘ sera généré et sera lu par l’interpréteur lua pour lancer la commande up ou takeoff.
- Dans la zone neutre, le caractère ‘s‘ sera généré et sera lu par l’interpréteur lua pour lancer la commande stay.
- Dans la zone descendante, le caractère ‘d‘ sera généré et sera lu par l’interpréteur lua pour lancer la commande down.
- Dans la zone d’atterrissage, le caractère ‘k‘ sera généré et sera lu par l’interpréteur lua pour lancer la commande land.
Pour faire avancer le drone, lorsque votre main est à plat, paume vers le Leap motion, remonter le poignet et baisser le bout de la main, en gardant l’alignement de la main bien droite. Ce mouvement générera le caractère ‘f‘ et sera lu par l’interpréteur lua pour lancer la commande forward.
Pour faire reculer le drone, à l’inverse, baisser le poignet et remonter le bout de la main, toujours en gardant un alignement linéaire. Cela générera le caractère ‘b‘ et sera lu par l’interpréteur lua pour lancer la commande backward.
Pour créer une rotation vers la droite, lorsque votre main est à plat, paume vers le Leap motion, incliner votre main vers la droite. Le caractère ‘r‘ sera généré et sera lu par l’interpréteur lua pour lancer la commande right.
Pour créer une rotation vers la gauche, dans la même logique que précédemment, incliner votre main vers la gauche. Le caractère ‘l‘ sera généré et sera lu par l’interpréteur lua pour lancer la commande left.
Voici un résumé des caractères générés avec les commandes associées :
- ‘u’ : up ou takeoff
- ‘d’ : down
- ‘k’ : land
- ‘f’ : forward
- ‘b’ : backward
- ‘r’ : right
- ‘l’ : left