Accelerometro rilevare lato all'altro movimenti - rilevazione istantanea di cambiamento di direzione

StackOverflow https://stackoverflow.com/questions/2079732

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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top