Помогите разобраться с IMU6050(гироскоп,акселерометр)+Сервоприводы

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем Antbot, 11 фев 2015.

  1. Antbot

    Antbot Нуб

    Здравствуйте! Помогите разобраться с кодом так как не совсем всё понимаю и сервоприводы очень сильно дергаются. Что можно сделать что бы перемещение было плавным и небыло столь сильных рывков. Даже просто стоя на столе дергается с амплитудой в сантиметр и более. Можно ли тут сделать отклик быстрее а то если дергать его сильнее то он примерно четверть секунды соображает а потом доводится до нужной позиции. Понимаю что нужно использовать фильтры но я не знаю как их применить.
    Вот код:
    #include <Servo.h>
    #include <Wire.h>
    #include <I2Cdev.h>
    #include <MPU6050.h>

    MPU6050 mpu;

    int16_t ax, ay, az;
    int16_t gx, gy, gz;

    Servo Xservo;
    Servo Yservo;


    int val;
    int prevVal;

    void setup()
    {
    Wire.begin();
    Serial.begin(38400);

    mpu.initialize();

    Xservo.attach(9);
    Yservo.attach(10);

    }
    void loop()
    {
    mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
    val = map(ax, -17000, 17000, 0, 179);
    if (val != prevVal)

    Xservo.write(val);
    prevVal = val;

    mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
    val = map(ay, -17000, 17000, 0, 179);
    if (val != prevVal)
    {
    Yservo.write(val);
    prevVal = val;
    }
    delay(10);



    }

    На видео всё хорошо видно.
    Используется гироскоп+ акселерометр IMU6050, два сервопривода и ардуино Меga.

     
    Последнее редактирование: 12 фев 2015
  2. Antbot

    Antbot Нуб

    Да что то глухо......
     
  3. vvr

    vvr Инженерище

    Код хотя бы показал - может кто то и подскажет.
    А как там у тебя с фильтрами Кальмана?
    Для справки http://habrahabr.ru/post/166693/
     
  4. Antbot

    Antbot Нуб

    Недавно только его убрал а то как то тихо...
    Вот выкладываю снова
    С фильтрами Кальмана никак так как не понимаю что как и что в них работает....
    Вот и прошу помощи
     
  5. Antbot

    Antbot Нуб

    За ссылку спасибо.....
     
  6. vvr

    vvr Инженерище

    Если с математикой не очень и в программировании слабоват, то путь один - найти в сети готовый код.
    По подсказкам и советам ничего не сделаешь.
    Ну разве кто то готовый код подбросит.:)
    Проверено на себе:D
     
  7. vvr

    vvr Инженерище

  8. Antbot

    Antbot Нуб

    То есть хочешь сказать что человек не способен обучаться :)?
    Суть в том что бы не тупо скопировать а разобраться, пусть и при помощи других...
    Найти более простое решение что бы понять что да как особенно когда не знаешь с чего начать...:rolleyes:
     
  9. Antbot

    Antbot Нуб


    Я видел этот код:) и скажу даже большее я его скопипэстил :( и просто добавил ещё одну ось .
    Хотя до этого написал сам почти тоже самое но более громоздкое и менее эффективное но с выводом на дисплей ...
     
  10. vvr

    vvr Инженерище

    ты просто полез в сложную тему, с которой не начинают .
    я тебе сбросил ссылку - найди нужные библиотеки, установи их, загрузи скетч, наслаждайся одной сервой.
    по подобию подключи вторую.
    чем не обучение.
     
  11. vvr

    vvr Инженерище

    не знаю что ты сам написал.
    но здесь вся соль в библиотеке.
     
  12. Antbot

    Antbot Нуб

    Ковыря
    Я не скажу что я совсем новичок так как принципы программирования начинаю понимать библиотеки все есть, код есть, одна серва работает более менее нормально а вот две уже нет, тем более у него там серва в руках а у меня конструкция из севр на которой гироскоп и вот от сюда все проблемы....
     
  13. Antbot

    Antbot Нуб

    Те же самые библиотеки.
    #include <Servo.h>
    #include <Wire.h>
    #include <I2Cdev.h>
    #include <MPU6050.h>
     
  14. Antbot

    Antbot Нуб

    Я уже 1001 библиотеку сменил в поисках ответа на свои вопросы
     
  15. vvr

    vvr Инженерище

    если у чела работает, то и тебя, если всё правильно сделал работать должно.
    и сервы нужно ПРАВИЛЬНО питать от отдельного источника питания.
    им может элементарно тока не хватать если запитал от дуни
     
  16. Antbot

    Antbot Нуб


    Нет сервы питаются ПРАВИЛЬНО отдельно от 10в земля общая. Может быть всё дело в сервах? Но когда одна серва по этому же коду пашет то всё так же плавно а тут её разбивает то ли набегающими вибрациями второй сервы то ли ещё чем...
     
  17. vvr

    vvr Инженерище

    а что это у тебя за сервы, которым нужно 10 вольт?
    вроде 5-7 вольт сервам нужно.
    ну и сервы калечные могут быть.
     
  18. Antbot

    Antbot Нуб


    Ну если быть точным то и 15 вольт цепляют 3.jpg
     
  19. Antbot

    Antbot Нуб

    Сервопривод TowerPro MG995.

     
  20. X-Dron

    X-Dron Гик

    Код неправильный. Часа через 2 отпищусь.
    Считывать координаты можно 1 раз, а вот хранить состояния переменной нужно для каждой оси в своей переменной.
    По одной координате, с одним приводом нормально работает?