Hi,
I’m using a LeapMotion to allow users to select between three options projected in front of them. Visually this is done through three circular projection areas one above each other onto which a halo is displayed when the user moves his/her hand vertically and when the user closes his/her fist to confirm their choice the circle is filled and remains this way until a different selection is made.
The problem I had was that when the users moved their hand after making a selection they would sometimes leave their fist closed hence inadvertently changing the selection. I managed to alleviate this by combining a logic CHOP, a timer CHOP and a hold CHOP. The timer gets activated every time the logic CHOP detects a selection change. The timer’s running output is fed to the hold CHOP’s trigger input while the selection value is fed to its source input. This has the effect of preventing any further selection as long as the timer runs. I’ve set a 3 second delay on the timer which appears sufficient in most cases. To use an electronics analogy, this is somewhat similar to debouncing a noisy digital input.
The problem I now have is the fact that the timer is only triggered upon a selection change. So if the user deliberately or inadvertently changes his selection while the timer is running he won’t be able to make that same selection again even once the timer has finished. He must first select something else in order to return to his desired selection…
I’m guessing I have to somehow compare the current selection to the previous one in order to force the change but I’m not sure how to achieve this and wonder if there is a simpler way around. I’ve attached a simplified version containing only the problematic logic block mentioned above. I’ve replaced the Leap selection by a single constant CHOP. By typing in different values you can see the problem I describe above.
Thanks!
Leap selection problem.toe (4.0 KB)