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

Модератор: bolt

Сообщение -= Александр =- » 01 сен 2007, 15:24

Из моего опыта: (думаю моего монстра все видели?)
1)Движков от дисководов не хватает. Тоесть они конечно крутят, но ни о каких ускорениях не может быть и речи.
2)ДШИ-200 хватает, но в обрез.
3)ДПР-72 в режиме "эмуляции" шаговика - это зло. Пару раз винты срывало и конструкцию гнуло...

В общем все от ходового винта зависит. У меня шпильки М6, мотор усилием около 5 кг/см создаст тягу стола в 20 кг (или даже больше, побоялся мерить на полной мощности) - вот и считайте... А трение - его быть не должно! Это ж станок все-таки, тут все должно быть точно...

В принципе большинство что я видел - сделано на "коротком" ДШИ-200 или аналогах... "Длинных" ДШИ-200 вообще не встречал, видимо слишком дорогие для любителей...
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение Master » 01 сен 2007, 15:27

На electroprivod.ru есть таблица для подборки двигателей начиная от плоттера и заканчивая станками для фрезеровки танка из куска железа :)
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение Master » 02 сен 2007, 19:27

2 SSG
Попробовал я алгоритм. Блин никогда я не был еще в таком ступоре как сегодня ночью.
Короче при значении шага по Х 60, а по У 25 получается загадочный случай их отношение 60/25=2,4 (не периодическая дробь где может накапливаться ошибка из-за округления после 20 знака). Но после запуска получается, что по оси Х делается 10 лишних шагов. Вообщем вот код, я его упростил для нормальной читаемости.
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var ostatok: real;
   shagovX, shagovY: integer;
   iX, iY: integer;
begin
 ostatok:=0;

 shagovX:=60;
 shagovY:=25;

 for iY:=1 to shagovY do
 begin//+**
   for iX:=1 to round(int(shagovX/shagovY)) do
   begin//+***
     ostatok:=ostatok+frac(shagovX/shagovY);
     if ostatok>=1 then
     begin
       ostatok:=ostatok-1;
       //делаем дополнительный шаг по Х
       labelX.caption:=intToStr(strToInt(labelX.caption)+1); //Счетчик шаго по Х
       application.ProcessMessages;
     end;
     //делаем шаг по Х
     labelX.caption:=intToStr(strToInt(labelX.caption)+1); //Счетчик шаго по Х
     application.ProcessMessages;
   end;//+***
   //делаем шаг по Y
   labelY.caption:=intToStr(strToInt(labelY.caption)+1); //Счетчик шаго по У
   application.ProcessMessages;
 end;//+**
end;


А вот сам исходник этого кода.
Вложения
Новая папка.rar
(162.93 КиБ) Скачиваний: 31
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение avr123.nm.ru » 02 сен 2007, 19:39

Master писал(а): при значении шага по Х 60, а по У 25 получается загадочный случай их отношение 60/25=2,4 (не периодическая дробь где может накапливаться ошибка из-за округления после 20 знака). Но после запуска получается, что по оси Х делается 10 лишних шагов.


Вот потому то и ценится микрошаг.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение Master » 02 сен 2007, 19:45

Да дело не в микрошаге, я же говорю что в алгоритме нет накопления ошибки, когда накапливается остаток от деления равным 1 шагу делается дополнительный шаг. А у меня получается что этих шагов дополнительных больше чем нада.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение Master » 02 сен 2007, 21:39

Перекроил полностью код программы. Добавил новые кнопочки, добавил возможность выставлять шаг винта. Временно отключен G-код. Исходники на 1 стр.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение Master » 03 сен 2007, 01:26

Да да я гений я нашел эту гребаную ошибку 24 часа всего прошло и я ее кончил да да да йес йес обхсс. :)
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение Master » 03 сен 2007, 03:25

Вот какие линии теперь можно рисовать уже с G-кодом.
Вложения
Безымянный.JPG
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение avr123.nm.ru » 03 сен 2007, 09:22

Пора добавлять

1) устранение люфтов по осям

2) 4-ю ось - пока не поздно

3) последовательную передачу инфы в контроллер по 1 ножке - ни в одной проге не видел а считаю что очень нужная фича и прием по другой в формате 8n1 UART.   Эти команды можно использовать и для смены инструмента и для других прибамбасов по усмотрению пользователя. Например программно устанавливать ток ШД и считывать.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение Myp » 03 сен 2007, 11:05

да да да
устранение люфта очень нужно :)
ато я чёто как не бьюсь совсем без люфта ничё не могу придумать...

теперь этими бы линиями да рисовать кружочки...
видимо кружочки всегда состоят из одинаковой пропорции числа шагов по х\у(ну тоесть задан пошаговый алгоритм стандартного кружка а остальные масштабированием по 2м осям), тока масштабируются в зависимости от диаметра?

[off]
на даче нарыл всякого хлама алюминиевого
сижу думаю, как бы так его переплавить в чтонить дельное
например пару чушек прямоугольных толстых отлить, чтоб потом их обточить и в станок приспособить...
ато бьюсь над тем из чего сделать саму подвижную штуку которая ездит по винту и опирается на салазки
из железа немогу её сделать, а алюминия подходящей толщины нету...
никто алюминий не плавил?
у меня вот в костре когда всяких хлам сжигаем
регулярно капельки алюминия в золе попадаются, если ктонить провода выкинул.
так что температуры в принципе хватает...[/off]
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Сообщение Master » 03 сен 2007, 11:12

avr123.nm.ru писал(а):Пора добавлять

1) устранение люфтов по осям

2) 4-ю ось - пока не поздно

3) последовательную передачу инфы в контроллер по 1 ножке - ни в одной проге не видел а считаю что очень нужная фича и прием по другой в формате 8n1 UART.   Эти команды можно использовать и для смены инструмента и для других прибамбасов по усмотрению пользователя. Например программно устанавливать ток ШД и считывать.


1) Устранение люфтов программно я так подумал ничего не даст. Если даже ось будет программно выбирать люфт при смене направления движения вала все равно другая ось движущаяся параллельно будет этот люфт сбивать (блин не могу на пальцах объяснить).

2) А нафига 4-я ось, это какая - ось времени?

3) USB UART и все остальное буду делать когда закончу с LPT. Если меня не сломает конечно, а то кроувушки она уже моей попила литра 2.

4) Совсем забыл спасибо SSG за предложенный алгоритм.

5) Выложил новую версию на 1 стр.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение Myp » 03 сен 2007, 11:29

ммммммм
типа пока мы одной осью подкручиваем чтоб люфт убрать вторая ось(например идеальная без люфта) уже делает рабочий ход??

ну тода надо добавить коррекцию, типа пока выбираем люфт вторая ось не еззит =)
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Сообщение Master » 03 сен 2007, 11:36

Myp писал(а):ммммммм
типа пока мы одной осью подкручиваем чтоб люфт убрать вторая ось(например идеальная без люфта) уже делает рабочий ход??

ну тода надо добавить коррекцию, типа пока выбираем люфт вторая ось не еззит =)


Не я имею ввиду, что если люфт есть (и даже если мы его программно уберем), то вторая ось при работе будет всеравно болтать 1 ось, точно так же и первая будет болтать 2-ю. Вопщем нада эксерементировать, а может и не будет болтать. Но самый классный вариан сделать нормальную механику и не мудохаться.
Посмотрал сегодня цены на ШД :( Аналог ДЩИ-200 стоит 50 у. е.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение avr123.nm.ru » 03 сен 2007, 12:19

Master писал(а):1) Устранение люфтов программно я так подумал ничего не даст.


Во всех прогах дает.

Master писал(а):2) А нафига 4-я ось, это какая - ось времени?


Вращение деатли на нужные углы.  Щас станки меньше чем с 5 осями не производят.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение avr123.nm.ru » 03 сен 2007, 12:40

Master писал(а):самый классный вариан сделать нормальную механику и не мудохаться.


При таких затратах (не менее 1000 баксов) цена нормального ПО ничтожна. Прога ЧПУ на USB с контроллером без силовой части стоит 125 евро. Есть и за 34 евро но там паять надо самому.

Компенсация люфта ПРОГРАМНАЯ как раз и позволяет использовать дешовую механику более комфортно.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Пред.След.

Вернуться в Станочный парк

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

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

cron