Directional tap detection algorithm using an accelerometer
First Claim
1. A processor-implemented method for detecting tap inputs on a device based on first, second and third axis outputs from a three axis accelerometer attached to said device, said processor being programmed to carry out the steps of:
- detecting acceleration signals generated by said first, second and third axis outputs of said three-axis accelerometer caused by movement of said device;
for each of said as outputs, calculating the derivative of each acceleration signal as a function of time;
determining whether said movement of the device is caused by a tap input on a housing of said device by calculating the sum of the absolute values of said acceleration derivatives along each axis of said three axis accelerometer resulting from said movement and determining that said movement is a tap input if the sum of said absolute values exceeds a threshold value for a predetermined amount of time;
determining the axis of said tap by determining which output of said three axis accelerometer generated the acceleration derivative with the largest magnitude;
determining the direction of the tap by determining the sign of the acceleration derivative with the largest magnitude; and
employing the determined tap axis and direction to generate an input command to control operation of said device.
2 Assignments
0 Petitions
Accused Products
Abstract
A directional tap detection algorithm and a single tri-axis accelerometer are employed to extend the number of unique button less input commands available for a small mobile electronic device. The algorithm analyzes acceleration data from the tri-axis accelerometer to detect the direction and number of taps imparted to any of the six sides of a housing of the device, yielding 12 unique inputs. The algorithm employs a parameter referred to as the performance index (PI) to identify tap induced movements. The PI is determined by calculating the time derivative of each acceleration signal for each axis and then calculating the sum of the absolute values of the calculated acceleration derivatives. A tap is determined to have occurred if the sum exceeds a threshold value for a predetermined amount of time. If a second tap is detected within a predetermined time after the first tap, then a double tap is determined to have occurred.
-
Citations
14 Claims
-
1. A processor-implemented method for detecting tap inputs on a device based on first, second and third axis outputs from a three axis accelerometer attached to said device, said processor being programmed to carry out the steps of:
-
detecting acceleration signals generated by said first, second and third axis outputs of said three-axis accelerometer caused by movement of said device; for each of said as outputs, calculating the derivative of each acceleration signal as a function of time; determining whether said movement of the device is caused by a tap input on a housing of said device by calculating the sum of the absolute values of said acceleration derivatives along each axis of said three axis accelerometer resulting from said movement and determining that said movement is a tap input if the sum of said absolute values exceeds a threshold value for a predetermined amount of time; determining the axis of said tap by determining which output of said three axis accelerometer generated the acceleration derivative with the largest magnitude; determining the direction of the tap by determining the sign of the acceleration derivative with the largest magnitude; and employing the determined tap axis and direction to generate an input command to control operation of said device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for providing buttonless input commands to a mobile electronic device comprising:
-
a three axis accelerometer attached to said device; an accelerometer output processor interfaced to first, second and third outputs of said three axis accelerometer and a device processor which controls operation of said device, said accelerometer output processor being programmed with an algorithm which carries out the steps of; detecting acceleration signals generated by said first, second and third outputs of said three axis accelerometer caused by movement of said device; for each of said outputs, calculating the derivative of each acceleration signal as a function of time; determining whether said movement of the device is caused by a tap input on a housing of said device by calculating the sum of the absolute values of said acceleration derivatives along each axis of said three axis accelerometer resulting from said movement and determining that said movement is a tap input if the sum of said absolute values exceeds a threshold value for a predetermined amount of time; determining an axis of said tap by determining which output of said three axis accelerometer generated the acceleration derivative with the largest magnitude; determining the direction of the tap by determining the sign of the acceleration derivative with the largest magnitude; and communicating with said device processor information regarding the axis and direction of the tap so that said device processor can use said information as an input command. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification