Skip to content

Suggestion #3

@kshepitzki

Description

@kshepitzki

I would like to suggest to complement your library with a getPitchRoll() function which should be quite handy,
void MMA8452::getPitchRoll(float *pitch, float *roll)
{
float Xg, Yg, Zg;
getAcceleration(&Xg, &Yg, &Zg);

//Low Pass Filter
_fXg = Xg * _alpha + (_fXg * (1.0 - _alpha));
_fYg = Yg * _alpha + (_fYg * (1.0 - _alpha));
_fZg = Zg * _alpha + (_fZg * (1.0 - _alpha));

*roll = (atan2(-_fYg, _fZg)*180.0) / M_PI;
*pitch = (atan2(_fXg, sqrt(_fYg*_fYg + _fZg*_fZg))*180.0) / M_PI;

}
And class members:
float _fXg=0, _fYg=0, _fZg=0, _alpha=0.5;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions