Вопросы по гироскопу MPU 6050

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем pyro, 17 апр 2013.

  1. alexGOL

    alexGOL Нуб

    Почитал и пришел к выводу, что проще будет использовать электронный компас. Ведь изначально цель была - определение азимута по координатам. Про ошибки видел - посмотрю, что у меня в коде.
     
  2. roggedhorse

    roggedhorse Гик

    Электронный компас не всегда проще. Там свои проблемы. Тем более, что вы его ставите, наверное, на девайс с кучей железа и моторов ?
     
  3. alexGOL

    alexGOL Нуб

    Да, железа там много будет. Просто исхожу из того, что данные, которые мне дает акселерометр в связке с гироскопом не получается использовать - значения постоянно изменяются (об этом писал ранее).
    Если найду решение где-то, то конечно же сделаю, а так пока - компас ).
     
  4. AlexTeos

    AlexTeos Нерд

    Вложения:

    alexGOL нравится это.
  5. alexGOL

    alexGOL Нуб

    Хорошая статья, только я не понял, почему там
    float accel_angle_z = 0
     
  6. Сургей

    Сургей Нуб

    Здравствуйте, я связал Arduino и mpu6050 стандартным способом http://www.dfrobot.com/wiki/index.php/6_DOF_Sensor-MPU6050_(SKU:SEN0142) и получаю в терминал данные,с вращением вокруг оси Z разобрался( а может мне так кажется),другие оси не трогал так как они мне не нужны, но вот с линейными ускорениями, а точнее с переходом от них к линейным перемещениям проблема, ставлю MPU6050 на машинку и гоняю вперед назад где то на метр, по логике суммарное перемещение по оси вдоль которой он ездеет (ось Х), должно быть равно 0, а по остальным перемещений быть вообще не должно, но вот что получается(прикрепленные файлы в формате эксель) http://rghost.ru/53955270 http://rghost.ru/53955354 Посоветуйте что делать, сам перечитал много всего но так и не понял как интерпретировать линейные перемещения, заранее спасибо
     
  7. alexGOL

    alexGOL Нуб

    День добрый! Насколько мне известно получить нормальные значения по оси Z можно только с гироскопа.
    Удачный пример работы приведен выше (http://www.geekmomprojects.com/gyroscopes-and-accelerometers-on-a-chip/), за исключением одной проблемы - интегрирование угловой скорости постоянно увеличивает значение результирующего отклонения - но это решаемо.
     
  8. alexGOL

    alexGOL Нуб

  9. AlexTeos

    AlexTeos Нерд

    Да и код работает отлично! Лучше чем все что я пробовал до этого, с осью Z никаких проблем, привести бы его только в божеский вид...
     
  10. AlexTeos

    AlexTeos Нерд

    Вы измеряете расстояние с помоью акселерометра? Это очень круто, если вы смогли это реализовать. Мне это впоследствии тоже понадобиться, немогли бы вы, пожалуйста, рассказать как вы это сделали? Спасибо!
     
  11. roggedhorse

    roggedhorse Гик

    А как проблема калибровки решается вами ?
     
  12. AlexTeos

    AlexTeos Нерд

    В последнем коде, насколько я разобрался, используется все тот же фильтр калмана, только весь код вынесен в скетч не используя библиотек калмана и IC2, поэтому скетч так и выглядит
     
  13. roggedhorse

    roggedhorse Гик

    нееее. калибровка - это не фильтрация
     
  14. AlexTeos

    AlexTeos Нерд

    В функции calibrate_sensors, как я понял, мы просто берем среднее от первых 10 показаний датчика
     
  15. Сургей

    Сургей Нуб

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

    AlexTeos Нерд

    Очень жаль, вы реализовали как то по другому? Мне необходимо знать угол и перемещение могего робота, очень не хочется прибегать к помощи енкодеров.
     
  17. Kukun

    Kukun Нуб

    Здравствуйте!
    А есть у кого-нибудь код для этого гироскопа gy-521 + выравнивание двигателей с пояснениями на русском? Теория по обработке данных с гироскопа+акселерометра понятна благодаря вот этой статье: http://masters.donntu.edu.ua/2013/fkita/perebeinos/diss/index.htm#p6 особенно про комплементарный фильтр.
    Есть пока только алгоритм: посылаем данные с gy-521 на ардуино, обрабатываем их комплементарным фильтром, если данные по оси Х у нас не равны начальным значениям Х в минусовую зону, то включается двигатель, с помощью PIN9 на Ардуино, а если данные не равны начальным значениям по оси Х в плюсовую зону, то включается PIN10.
     
  18. shtorm

    shtorm Нуб

    Всем привет, встала задача с использованием этого датчика, с гироскопом проблем нет, работает как надо, по приведенным скетчам все супер, а вот с акселерометром никак не могу совладать, в математике не силен, надо применить фильтр Калмана, видимо аналогично как и с данными гироскопа, но как то не идет. Вопрос следующий как применить и модифицировать скетч предложенный на 1 странице для акселерометра? Помогите пжлст)
     
  19. dreadfull

    dreadfull Гик

    я так понял никто так и не получил рабочего скетча с осью Z????)
     
  20. dzikar

    dzikar Нуб

    По поводу питания. Если на плате датчика стоит стабилизатор то напряжение должно быть от 3.5 до 6 вольт. если стабилизатора нет то 2.3-3.4 вольт. Если установлен стабилизатор и вы подаёте на датчик 3.3 вольта, то никакого отклика не получите. Если не стоит более качественный стабилизатор который будет работать на низких напряжениях и не садить его так сильно.