Accelerometro rilevare lato all'altro movimenti - rilevazione istantanea di cambiamento di direzione
-
21-09-2019 - |
Domanda
Id hanno un app che fa una cosa, se si agita in un modo, e un altro se si agita l'altro.
atm mio codice è.
if (acceleration.x > 1.5) {
// braccio verso destra quando di fronte si
float duration = ([imageArray count]*0.04);
//HUMAN EYE KEEPS IMAGES IN EYE For 40 MILLISECONDS//
//NSLog(@"duration:%f", duration);
[theFlash setAnimationImages:imageArray];
[theFlash setAnimationRepeatCount:1];
theFlash.animationDuration = duration;
[theFlash startAnimating];
NSLog(@"images flashed forward");
}
if (acceleration.x < -1)
{
//arm to the left when facing you
float duration = ([imageArrayReversed count]*0.04);
//HUMAN EYE KEEPS IMAGES IN EYE For 40 MILLISECONDS//
NSLog(@"duration:%f", duration);
[theFlash setAnimationImages:imageArrayReversed];
[theFlash setAnimationRepeatCount:1];
theFlash.animationDuration = duration;
[theFlash startAnimating];
NSLog(@"images flashed backward");
}
i 1 e -1 valori stanno lavorando non essere troppo sensibile.
Tuttavia, questo codice non è mi dà i risultati desiderati. Id come le immagini a flash (vedere il codice) non appena la persona inizia muovendo il dispositivo nella direzione opposta.
Un modo per fare questo?
Soluzione
Bene, si sta andando ad avere per integrare l'accelerazione per ottenere la velocità. Purtroppo, l'accelerometro è un po 'rumoroso e inevitabilmente deriva un po', quindi si sta andando ad avere per filtrare quella integrale. I pensare il filtro descritto in http: //www.musicdsp .org / showone.php? id = 92 farà quello che ti serve, con la frequenza di taglio impostata a circa 1/4 della frequenza di campionamento. È necessario l'uscita band
, e avrete sintonizzare il parametro di risonanza.