прототип параллельной SCARA

Намоточные, сверлильные, электроэррозионные и другие станки с ЧПУ.
Аватара пользователя
artclonic
Мастер
Сообщения: 565
Зарегистрирован: 07 июн 2014, 12:40
Репутация: 36
Контактная информация:

прототип параллельной SCARA

Сообщение artclonic »

Продолжаю познавать различные киниматики. Вот вспомнил о такой вот, параллельной SCARA.
В принципе, как рассчитываются координаты в пересчете на углы, вроде все понятно. Подскажите поддерживают ли стандартные прошивки 3д принтеров типа Марлин, Реп -рап... данную кинематику. Хочу простейший прототип построить на МегаРампсе. Вроде, как просто SCARA поддерживают, а вот именно в такой кинематике... вопрос. Или пойти опять программным путем простого пересчета каждой координаты?
Вложения
Безымянный.jpg (5846 просмотров) <a class='original' href='./download/file.php?id=122723&sid=53f7be45b1d82cef74ffb8abef36b7f3&mode=view' target=_blank>Загрузить оригинал (17.17 КБ)</a>
Наверстываем... в электронике...
Аватара пользователя
artclonic
Мастер
Сообщения: 565
Зарегистрирован: 07 июн 2014, 12:40
Репутация: 36
Контактная информация:

Re: прототип параллельной SCARA

Сообщение artclonic »

Добрый день, углубился в кинематику...
В положительной зоне Y вроде все понятно...
А вот если точка (X.Y) будет ниже плечей L2? углы на которые поворачиваются ШД1 и ШД 2 будут одинаковые, у точка (X.Y) может быть в двух местах...
Как учесть (расчетно) этот момент? Или когда Y будет в минусовой зоне, как заставить всю конструкцию переориентироваться "вниз" (расчетно)?
Вложения
Кинематика SCARA.jpg (5793 просмотра) <a class='original' href='./download/file.php?id=122855&sid=53f7be45b1d82cef74ffb8abef36b7f3&mode=view' target=_blank>Загрузить оригинал (150.58 КБ)</a>
Наверстываем... в электронике...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: прототип параллельной SCARA

Сообщение Serg »

А как механически перемещаться из положительной зоны в отрицательную и наоборот?
Например как изобразить вот такую траекторию:
X0 Y0
X100 Y0
X100 Y100
X0 Y100
X0 Y0
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
artclonic
Мастер
Сообщения: 565
Зарегистрирован: 07 июн 2014, 12:40
Репутация: 36
Контактная информация:

Re: прототип параллельной SCARA

Сообщение artclonic »

Вот я и спрашиваю.... Надо как то точку ниже плеч опустить... наверное
Наверстываем... в электронике...
Аватара пользователя
artclonic
Мастер
Сообщения: 565
Зарегистрирован: 07 июн 2014, 12:40
Репутация: 36
Контактная информация:

Re: прототип параллельной SCARA

Сообщение artclonic »

Длительное время разбирался с различными кинематиками... Понял, что освоить сложные пока не под силу, поэтому принял решение сделать манипулятор с двумя плечами на ардуино. Есть два пути (прошу подсказки по которому лучше пойти)
Управление каждым плечем ШД мотором
недостатки
Дискретность перемешения - шаг в 1,8 град на 300 мм плеча даст примерно - 9 мм, а мне надо два плеча по 350 мм где-то. (допустим передаточное отношение сделать 1 к 5 и микрошаг выставить 1/16), но что то подсказывает, что все равно в сумме на двух плечах 350 мм будет весомым.
Приемущества - ВСЕ ПО В НАЛИЧИЕ!!!

Управление двумя сервоприводами (даже модель сконструировал уже..)
вижу следующие недостатки - НЕ могу дискретность сервы выставить мене 1 градуса. (наверное можно както изменив саму библиотеку Servo.)Ощущаю некоторы люфт при вращении плеча, на шестерне вроде не заметно, а на окончании плеча, мм 6-8.
Соответсвенно самому придется писать скетч.. (но щаз даже градусы не могу дробными сделать)
Плюсы - простота конструкции - ВСЕ ОЧЕНЬ ПРОСТО!!
Наверстываем... в электронике...
tegauss
Кандидат
Сообщения: 47
Зарегистрирован: 30 янв 2014, 02:17
Репутация: 11
Настоящее имя: Антон
Откуда: Москва
Контактная информация:

Re: прототип параллельной SCARA

Сообщение tegauss »

вижу следующие недостатки - НЕ могу дискретность сервы выставить мене 1 градуса. (наверное можно както изменив саму библиотеку Servo.)
Это потому, что стандартная функция write() библиотеки Servo имеет такой вид:

Код: Выделить всё

void Servo::write(int value)
{
  if(value < MIN_PULSE_WIDTH)
  {  // treat values less than 544 as angles in degrees (valid values in microseconds are handled as microseconds)
    if(value < 0) value = 0;
    if(value > 180) value = 180;
    value = map(value, 0, 180, SERVO_MIN(),  SERVO_MAX());
  }
  this->writeMicroseconds(value);
}
Здесь функция map отображает диапазон 0-180 в диапазон SERVO_MIN()-SERVO_MAX() (обычно это диапазон 544-2400). Делает она это в целых числах, поэтому промежуточные значения теряются. А еще функция write() принимает в себя только целые числа. Именно из-за этих двух причин вы и не можете сделать градусы дробными :)

Если хотите это исправить, можете прямо в ваш скетч поместить обновленную функцию write2():

Код: Выделить всё

#include <Servo.h> 

Servo myservo;

#define MIN_PULSE_WIDTH       544     // the shortest pulse sent to a servo
#define MAX_PULSE_WIDTH      2400     // the longest pulse sent to a servo

void write2(float value)
{
    if(value < 0) value = 0.0f;
    if(value > 180) value = 180.0f;
    myservo.writeMicroseconds(value * (MAX_PULSE_WIDTH - MIN_PULSE_WIDTH) / 180.0f + MIN_PULSE_WIDTH);
}

void setup() 
{ 
  myservo.attach(9);
  write2(2.5f);
} 

void loop() {} 
Вызывать эту функцию нужно уже передавая ей float, а не int, т.е.:

Код: Выделить всё

write2(2.5f);
Библиотеку Servo при этом трогать не потребуется :)

Или же можно напрямую использовать функцию writeMicroseconds(), но это менее удобно.
Ответить

Вернуться в «Прочие станки»