roboforum.ru

Технический форум по робототехнике.
Текущее время: 04 дек 2024, 11:11

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Шаговики 28BYJ-48 для мини webcam pan-tilt
СообщениеДобавлено: 27 фев 2013, 11:10 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
всем привет.
уже долго не могу разрешить эту задачу..
у меня есть небольшой самодельный pan-tilt из двух сервов для вебкамеры. все это управляется arduino+opnewrt
но я хочу поменять сервоприводы на шаговые двигатели, так как они работают гораздо тише.
это мне и нужно - сделать максимально тихий поворотный механизм.

для этого купил два 28BYJ-48 + ULN2003
правда уже вижу, что они врядли подходят под мои задачи - они очень медленные.
в то время как сервопривод крутит камеру быстро и резко, этот шаговик прокручивается неторопливо.
правда может быть я не умею его "кодировать" ?
я уже успел понять, что там есть редуктор.. видимо он "мешает" разогнаться.
но я пока буду использовать эти шаговики, до тех пор пока не пойму какие более быстрые лучше купить вместо них.
но мой первый вопрос такой - как заставить этот мотор крутится на максимально доступной для него скорости ?
если есть у когото опыт работы с ними - прошу подсказать код или библиотеку с которой стоит работать.
я попробовал много разных вариантов, но пока никак не могу понять как же оно все работает.
какито углы, шаги и прочие обороты, все так просто с ними ведут рассчеты, а для меня это темный лес..

еще у меня возникла новая проблема: из-за того, что шаговики принципиально отличаются от сервов, я не могу программно ограничить диапазон вращения вала и по получается что возможна ситуация когда кабель камеры может намотаться на вал..
я полагаю в этом случае мне нужно сделать какието физические упоры на корпусе... иначе даже не знаю как.

Прошу совета, а то я уже не знаю что и придумать..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Шаговики 28BYJ-48 для мини webcam pan-tilt
СообщениеДобавлено: 27 фев 2013, 11:14 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
ты ими просто медленно управляешь =)
они достаточно шустрые https://www.youtube.com/watch?v=asv5-kYzSsE

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Шаговики 28BYJ-48 для мини webcam pan-tilt
СообщениеДобавлено: 27 фев 2013, 11:29 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
спасибо, посмотрел. Мне хотябы так его крутить как в начале видео..

Load the Arduino Example File/Examples/Stepper/st­epper­_speedControl
Than change the follow lines:
const int stepsPerRevolution = 2050;
Stepper myStepper(stepsPerRevolution ,8,10,11,9);
Max speed is 14 RPM At 5V

у меня не крутится.. а если не менять stepsPerRevolution и оставить его как было (200) то чуть-чуть прокручивается, еще медленнее чем было )

подключено также - 8,9,10,11
правда питание внешнее, так как у меня arduino nano..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Шаговики 28BYJ-48 для мини webcam pan-tilt
СообщениеДобавлено: 27 фев 2013, 12:01 
Не в сети

Зарегистрирован: 07 авг 2010, 21:29
Сообщения: 1725
Откуда: КМВ
прог. языки: C
ФИО: Андрей
Быстрее чем 8-10 оборотов в минуту - начинают пропускать шаги. Не говоря о том, что мощность падает на порядок.

_________________
Дым, идущий из всех устройств в помещении предвещает появление электрика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Шаговики 28BYJ-48 для мини webcam pan-tilt
СообщениеДобавлено: 27 фев 2013, 13:06 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
ну полные обороты мне и не нужны. максимум это 270 градусов обзор..
вот как упоры приделать и что делать с кодом чтобы оно так быстро крутилось ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Шаговики 28BYJ-48 для мини webcam pan-tilt
СообщениеДобавлено: 28 фев 2013, 01:27 
Не в сети

Зарегистрирован: 07 авг 2010, 21:29
Сообщения: 1725
Откуда: КМВ
прог. языки: C
ФИО: Андрей
С кодом - написать самостоятельно, порядок переключерия фаз - как в даташите. Вызывать шаои - из прерывания таймера для точности.
Гляну, был у меня скетчик.

_________________
Дым, идущий из всех устройств в помещении предвещает появление электрика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Шаговики 28BYJ-48 для мини webcam pan-tilt
СообщениеДобавлено: 28 фев 2013, 20:06 
Не в сети

Зарегистрирован: 02 ноя 2012, 23:46
Сообщения: 152
Откуда: SPB
жду с нетерпением, спасибо !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Шаговики 28BYJ-48 для мини webcam pan-tilt
СообщениеДобавлено: 04 мар 2013, 12:21 
Не в сети

Зарегистрирован: 07 авг 2010, 21:29
Сообщения: 1725
Откуда: КМВ
прог. языки: C
ФИО: Андрей
Шаги переключать как-то так:
Код:
void stepMotor(int Step)
{
int thisStep = Step % 8;

    switch (thisStep) {
      case 0:    // 1000
      digitalWrite(motor_pin_1, HIGH);
      digitalWrite(motor_pin_2, LOW);
      digitalWrite(motor_pin_3, LOW);
      digitalWrite(motor_pin_4, LOW);
      break;
     case 1:    // 1100
      digitalWrite(motor_pin_1, HIGH);
      digitalWrite(motor_pin_2, HIGH);
      digitalWrite(motor_pin_3, LOW);
      digitalWrite(motor_pin_4, LOW);
      break;
     case 2:    // 0100
      digitalWrite(motor_pin_1, LOW);
      digitalWrite(motor_pin_2, HIGH);
      digitalWrite(motor_pin_3, LOW);
      digitalWrite(motor_pin_4, LOW);
      break;
     case 3:    // 0110
      digitalWrite(motor_pin_1, LOW);
      digitalWrite(motor_pin_2, HIGH);
      digitalWrite(motor_pin_3, HIGH);
      digitalWrite(motor_pin_4, LOW);
      break;
     case 4:    // 0010
      digitalWrite(motor_pin_1, LOW);
      digitalWrite(motor_pin_2, LOW);
      digitalWrite(motor_pin_3, HIGH);
      digitalWrite(motor_pin_4, LOW);
      break;
     case 5:    // 0011
      digitalWrite(motor_pin_1, LOW);
      digitalWrite(motor_pin_2, LOW);
      digitalWrite(motor_pin_3, HIGH);
      digitalWrite(motor_pin_4, HIGH);
      break;
     case 6:    // 0001
      digitalWrite(motor_pin_1, LOW);
      digitalWrite(motor_pin_2, LOW);
      digitalWrite(motor_pin_3, LOW);
      digitalWrite(motor_pin_4, HIGH);
      break;
     case 7:    // 1001
      digitalWrite(motor_pin_1, HIGH);
      digitalWrite(motor_pin_2, LOW);
      digitalWrite(motor_pin_3, LOW);
      digitalWrite(motor_pin_4, HIGH);
      break;
  }
}

Вызывать этот код - из прерывания по таймеру, вот так:
Код:
//Timer2 указатель вектора прерывания по переполнению
ISR(TIMER2_OVF_vect) {

  //Проверим направление, если больше границ - поменяем на противоположное
  if (curstep> 400 || curstep<0){dir=-dir;}
  curstep+=dir;
  //Переключение IO-вывода в другое состояние.
  digitalWrite(TOGGLE_IO,!digitalRead(TOGGLE_IO));
  stepMotor(curstep);
}

Тут двигатель делает 400 шагов туда-сюда.

_________________
Дым, идущий из всех устройств в помещении предвещает появление электрика.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO