roboforum.ru

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

Обсуждение вариантов изготовления координатного станка.

Модератор: bolt

Ответить

Master » 29 авг 2007, 22:16

Фига себе. Спасибо. Завтра буду учить мат часть.

avr123.nm.ru » 29 авг 2007, 22:18

Master писал(а):Мне известно что для перехода из точки А в точку Б нужно сделать мотором оси Х 1000 шагов, а мотором оси У 600 шагов и нада чтобы получилась прямая линия.


В ФАПЧ синтезаторах нецелое деление называется "фракшонал н"

например при соотношениее Х-У  2-3  можно шагать так

loop

Х - 1
У - 1

Х - 1
У - 2

goto loop

=====

Можно взять прогу ЧПУ и залогить как она выводит наклонную на LPT.

=====

А ты профили разгона и торможения для ШД делаешь в проге ?  Они должны быть настраиваемыми и макс скорость тоже.

Master » 29 авг 2007, 22:21

Как действовать при определенных соотношениях понятно, нужен универсальный алгоритм.
Чтобы задейсвовать в ШД алгоритм разгона и торможения нужно управлять ими через МК, компутер не стабильно выдает сигналы на порт при загрузке другого приложения может подтормаживать. Да и интерваля менее 10 мс считает очень нестабильно, я интересовался этой темой когда хотел сделать LPT осцилограф.

avr123.nm.ru » 29 авг 2007, 22:25

для  Х  1000    У  600       минимальные целые числа наверно   Х  5   У  3

т.е. 200 раз сделать

X  2    У  1
X  3    У  2

попробуй.

avr123.nm.ru » 29 авг 2007, 22:26

Master писал(а):Чтобы задейсвовать в ШД алгоритм разгона и торможения нужно управлять ими через МК


Но РЕАЛЬНЫЕ программы то управляют.

Master » 29 авг 2007, 22:28

Ну ииии ладно. Да и нафига просто позиционирование будет быстрее, а быстро фрезеровать фреза сломается. Я думаю разгон и торможение буду делать когда сделаю рабочую версию.

avr123.nm.ru » 29 авг 2007, 22:36

А как в G-коде окружности задаются ? как последовательность отрезков ?

Master » 30 авг 2007, 12:29

avr123.nm.ru писал(а):А как в G-коде окружности задаются ? как последовательность отрезков ?

Не как-то по-хитрому.

G01X3000Y1500D02*
G03X3000Y1500I-1500J0D01*

Но это не пятачок а именно круг диаметром 30мм и центром в x15y15мм

-= Александр =- » 30 авг 2007, 13:20

Про линию - смотреть алгоритм Брезенхема (или как там его?) как раз то что надо.  :wink:

Myp » 30 авг 2007, 13:21

Не как-то по-хитрому.
ага
типа считается что рисование кружков заложено в железо и прросто задаётся диаметр
а каким чудом станок будет рисовать кружок это уже проблемы мозга станка а не Гкода


а от лесенки всё равно не избавится =/
у ЩД же шаги дискретные, чем мельче шаг тем мельче лесенка буит
т.е. 200 раз сделать

X  2    У  1
X  3    У  2

получитсо лесенка из 400 ступенек, каждая вторая ступенька будет немного больше
но в конечном итоге получится примерно прямая линия....


далее.
на схеме как раз L297
там 4 входа от лпт, направление и шаг
и 8 выходов на шд, туда я повешу ещё вторую плату с мосфитами

попутно надыбал аж 3 ИК датчика, которые срабатывают на пересечение, с узкой щелью, довольно точные.
так что буит умный станок и в крайних положениях будет выключатся
кстати тут же сразу появилась мысль поставить 2 датчика туда где станок в исходном состоянии и добавить в прогу функцию автокалибровки на ноль.
тоесть сначала двигаем 1 ось пока не сработает сенсор, потом двигаем вторую ось
и в итоге всегда в начале работы у нас инструмент будет в одном и том же положении

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

SSG » 30 авг 2007, 13:39

Не тестил - нет времени, но пять коп. вставлю. Может так покатит:  :(
Код: Выделить всёРазвернуть
shagovХ=1000 
shagovY=600
ostatok:=0;
for iY:=1 to shagovY do
 begin
    dx:= shagovX/shagovY+ostatok;
   for iX:=1 to round(dx) do //и блин из-зи этого округления накапливается ошибка до 4000 шагов, а это 2 см  
        begin
           делаем шаг по оси Х
        end;
     делаем шаг по оси У
     ostatok:=frac(dx);
  end;

Т.е. накапливаем нецелый остаток шага по Х с предыдущего шага и добавляем к следующему. Как только он будет больше нуля - выполнится дополнительный шажок по Х, обусловленный наросшим остатком.  :?

Master » 30 авг 2007, 13:50

Т.е. накапливаем нецелый остаток шага по Х с предыдущего шага и добавляем к следующему. Как только он будет больше нуля - выполнится дополнительный шажок по Х, обусловленный наросшим остатком.  

А это идея сенкс попробую.

кстати тут же сразу появилась мысль поставить 2 датчика туда где станок в исходном состоянии и добавить в прогу функцию автокалибровки на ноль.

Запрасто. При необходимости добавлю.

Я щас Z-ось клею.
Последний раз редактировалось Master 30 авг 2007, 14:00, всего редактировалось 1 раз.

avr123.nm.ru » 30 авг 2007, 13:59

SSG писал(а):Т.е. накапливаем нецелый остаток шага по Х с предыдущего шага и добавляем к следующему. Как только он будет больше нуля - выполнится дополнительный шажок по Х, обусловленный наросшим остатком.  :?


ИМХО зверская пила получится.

Master » 30 авг 2007, 14:02

Ну на мониторе прямые линии тоже из пикселей. Да и ступеньки получаться 0,005мм.

Myp » 30 авг 2007, 14:15

Master писал(а):
кстати тут же сразу появилась мысль поставить 2 датчика туда где станок в исходном состоянии и добавить в прогу функцию автокалибровки на ноль.

Запрасто. При необходимости добавлю.

Я щас Z-ось клею.

а там скока ног в лпт есть свободных вобще? 6 ног будут заняты шаговиками... итого остаётся всего 2 ноги свободных чтоли??? ведь каждый сенсор на себя ногу потребует...

а я так и не придумал как z ось делать
со столиком всё понятно едим туды сюды ноу проблем
а вот как инструмент держать... да и ещё туда сюда его двигать...



ещё вопросик
там время импульсов устанавливаетсо, соответственно если у 2х одинаковых ШД поставить разное время шага то получится бяка вместо картинки, а случайно можно вполне...
мб добавить гденить сбоку галочку "делать одинаковые шаги"??

и например когда время шага совпадает, шаговики синхронно шагают или каждый шаговик под своим отдельным таймером??? ведь из за тормозов системы какойнить шаговик может отстать от другого если они не синхронно шагают
хотя у L297 есть выходы синхронизации...


Rambler\'s Top100 Mail.ru counter