Управление сервопривода джойстиком

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем Dan Dan, 30 июн 2019.

  1. Dan Dan

    Dan Dan Нерд

    Подскажите , пожалуйста, как я могу двигать сервопривод плавно с помощью джойстика так , чтобы сервопривод поворачивался в ту сторону , куда смотрел джойстик
     
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    Какие показания выдаёт джойстик?
     
  3. Dan Dan

    Dan Dan Нерд

    Ось x от 511, до 1023 , ось y от 0 до 1023
     
  4. Dan Dan

    Dan Dan Нерд

    Хочу уточнить , при y = 0 , x =511, при y = 1 x = 512 , при y= 2 x = 513 и т.д
     
  5. Tomasina

    Tomasina Сушитель лампочек Модератор

    Читаем тут про сервопривод, пробуем код servo_example.ino (без джойстика).
    Если все работает, значит подключено правильно и пора переходить к обработке джойстика.
    Возьмем показания y и приведем к формату, удобному для сервы (чтобы не выйти за пределы):
    Код (C++):
    byte value = map(y, 0, 1023, 0, 180);
    В строке
    Код (C++):
    myservo.write(90);
    вместо числа 90 вставляем обработанное значение value.
     
    Последнее редактирование: 30 июн 2019
    Daniil нравится это.
  6. Dan Dan

    Dan Dan Нерд

    Ого , спасибо!
     
  7. Dan Dan

    Dan Dan Нерд

    Работает , но есть проблема - работает плохо , слишком резко , как будто джойстик с большой чувствительностью . Подскажите, пожалуйста, в чем дело?
    Код (C++):
    #include <Servo.h>
    int y =A1 ;// джойстик ось у
    Servo servo;
    void setup (){
    servo.attach(9);
    pinMode(y,INPUT);
    }
    void loop(){
    int y = analogRead(A1);
    y = map (y,0,1023,0,180);
    servo.write(y);
    }
    P.s с byte выдает ошибку , а если убрать int то и вовсе не работает
     
  8. Daniil

    Daniil Гуру

    С джойстика данные идут прям на серву. Чтобы это было плавно нужен фильтр. Цифровой или аналоговый.
    Тут и далее есть объяснение, задача понять не формулы, а смысл.

    Когды вы джойстиком меняете значение на серву данные должны идти "сглаженные".
     
  9. Dan Dan

    Dan Dan Нерд

    Спасибо! Буду разбираться!
     
  10. otis

    otis Гик

    Посмотри как изменяется показания сопротивления на джойстике. Там очень маленький угол отклонения и резкое возростание/убывание сопротивления. Ищи джойстики от RC самолетов или вертушек. Самый классный джойстик это былу помоему у дремкаст кубе от нинтенда. Там джойстик на датчиках холла.
     
  11. Dan Dan

    Dan Dan Нерд

    Понял , спасибо!