roboforum.ru

Технический форум по робототехнике.

 

Центровка сервы

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Центровка сервы

Сообщение michey » 27 окт 2009, 22:37

Доброго времени суток.
Столкнулся с проблемой:
есть шасси от радиоуправляемой машинки,в данный момент,с мегой,принимающей команды по усарт и выполняющей их.
Серва управляющая рулевой - полностью аналоговая. :crazy: имеющая переменный резистор(?)с нулевой точкой.Есть три вывода,один из них общий,допустим 2-ой,когда колеса стоят прямо,на обоих сопротивление бесконечное,когда колеса повернуты влево между 1и2(допустим)сопротивление равно нулю,когда направо - между 2и3.
В данный момент колеса центруются,но точность и скорость этого процесса оставляет желать лучшего.
Был бы очень признателен,если бы ведающие подсказали алгоритм центровки.
Изображение
Кривизна рук обратно пропорциональна сложности дела.
michey
 
Сообщения: 12
Зарегистрирован: 27 окт 2009, 22:26
Откуда: Санкт-Петербург
прог. языки: C,C++,Turbo Pascal
ФИО: Михайлов Александр Михайлович

Re: Центровка сервы

Сообщение EdGull » 27 окт 2009, 22:40

рисуешь линию на полу
к машинке приделываешь датчики линии
пишешь программку которая тебе будет показывать при каком положении резистора машинка ехала прямо
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Центровка сервы

Сообщение michey » 27 окт 2009, 22:46

Совсем не вариант,это надо делать на месте,а впоследствии и на ходу.
Сейчас делаю с помощью АЦП,сравнивая значения после маленького сдвига влево или вправо,в зависимости от начальных значений.Но выходит откровенно паршиво. :cry:
Кривизна рук обратно пропорциональна сложности дела.
michey
 
Сообщения: 12
Зарегистрирован: 27 окт 2009, 22:26
Откуда: Санкт-Петербург
прог. языки: C,C++,Turbo Pascal
ФИО: Михайлов Александр Михайлович

Re: Центровка сервы

Сообщение galex1981 » 27 окт 2009, 23:17

А что за серва то?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Центровка сервы

Сообщение michey » 27 окт 2009, 23:19

нонейм чина :D .черная коробочка,два контакта - двигатель,три - резистор.внутри ничего техничнее дифференциалов нету.
Кривизна рук обратно пропорциональна сложности дела.
michey
 
Сообщения: 12
Зарегистрирован: 27 окт 2009, 22:26
Откуда: Санкт-Петербург
прог. языки: C,C++,Turbo Pascal
ФИО: Михайлов Александр Михайлович

Re: Центровка сервы

Сообщение =DeaD= » 27 окт 2009, 23:21

С чего бы там сопротивление бесконечное? Вроде полное сопротивление между крайними выводами вообще постоянное, или это какие-то новые переменники?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Центровка сервы

Сообщение michey » 27 окт 2009, 23:29

да,что-то я накосячил,не бесконечность.а между крайними - константа.
Кривизна рук обратно пропорциональна сложности дела.
michey
 
Сообщения: 12
Зарегистрирован: 27 окт 2009, 22:26
Откуда: Санкт-Петербург
прог. языки: C,C++,Turbo Pascal
ФИО: Михайлов Александр Михайлович

Re: Центровка сервы

Сообщение =DeaD= » 27 окт 2009, 23:36

А в чем задача центровки заключается? Определить напряжение на выходе с переменника, при котором колёса отцентрованы?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Центровка сервы

Сообщение michey » 27 окт 2009, 23:40

Код: Выделить всёРазвернуть
void cn(void)
{
putchar(0x0D);
printf("cn");
putchar(0x0D);
right=read_adc(1);
left=read_adc(0);
while (right > 64 || left > 64)
     {
      if (left-right>10)
      {
      PORTC.1=0;
      PORTC.2=1;
      delay_ms(10);
      PORTC.1=0;
      PORTC.2=0;
      delay_ms(70);
      }
      right=read_adc(0);
      left=read_adc(1);
      if (right-left>10){
      PORTC.1=1;
      PORTC.2=0;
      delay_ms(10);
      PORTC.1=0;
      PORTC.2=0;
      delay_ms(70);
      }
      right=read_adc(0);
      left=read_adc(1);
}
printf("ok");
}

В данный момент реализовано это так,скорость центрирования и погрешность не удовлетворяют.
Кривизна рук обратно пропорциональна сложности дела.
michey
 
Сообщения: 12
Зарегистрирован: 27 окт 2009, 22:26
Откуда: Санкт-Петербург
прог. языки: C,C++,Turbo Pascal
ФИО: Михайлов Александр Михайлович

Re: Центровка сервы

Сообщение =DeaD= » 27 окт 2009, 23:53

Так что надо то сделать? Управляя движком получить на выходе с переменника заданное напряжение?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Центровка сервы

Сообщение michey » 27 окт 2009, 23:55

Да,только,надо согнать значения с обоих каналов к нулю.
Кривизна рук обратно пропорциональна сложности дела.
michey
 
Сообщения: 12
Зарегистрирован: 27 окт 2009, 22:26
Откуда: Санкт-Петербург
прог. языки: C,C++,Turbo Pascal
ФИО: Михайлов Александр Михайлович

Re: Центровка сервы

Сообщение =DeaD= » 27 окт 2009, 23:57

Что за оба канала? Вроде первый и последний контакты переменника всегда на питании и земле, а средний гоняет и с него снимают потенциал в АЦП?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Центровка сервы

Сообщение michey » 27 окт 2009, 23:59

Ох стыдно то как.
я на средний кидал плюс,и мерял между 1\3 и землей.
Кривизна рук обратно пропорциональна сложности дела.
michey
 
Сообщения: 12
Зарегистрирован: 27 окт 2009, 22:26
Откуда: Санкт-Петербург
прог. языки: C,C++,Turbo Pascal
ФИО: Михайлов Александр Михайлович

Re: Центровка сервы

Сообщение =DeaD= » 28 окт 2009, 00:31

Ну ни фига себе вы извратились :)

Короче дальше должно быть проще тогда :) читайте тут про методы управления, не зря же я переводил:
[[Перевод статьи "Просто о ПИД-алгоритмах"]]

Страшных слов не бойтесь, там вроде всё в целом понятно на школьном уровне (старших классов естественно :))
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Центровка сервы

Сообщение michey » 28 окт 2009, 00:34

Спасибо,завтра после учебы почитаю.
Кривизна рук обратно пропорциональна сложности дела.
michey
 
Сообщения: 12
Зарегистрирован: 27 окт 2009, 22:26
Откуда: Санкт-Петербург
прог. языки: C,C++,Turbo Pascal
ФИО: Михайлов Александр Михайлович

След.

Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Mail.ru counter