2016-02-02 12 views
0

для школьного проекта мы получили mpu 9150 (гироскоп/акселерометр/магнитометр (?)), И мы хотим получить Roll/Pitch/Yaw/Heading для него.Получение расчетных значений от mpu 9150

Я использовал код, который был в качестве примера в libary, но он дает нам только исходные данные в этом формате: ax/ay/az/gx/gy/gz/mx/my/mz. Это не то, что мы хотим.

мне удалось получить крен и тангаж до сих пор со следующим фрагментом:

roll = atan2(ay, az)+PI; 
pitch = atan2(-ax, az)+PI; 

// Convert everything from radians to degrees: 
pitch *= 180.0/PI; 
roll *= 180.0/PI; 

А я читал, что я должен использовать магнитометр, чтобы получить отклонение от курса, но я понятия не имею, что формульный мне нужно для Это.

В примере кода есть также этот фрагмент внутри, может быть, это все, что мне нужно использовать, или кто-нибудь знает другие функции/методы, которые я мог бы использовать?

// read raw accel/gyro measurements from device 
accelgyro.getMotion9(&ax, &ay, &az, &gx, &gy, &gz, &mx, &my, &mz); 

// these methods (and a few others) are also available 
//accelgyro.getAcceleration(&ax, &ay, &az); 
//accelgyro.getRotation(&gx, &gy, &gz); 

Я работаю с I2Cdev и MPU6050

найти библиотеки

Еще один вопрос будет, какие вещи я могу получить от датчика еще? Можно ли получить высоту или разницу в высоте?

Спасибо за помощь.

ответ

0

Исходные значения вашего мпю в основном очень неточные, дрейфующие, ... на самом деле не используемые. Библиотека MPU6050 очень полезна для получения полезных значений. Чтобы получить ваш рывок/рулон/шаг, вы можете использовать MPU6050 Libary, как пример, описанный в этом example sketch. Просто добавьте

#define OUTPUT_READABLE_YAWPITCHROLL 

наверху этого кода запустите его (с правой скоростью).

С помощью вашего сенсора можно также получить фактическую температуру.

+0

С 1 фрагментом кода выше значений высоты тона/ролика, кажется, стабильный (не меняйте при 1 градусе). Мне нужно только использовать этот пример кода с этим определением фрагмента? ps .: есть ли разговоры по-немецки? то я бы понял больше: D – SeGa

+0

Я думаю, что немецкий не пользуется здесь ... но: ja, einfach den define reinnehmen, richtige Baudrate einstellen, Arduino richtig verkabeln, und es sollte dein Ergebnis rauskommen :-) ... да, используйте определите, возьмите правильную скорость, провод и готов :-) – Fruchtzwerg

+0

ок, затем попробуйте на английском: D он работал до сих пор: только, что рыскание подсчитывает все время, даже я не меняю позицию. И могу ли я проверить, движется ли датчик (назад/вперед/высота), и как быстро? должно быть возможно? в этом случае я должен определить другие вещи, которые в настоящее время прокомментированы (?)? – SeGa