Hola!
Los amigos del Leap Motion están que se salen. Ayer han publicado una nueva versión del SDK y la verdad es que el mismo trae bastantes cosas interesantes. Entre ellas hay 2 que son especialmente útiles: Pitch y Grab. En el siguiente video se puede ver como la acción de Pitch da un valor entre 0 y 1 cuando se juntan los dedos de la mano. Y Grab también da un valor entre 0 y 1 para la acción de agarrar.
Otro dato interesante es que ahora tenemos 2 propiedades que nos permiten identificar si la mano que está sobre el sensor es la izquierda o la mano derecha. Los nombres son de lo más original IsLeftHand y IsRightHand.
Como todo lo que hago el código no es muy complicado. En este caso el controller del Leap, analiza en el evento OnFrame() si hay alguna hand sobre el mismo (línea 15). Luego sobre la primera mano detectada se lanzan una serie de eventos con el valor de Pitch, de Grab y la identificación de mano izquierda y derecha.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using System.Threading.Tasks; | |
| using Leap; | |
| namespace ElBruno.LeapV2NewFeatures | |
| { | |
| public class MotionListener : Listener | |
| { | |
| public event Action<bool, bool> OnLeftOrRightHand; | |
| public event Action<float, float> OnPitchAndGrab; | |
| public override void OnFrame(Controller controller) | |
| { | |
| var frame = controller.Frame(); | |
| if (frame.Hands.IsEmpty) return; | |
| var hand = frame.Hands[0]; | |
| Task.Factory.StartNew(() => OnLeftOrRightHand(hand.IsLeft, hand.IsRight)); | |
| Task.Factory.StartNew(() => OnPitchAndGrab(hand.PinchStrength, hand.GrabStrength)); | |
| } | |
| } | |
| } |
La app WPF se suscribe a estos eventos y muestra el valor de los mismos como se ve en el video.
Saludos @ Home
El Bruno
Leave a comment