Трудный путь к ЧПУ

nevkon
Offline
Зарегистрирован: 20.01.2015

1. Ось Z положено по нормальному делать в "минус" (обработка ведется ниже 0, холостые перемещения идут в плюсе). Поэтому отображение вашего кода в визуализаторе получилось перевернутым для оси Z. X и Y обычно делают только в + (у меня сделано -10 к настройке чтобы можно было сместить 0).

2. В программе отсутствует указание скорости рабочих перемещений (например "F100" - 100 мм/мин) и оборотов шпинделя ("S6000" - 6000 об/мин).

Про смещение я наконец понял что вы хотели сказать, действительно у вас происходит срыв на холостых ходах. В настройках ищите максимальную скорость перемещений. Как правило настраивается в программе отправляющей g-code.

FreeWindusis
Offline
Зарегистрирован: 04.02.2016

Здравствуйте. Появилась проблема. Прибрел комплект Двигатели NEma 17+драйверы A4988+CNC shield V3.0 В ардуино залил grbl v9.0i подключил все. На шилд подал питание в 12V 1.5A двигатель и драйвер пока что использую 1. подал команду на поворот по оси X но двигатель так и не завелся . В чем может быть причина?

dtvims
Offline
Зарегистрирован: 26.11.2012

FreeWindusis, или нет питания, или неверно подключен двигатель (обычно бьется в конвульсиях), или неверно подключен драйвер (обычно умирает сразу).

nevkon
Offline
Зарегистрирован: 20.01.2015

Еще про букву В - первый контур режется либо на "0" либо с небольшим заглублением. Остальное режется на одном уровне.

FreeWindusis
Offline
Зарегистрирован: 04.02.2016

А может быть такое что в моей ситуации просто мощности иточника питания не хватает что бы завести двигатели?

dtvims
Offline
Зарегистрирован: 26.11.2012

FreeWindusis, Тогда они бы, скорее всего, вибрировали бы. Ну как-то пытались бы сдвинуться с места. Если на двигатель подается напряжение, то он или зафиксирован на месте (не крутися, но удерживает состояние), дергается (неверное подключение или не хватает тока), вращается. 5В подавать на Nema17 не пробовал, но по опыту включения динамомашинки в радиосеть, вполне можно слушать музыку, хоть и тихо :)

FreeWindusis
Offline
Зарегистрирован: 04.02.2016

Спасибо. Но я подаю 12 вольт. У меня с двигателя выходит 4 провода, как я понимаю 2 на одну обмотку 2 на другую. И я их подключаю так же как они выходят к шилду на котором стоит драйвер шаговика. Если у вас есть возможность подскажите как верно подключать двигатель шилд вот такой 

Ach
Offline
Зарегистрирован: 25.12.2015

FreeWindusi у меня тот же комплект и аналогичный источник питания. Подавал даже 5 вольт - крутит но работать с 5 в не получится. А 12 в 1.5 А хватит с головой, тем более, что двигатель у вас один сейчас. Скорее всего - где-то неправильное подключение. Возможно, уже спален драйвер.

dtvims
Offline
Зарегистрирован: 26.11.2012

Вроде похоже на правду.

Еще, говорят, что нельзя подавать напряжение на драйвера при не подключенных двигателях, что они тоже горят (не проверял).

Еще перемычки под ним ставятся для выбора режима микрошага. ХЗ работает ли без них, сам выставил все, для максимального деления на микрошаги (все 3 перемычки) и больше не снимал.

Ну, и проверить правильно ли настроена прошивка, правильно ли выбран шилд/ардуино и т.п. Прозвонить обмотки двигателей. В общем проверить все по кругу. Если ничего не сгорело, то какую-нибудь мелочь просто забыли. Там все просто...

FreeWindusis
Offline
Зарегистрирован: 04.02.2016

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

dtvims
Offline
Зарегистрирован: 26.11.2012

Если двигатели подключены неверно, то они просто дергаются в конвульсиях. А так, просто обмотки парами подряд включаются в разъем.

FreeWindusis
Offline
Зарегистрирован: 04.02.2016

Спасибо за советы. А можете подсказать какой нибудь простой скетч для проверки моей сборки(ардуино+двигатель+CNC+А4988)

Ach
Offline
Зарегистрирован: 25.12.2015

Проше всего проверить в любой проге для отправки G-кода. GRBL controller, например просто стрелочками погонять туда сюда движки

dtvims
Offline
Зарегистрирован: 26.11.2012

Натнулся на интересный ролик по построению ЧПУ: http://www.youtube.com/watch?v=VwwwbFRpbnE

Интересен не столько сам станок, сколько подход к решению некоторых проблем при его построении. Ролик на английском, но в целом все понятно.

Joiner
Offline
Зарегистрирован: 04.09.2014

dtvims пишет:

Натнулся на интересный ролик по построению ЧПУ: http://www.youtube.com/watch?v=VwwwbFRpbnE

Интересен не столько сам станок, сколько подход к решению некоторых проблем при его построении. Ролик на английском, но в целом все понятно.

Спасибо. Посмотрел с удовольствием.

Ach
Offline
Зарегистрирован: 25.12.2015

dtvims, действительно, интересное видео. Понравились некоторые идеи. Спасибо.

dronsoft
Offline
Зарегистрирован: 02.06.2011

dtvims пишет:

Натнулся на интересный ролик по построению ЧПУ: http://www.youtube.com/watch?v=VwwwbFRpbnE

Интересен не столько сам станок, сколько подход к решению некоторых проблем при его построении. Ролик на английском, но в целом все понятно.

Да решение такого станка тоже не плохо, как обычно немцы со своей педантичностью))))

AKa
AKa аватар
Offline
Зарегистрирован: 10.11.2015

Господа, нужна помощь. Есть: UNO, CNC Shield, DRV8825 (3 шт), комьютерный блок питания.

Все по отдельности работает (проверял на одной оси Х). Затем, когда собрал это все в кучу, видимо после КЗ или из-за того что подключал все "на горячую" спалил на шилде предохранитель. Впаял туда обычный на 1,6А (в интернете не нашел параметры предохранителя CNC). Теперь все вместе работает, кроме оси Z. Z двигается только в одну сторону. Ставил драйвер и двигатель на другую ось - все ок. Ставил с другой оси туда драйвер и двигатель - снова двигается только в одну сторону.

Мои вопросы:

1. Какой предохранитель должен стоять в CNC шилде?

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

 

P.S. Вечером попробую перенаправить ось Z в ось A и проверить.

P.S.S. На ардуино загружено GRBL, на ПК управляю GCodeSender v1.0.9.

P.S.S.S. На видео последний двигатель - это ось Z: http://www.youtube.com/watch?v=P6uTboyFLhA

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

AKa Дорожки под лупой смотрели и детали если сгорел предохранитель могло хватить и для прогорания дорожки или пробоя другой детали? Обвязку оси Z прозванивали мультиметром?

Крупного фото шилда не помешало-бы, с обеих сторон.

dtvims
Offline
Зарегистрирован: 26.11.2012

Думаю что предохранитель 1,6 малова-то будет, т.к. каждый драйвер до 2А, т.е. на 3 драйвера по максимуму до 6А. Можно прикинуть с каким хлопком предохранитель вышибло. 1А довольно тихо сгорает, а 3А уже такой заметный хлопок дает (покрайней мере быстрые предохранители). Но это пока не суть важно.

У Вас не работает пин DIR, который отвечает за направление движения, т.е. контроллер отправляет на STEP шаги, а направление не переключает. Или сгорела  (а счего вообще) дорожка (возможно доп. обвязка, резистор между ножкой контроллера и драйвером), или вышибло порт у контроллера (надо перепаивать контроллер или менять ардуину). Мог быть вариант поломки самого драйвера, но если проверяли, значит ардуино.

AKa
AKa аватар
Offline
Зарегистрирован: 10.11.2015

bodriy2014, dtvims спасибо за подсказки. Вечером внимательно проверю дорожки.

Есть вторая УНО, попробую ещё заменить её и проверить.

AKa
AKa аватар
Offline
Зарегистрирован: 10.11.2015

На новой ардуинке все работает отлично. По схеме я понимаю что DIR для оси Z - это пин 7? В предыдущем проекте у меня этот пин не используется...

FreeWindusis
Offline
Зарегистрирован: 04.02.2016

Наконец запустил двигатель, но появилась проблема, при установке перемычек на микрошаг двигатель не движется а просто издает звук и все. И появилась 2 проблема двигатель(без режима микрошага) двигается на 5 шагов а после перестает реагировать. Подавал команды через grbl control кнопками x+ и x-. Источник питания 9V/ Могу ли я написать свой простой скетч(так как мне надо управлять только 2 двигателями в режиме микрошага при этом они управляются отдельно, то есть сначала один потом второй) и подавать его так же с ардуино на шилд с драйверами и не использовать grbl? Пример скетча:

// Инициализация портов на ардуино (Xs,Ys,Zs выходы для регулировки шага; Xd,Yd,Zd выходы для регулировки направления; En выход для включения двигателей)
int Xs = 2;
int Ys = 3;
int Xd = 5;
int Yd = 6;
int En = 8;
int inSize=0; // Переменная которая будет содержать размер буфера
int delayTime = 8; // Выдержка для регулировки скорости вращения
char str[128]; // Так как типа string тут нет, будем использовать массив символов
void setup() {
  // Настраиваем нужные контакты на выход
  pinMode(Xs, OUTPUT);
  pinMode(Xd, OUTPUT);
  pinMode(En, OUTPUT);
  Serial.begin(9600); // Открываем порт со скоростью передачи в 9600 бод(бит/с) 
}
void foward()
{  
  digitalWrite(Xd, HIGH); // Задаём направление вращения по часовой стрелке
        // Выполнение шага
    digitalWrite(Xs, HIGH);
    delay(delayTime); 
    digitalWrite(Xs, LOW);
    delay(delayTime);
  }
void back()
{
  digitalWrite(Xd, LOW); // Задаём направление вращения против часовой стрелки
       // Выполнение шага
    digitalWrite(Xs, HIGH);
    delay(delayTime); 
    digitalWrite(Xs, LOW);
    delay(delayTime);
  }
void loop()
{     
  digitalWrite(En, HIGH); // Подаём питание на двигатель
     inSize=0; // Сбрасываем переменную
memset(str, '\0', 128); // Очищаем массив
 if(Serial.available() > 0)
 {
   delay(200); // Ждем, для того, чтобы пришли все данные
   inSize = Serial.available(); // Получаем длину строки и записываем ее в переменную
   for (int a = 0; a < inSize; a++)
   {
     str[a] = Serial.read(); // Читаем каждый символ, и пишем его в массив
   }
  
   // Сравнять массив со строкой
   if (strcmp(str, "foward") == 0) // Если было передано "foward" - вращаем вперед
   {
     Serial.println("roll foward"); // Отправляем сообщение компьютеру
     foward();
  }
  else if (strcmp(str, "back") == 0) // Если было передано "back" - вращаем назад
  {
     Serial.println("roll back");
     back();
  }
    else
  {
     Serial.println("Error command!");
  }
 }
}

 

Blago
Offline
Зарегистрирован: 22.02.2016

@FreeWindusis несколько комметариев:

1. Serial.available() Буфер может хранить до 64 байт, поэтому строка в 128 байт многовато...

2. функции foward() и back() идентичны, можно сделать одну Step(int direction)

3.  digitalWrite(En, HIGH)  в loop() не меняется, так что можно вынести в setup()

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Привет всем. Станочек собрал. Шевелится. Моторы совсем никакие, ставил чтобы просто проверить.

https://goo.gl/photos/RXyuFinq9Tmc4gzU6

https://goo.gl/photos/P4DXiatMEqAjndgD6

Uno Shield + GRBL + drv8825, все уверенно ползает на 255мм/мин. Фанера водостойкая 24мм. Вырезано на большом промышленном станке. Чертежи я выкладывал тут. Подходит все Чотко. Направляющие 12мм по X и Y, по Z - 10мм. Подшипники линейные двухболтовые, гайки капролоновые токарь точил, винт покупной на 12мм шаг 3. В общем вышло бюджетно и крепко. Формат такой специально делал, надо так.

Заказал драйверы http://ru.aliexpress.com/item/New-TB6600-DC12-45V-Single-Axis-Two-Phase-Hybrid-Stepper-Motor-Driver-Controller-hot-selling-Quality/32492473291.html

контролеер под Мач3 http://ru.aliexpress.com/item/2015-Brand-New-Top-Selling-CNC-5-Axis-Breakout-Board-Interface-Adapter-For-Stepper-Motor-Driver/32445436503.html

и моторы

http://ru.aliexpress.com/item/ACT-1P-Nema17-Stepper-Motor-17HS5425-1-8degree-2-5A-4800g-cm-70oz-in-2Phase-4Lead/32456815353.html

Вопрос - какой этим моторам питатель взять? На 12 или 24В и ампер сколько выбрать? 10 думаю хватит :)

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

для таких движков 12 Вольт в самый раз, 24 избыточно. По току - суммируй все потребления в максимальных режимах +30% резерв.

Joiner
Offline
Зарегистрирован: 04.09.2014

Umka пишет:

Привет всем. Станочек собрал. Шевелится.........

По моему, стойки портала надо соединить с задней стороны прямоугольником из фанеры. Это многократно увеличит жесткость по оси Х.

Мне так кажется......

А в целом, красиво и аккуратно. Еще бы видео "шевеления" посмотреть бы...интересно

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Да, соединю, так и планировал. Просто не выпилил еще фанерку туда. Видео сделаю. Это фотки неподключенного станка, сейчас там больше проводов :)

Ach
Offline
Зарегистрирован: 25.12.2015

Я запитываю аналогичные моторы от компьютерного бп 400вт. Хватает с головой.

 

nevkon
Offline
Зарегистрирован: 20.01.2015

По характеристикам 2.5А на обмотку максимум, значит 5А максимум на двигатель. Если у вас 3 оси, то БП минимум на 15А, иначе в какой-то момент (самый неподходящий) уйдет в защиту. Конечно вероятность потребления 15А крайне маловероятна.

Кстати драйвер может такой двигатель не потянуть.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

https://www.youtube.com/watch?v=xCCeeepxpjY видео работы станка. Не настроен, и не буду настраивать. Жду моторы.

Ach
Offline
Зарегистрирован: 25.12.2015

nevkon пишет:

По характеристикам 2.5А на обмотку максимум, значит 5А максимум на двигатель. Если у вас 3 оси, то БП минимум на 15А, иначе в какой-то момент (самый неподходящий) уйдет в защиту. Конечно вероятность потребления 15А крайне маловероятна.

Кстати драйвер может такой двигатель не потянуть.

Я в начале, с перепугу, тоже исходил из таких расчётов. В БП вмонтировал для контроля и наглядности вольтамперметр. Когда начал работать на станке, был приятно удивлён, что суммарное потребление тока оказалось чуть больше 1 ампера (как так получается, до сих пор не могу понять, но запас по мощности - это всё равно хорошо). Вырезал на своём станке и 2д и 3д, то есть, гружу его. Движки у меня 17HS8401 1.8A 0.52N.m

 

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Может потому что сопротивление обмоток порядка 1,5Ом и ток 2,5А будет протекать при 3В с драйвера и импульсами? Ну в документации на двигло я увидел что рабочее напряжение 3В и сперва малость напрягся, но потом сообразил что там ведь ток в драйвере настраивается и больше напряжения он в мотор не отдаст и успокоился. Так что вполне реально что будет пару Ампер отжирать у 12В питателя.

nevkon
Offline
Зарегистрирован: 20.01.2015

Начал разбираться с грбл прошивкой. Делаю плату для наны. Сначала хотел на 4 драйвера, но после знакомства с грбл придется оставить 3. Даже в этом случае код нужно будет править. Проблема в том что я для облегчения разводки использовал нестандартные порты. Отсюда и вопрос - достаточно будет подправить файл cpu_map_atmega328p.h указав свои порты или еще чего придется править?

Joiner
Offline
Зарегистрирован: 04.09.2014

nevkon пишет:

........вопрос - достаточно будет подправить файл cpu_map_atmega328p.h указав свои порты или еще чего придется править?

Я не спец в этих вопросах, но думаю, что если вы решили использовать GRBL, то не стоит уходить от принятого стандарта во избежании дополнительного геммороя. Мне очень понравился готовый шилд на ардуину UNO для драйверов ШД и специально заточенного под GRBL. Есть аналогичный шилд под ардуино Nano. Легче отдать 3-4 сотни рублей, подождать месяцок и не городить самодельный велосипед.......если, конечно, Вы не уверены, что превзойдете китайцев по качеству исполнения.

nevkon
Offline
Зарегистрирован: 20.01.2015

Мне просто поковыряться интересно. Купить всегда успею, у меня есть вполне рабочие драйвера на tb6560. Хочецца управлять с ноута станком который сейчас проектирую.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Баловство этот GRBL по сути. То там то тут недопиленность вылазит. Но приловчиться конечно можно. имхо разумеется.

Joiner
Offline
Зарегистрирован: 04.09.2014

nevkon пишет:

Мне просто поковыряться интересно. Купить всегда успею, у меня есть вполне рабочие драйвера на tb6560. Хочецца управлять с ноута станком который сейчас проектирую.

Понял :)

Joiner
Offline
Зарегистрирован: 04.09.2014

Umka пишет:

Баловство этот GRBL по сути. То там то тут недопиленность вылазит. Но приловчиться конечно можно. имхо разумеется.

Мне GRBL нравится, что он по честному бесплатен....и работоспособен. Для домашнего станочка вполне. Ну а если производство, даже гаражное, то может и на Mach3 надо замахнуться.

nevkon
Offline
Зарегистрирован: 20.01.2015

Значит запилил я контроллер, теперь начал мучать grbl. Правка происходит всего в 4 файлах - мне нужно лимиты с "контролем" разместить на 1 прерывании. Поскольку возник затык с количеством доступных портов (А0-А5), то ищу какие из сигналов урезать.

Настраиваю grbl под свою версию контроллера. Есть такой файлик начинающийся на cpu_map_ с именем процессора, у меня 328.
Собственно интересует за что отвечают параметры:
#define RESET_BIT 0 // Uno Analog Pin 0
#define FEED_HOLD_BIT 1 // Uno Analog Pin 1
#define CYCLE_START_BIT 2 // Uno Analog Pin 2
#define SAFETY_DOOR_BIT 1 // Uno Analog Pin 1 NOTE: Safety door is shared with feed hold. Enabled by config define.

Reset я подсмотрел - это кнопка E-stop если я правильно понял, а остальные, есть кто лазил вглубь системы?

Blago
Offline
Зарегистрирован: 22.02.2016

Похоже что их значения дружно используются как состояния в system.c 

https://github.com/grbl/grbl/blob/master/grbl/system.c#L41

https://github.com/grbl/grbl/blob/master/grbl/system.h#L26

nevkon
Offline
Зарегистрирован: 20.01.2015

Спасибо, это уже видел до вопроса. Мне на другом форуме разъяснили значения этих объявлений.

dronsoft
Offline
Зарегистрирован: 02.06.2011

Нашел видосик как сервы прикрутить к чпу вот тут

Joiner
Offline
Зарегистрирован: 04.09.2014

dronsoft пишет:

Нашел видосик как сервы прикрутить к чпу вот тут

Тяп-ляп....но прикольно.

Спасибо.

Blago
Offline
Зарегистрирован: 22.02.2016

nevkon пишет:

Спасибо, это уже видел до вопроса. Мне на другом форуме разъяснили значения этих объявлений.

Если не затруднит, можно ссылочки - почитать хочется про эту маску, т.к. тоже собираюсь слегка углубиться внутрь системы. Пока что только движки кручу - на начальной стадии...

Заметил несколько непоняток (или не донастраивал еще?) - иногда после загрузки даю команду сдвинуть на 1 мм, а движки крутятся на 25 мм. Настройки по дефолту, изменил только steps/mm = 48 (движки 48 шагов = 1 полный оборот). Перегружаю ардуину и всё становится нормально...

Такая же фигня была когда х и у были 48 steps/mm, а z = 250 (без драйвера и двигателя)

nevkon
Offline
Зарегистрирован: 20.01.2015
KPAul
Offline
Зарегистрирован: 07.03.2016

Всем доброго времени!

Имею Arduino UNO+CNC Sheeld v3.0

Завел в тупик такой вопрос: как работает SpnEn? Есть 5V - шпиндель включен, нет - выключен.

По идее так, но у меня постоянно висит уровень 4V. Вне зависимости включаю или нет.

Возможен там ШИМ. но я сомневаюсь.

Может кто сталкивался.

 

nevkon
Offline
Зарегистрирован: 20.01.2015

Забыли указать прошивку.

KPAul
Offline
Зарегистрирован: 07.03.2016

GRBL 0.9j

nevkon
Offline
Зарегистрирован: 20.01.2015

Похоже вы прошивку не настраивали. Там на каком-то порту по умолчанию ШИМ для управления оборотами шпинделя. Смотрите файл cpu_map_ для 328 процессора. Ну и сам конфиг программы. Там параметр типа PWM_SPINDLE активирован.