Перейти к содержанию
    

независимое управление 3 сервомашинками

здравствуйте, помогите девушке, которая не особо разбирается в программировании :wacko: :( :(

надо запрограммировать в AVR сервомашинки.

у нас есть 3сервопривода. на микроконтроллере АТМега необходима создать независимое управление ими. У нас должна быть отдельная подпрограмма, в которую мы вводим координаты в которые должна прийти машинка, они пересчитываются на углы, серваки поворачиваются и выдают из подпрограммы обратно координаты на которые повернулись

Как это осуществить - не представляю...:(

Изменено пользователем Валероша

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так в чем проблема? Как пересчитать координаты в углы? Или как передать их в сервомашинки и получить обратно результат? В первом случае нужно знать коэффициент между углом и координатой, который определяется Вашей механикой и должен быть Вам известен. Во втором - рассказывайте как подключены машинки, какого типа они и еще кучу информации. Не стесняйтесь писать много. А то у нас, как всегда, телепаты все в отпуске.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот. Да и вообще весь раздел к изучению раз

Как это осуществить - не представляю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так в чем проблема? Как пересчитать координаты в углы? Или как передать их в сервомашинки и получить обратно результат? В первом случае нужно знать коэффициент между углом и координатой, который определяется Вашей механикой и должен быть Вам известен. Во втором - рассказывайте как подключены машинки, какого типа они и еще кучу информации. Не стесняйтесь писать много. А то у нас, как всегда, телепаты все в отпуске.

Используем МК Atmega32a.

надо сделать функцию(-ии) для работы с сервомашинками. Оформить ее надо как файл *.h или просто кусок кода для вставки в основную программу.

С хорошими подробными комментариями и предваряющей инструкцией по использованию в пару строк.

Эта функция должна решать задачу формирования сигналов на машинки. Для этого она может использовать один таймер. При этом она должна уметь управлять 4-5 пронумерованными сервомашинками.

Работа с функцией должна быть удобной. Например, что бы обращаться к ней так servo_set(%номер_машинки%, %угол_в_градусах/радианах%)

Так же нужно иметь возможность настраивать крайние положения машинок например так servo_min(%номер_машинки%, %значение_угла_в_градусах/радианах%, %соответствующая_длина_импульса_в_мкс%). Или аналогично через дефайны.

Хорошо бы иметь возможность менять дискрету угла поворота (хотя бы два-три варианта: грубо/тонко/средне) и скорость поворота. пусть даже для всех машинок сразу.

+ Надо учесть, что раз функция пользуется таймером, в этот кусок программы надо впихнуть настройку таймера и функцию прерывания.

Ну и естественно нужно иметь возможность задавать через дефайны пины, к которым подключены машинки.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для этого она может использовать один таймер.

....

Ну и естественно нужно иметь возможность задавать через дефайны пины, к которым подключены машинки.

Эти два требования несколько противоречивы. Либо вы используете по одному модулю сравнения (Output Compare) таймера на каждую сервомашинку и подключаете все сервомашинки к ногам, к которым этои модули прибиты гвоздями (вам потребуется минимум два таймера, ибо таймер 0 и 2 имеют по одному такому модулю), либо вы задаете любую ногу и управляете машинкой методом програмного ногодрыга, но при этом отказыватесь от точности позиционирования - сформированный программно сигнал обязательно будет дрожать и вслед за ним будут дрожать и сервомашинки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...