Добрый день.
Я получаю очень странные значения DMP с датчика MPU-6000 InvenSense. Я не уверен, что они верны, так как модель стоит на ровной поверхности и не двигается. Код:
Public variable:
Code:
// MPU6050 accel/gyro chip
AP_InertialSensor_MPU6000 ins;
In setup():
Code:
// initialise sensor fusion on MPU6050 chip (aka DigitalMotionProcessing/DMP)
hal.console->printf("\n%.1f%%: Initialize MPU6050\n", 5.f*100.f/5.f);
hal.scheduler->suspend_timer_procs(); // stop bus collisions
ins.dmp_init();
hal.scheduler->resume_timer_procs();
In loop():
Code:
ins.update();
float roll, pitch, yaw;
ins.quaternion.to_euler(&roll, &pitch, &yaw);
roll = ToDeg(roll);
pitch = ToDeg(pitch);
yaw = ToDeg(yaw);
// DEBUGGING
hal.console->printf("Gyro data. Pitch: %.3f, roll: %.3f, yaw: %.3f\n", pitch, roll, yaw);
hal.scheduler->delay(500);
Результат:
Gyro data. Pitch: 0.867, roll: 0.028, yaw: 0.007
Gyro data. Pitch: -0.230, roll: -0.308, yaw: 0.217
Gyro data. Pitch: -1.145, roll: -0.592, yaw: 0.433
Gyro data. Pitch: -1.905, roll: -0.829, yaw: 0.657
Gyro data. Pitch: -2.524, roll: -1.027, yaw: 0.890
Gyro data. Pitch: -3.038, roll: -1.198, yaw: 1.116
Gyro data. Pitch: -3.461, roll: -1.329, yaw: 1.356
Gyro data. Pitch: -3.807, roll: -1.446, yaw: 1.588
Gyro data. Pitch: -4.097, roll: -1.542, yaw: 1.819
Gyro data. Pitch: -4.330, roll: -1.625, yaw: 2.049
Gyro data. Pitch: -4.529, roll: -1.693, yaw: 2.279
Gyro data. Pitch: -4.678, roll: -1.755, yaw: 2.515
Gyro data. Pitch: -4.807, roll: -1.796, yaw: 2.757
Gyro data. Pitch: -4.922, roll: -1.830, yaw: 2.992
Gyro data. Pitch: -5.008, roll: -1.864, yaw: 3.233
Gyro data. Pitch: -5.088, roll: -1.884, yaw: 3.473
Gyro data. Pitch: -5.140, roll: -1.911, yaw: 3.713
Gyro data. Pitch: -5.192, roll: -1.930, yaw: 3.939
Может кто сталкивался с подобным случаем. Подскажите где может быть проблема.
привет.
1. прочитайте тут http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
2. покажите ВАШ полный код, а не какие-то фрагменты
3. добавьте в вывод в строку "Gyro data" значение millis()
4. повторите эксперимент, вставьте сюда результат
5. повторите эксперимент, три разу стукните по столу, слабо, средне, сильно, заметьте соответствующие строки в результате. Вставьте результат сюда, прокомментируйте его.
удачи.
Код
Добавить millis() не получилось, пишет error: 'millis' was not declared in this scope
Результаты эксперемента(стоит на столе без движения)
Результаты эксперемента(с движением)
Стуком по столу ничего не добился
тут читали? http://playground.arduino.cc/Main/MPU-6050
> Добавить millis() не получилось, пишет error: 'millis' was not declared in this scope
э.. а у вас, вообще, ардуино ли? http://arduino.ru/Reference/Millis
Спасибо за ссылку, почитаем.
У меня не совсем Arduino, у меня полётный контроллер HKPilot Mega 2.7. Данный контроллер сконструирован на базе Arduino Mega 2560 со встроенным датчиком MPU 6000. Arduino IDE распознаёт его как Arduino Mega 2560.
тут читали? http://playground.arduino.cc/Main/MPU-6050
на той плате 6005 и протокол и2с, на его готовом шилде 6000 подключен по протоколу(сори интерфейсу) спи.
помоему так.