Étape 8: Relier la Leap motion Controller à un servomoteur
Maintenant que vous avez si tout va bien votre appareil Motion sautent vers le haut et la course que nous allons créer notre premier programme de flux de données entre l’appareil et ensuite nous allons lier jusqu'à notre moteur d’asservissement avec la bibliothèque pyduino. N’importe quel moment, nous courons un script que nous devons avoir le service leapd en cours d’exécution. De savoir que ce service est en cours d’exécution que vous devriez être en mesure de voir le 3 lumineux LED sur votre périphérique de Leap. (Image ON voir à l’étape précédente)
Notre premier script Leap sera composé de plusieurs éléments clés. Il y a une classe de contrôleur qui se connecte à l’appareil de saut et une classe d’écouteur qui obtiendra les données depuis le logiciel de suivi. Pour une profondeur en tutoriel sur la façon de mettre en place une simple saut script d’extraction : https://developer.leapmotion.com/documentation/pyt...
Je vais vous donner un bref aperçu de ce que le morceau de code ci-dessous et comment il fonctionne. Dans la partie principale du code nous initialiser une instance de notre auditeur et contrôleur de classes par la suite, nous ajoutons l’écouteur personnalisé à notre contrôleur. La partie importante du script, c’est ce qui se passe au sein de l’auditeur. L’auditeur est une classe qui va obtenir des données de l’appareil de Leap et évaluer ce qu’il faut faire avec les informations d’être écoutées. L’auditeur a la possibilité d’obtenir 60 images par seconde de l’appareil, mais c’est un peu trop d’informations pour ce que nous voulons. Vous êtes certainement bienvenus pour essayer et utiliser les 60 images par seconde pour contrôler votre Arduino toutefois garder à l’esprit, il prend un peu de temps pour envoyer un message à l’appareil de l’Arduino et le faire réagir. Pour résoudre ce problème, que nous allons seulement travailler avec 10 images/seconde au lieu de 60. L’auditeur a quelques fonctions de base : initialiser de suite, sur Connect, le déconnecter, en quittant, sur châssis. Ils sont tous assez explicite des noms mais permet de passer par un par un et expliquer comment nous allons les utiliser pour contrôler notre servo.
Sur Initialize - ici nous voulons déclarer notre Arduino et établir une connexion série pour elle
Sur Connect -, nous pouvons permettre certains gestes pour le contrôleur, pas besoin de faire quoi que ce soit avec l’Arduino ici
Déconnexion - rien vraiment ici.
Nous allons quitter - pour réinitialiser la position du servo et fermer la connexion à notre appareil d’Arduino
Le cadre - la première chose à faire est obtenir le temps parce que nous voulons uniquement récupérer un cadre chaque 10 ms ou alors. Une fois que nous obtenons l’armature du contrôleur il nous dira quelle main est dans le cadre et quelle est sa position. De là, nous pouvons extraire doigt et l’articulation des positions aussi bien. Nous allons utiliser la position normalisée de notre main dans la zone d’interaction et multipliez-le par la gamme sur notre moteur. Par exemple si notre main est complètement à gauche, la position normalisée sera 0 et donc l’angle sur notre servo sera 0 ainsi. Pour en savoir plus vous pouvez lire sur la boîte d’interaction dans la documentation de l’API Leap : https://developer.leapmotion.com/documentation/pyt... Un autre lien utile de regarder est celui pour le cadre car le cadre stocke toutes nos informations sur les main et les positions de tout. Pour voir quelles informations sont accessibles dans notre cadre, consultez ce lien : https://developer.leapmotion.com/documentation/pyt...
Nous allons utiliser le même circuit Arduino que nous avons créé plus tôt. Si vous arrivé à changer le NIP de servo pour autre chose que 2, vous devrez modifier le code ci-dessous (ligne 17). Si vous ne parvenez pas à obtenir la partie Arduino travail de s’assurer que vous avez la connexion en série sur le bon port (ligne 23). Lignes de 78,82 sont ce qui commande le moteur d’asservissement. Lorsque vous exécutez le code prendre un certain temps pour se déplacer votre main et voir ce qui est sortie. La position de votre main sera sortie en ce qui concerne la position normalisée dans la zone d’interaction. Avant d’exécuter ce code, assurez-vous que votre service de leapd est en cours d’exécution et que votre Arduino est branché sur votre ordinateur.
my_first_leap.py