ЧПУ на arduino

Alexander
Offline
Зарегистрирован: 25.04.2010

AlexFisher пишет:

2 laputakoshte

Ну за...... уже одинаковыми постами! ОДНОГО было вполне достаточно. А так, это уже СПАМ!

Призываю его игнорировать!

Не могу не согласиться. Почистил немного.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

mat пишет:

AlexFisher, Вы бы отмашку дали, получили или нет, схему ? Я вроде как, жду...

Получил, посмотрел, появились вопросы... Вроде бы писал ответ. Сейчас что-то не могу найти схему. Продублируйте, я сразу вопросы напишу.

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

А куда писали то ? По крайней мере, во всех моих ящиках, нет Вашего ответа... Схему сейчас повторю.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Вот давно уже написал ответ на ящик, с которого пришла схема. Получили?

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Странно...

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Ушло на 2 адреса - на web.de и pochta.ru 09/11 21:50

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Разобрался, фильтры не пропустили.

Ответил.

xxx_87
Offline
Зарегистрирован: 15.11.2012

Доброго времени суток, друзья!

Я, еще один новенький в безграничном мире Ардуино! :)

Так что, прошу Вас, не пинайте. Заказал себе для изучения вот это: http://www.ebay.com/itm/320983043277?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649 , это: http://www.ebay.com/itm/280945208250?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649 (3шт.) и на всякий пожарный это: http://www.ebay.com/itm/221026850042?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Ну и думаю же себе, мол, разберусь, диодом поморгаю, машинку покатаю.. и тут понеслась: тема станков с ЧПУ  съела мне мозг, и я теперь не могу думать ни о чем другом! ПОМОГИТЕ люди добрые: я хочу собрать самый простой станок (из того что заказал), пусть даже 2-х осевой (х,у) с фломастером на борту ))) НО никак не могу понять, как загрузить g-code в ардуину??? Я сделал рисунок, обычную букву "А" в программе Inkscape, и отконвертил ее в g-code... Все вроде хорошо, я получил файлик на выходе с большим количеством строк с координатами. Как мне заставить шаговики двигаться по этим координатам?

Простите, если глупости говорю... 

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Ну что там слышно, AlexFisher ? Или, нет времени ?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Уезжал на север по срочному делу, сейчас вернулся. На этой неделе сделаю.

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Спасибо.

maksim
Offline
Зарегистрирован: 12.02.2012

xxx_87 пишет:

Доброго времени суток, друзья!

Я, еще один новенький в безграничном мире Ардуино! :)

Так что, прошу Вас, не пинайте. Заказал себе для изучения вот это: http://www.ebay.com/itm/320983043277?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649 , это: http://www.ebay.com/itm/280945208250?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649 (3шт.) и на всякий пожарный это: http://www.ebay.com/itm/221026850042?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Ну и думаю же себе, мол, разберусь, диодом поморгаю, машинку покатаю.. и тут понеслась: тема станков с ЧПУ  съела мне мозг, и я теперь не могу думать ни о чем другом! ПОМОГИТЕ люди добрые: я хочу собрать самый простой станок (из того что заказал), пусть даже 2-х осевой (х,у) с фломастером на борту ))) НО никак не могу понять, как загрузить g-code в ардуину??? Я сделал рисунок, обычную букву "А" в программе Inkscape, и отконвертил ее в g-code... Все вроде хорошо, я получил файлик на выходе с большим количеством строк с координатами. Как мне заставить шаговики двигаться по этим координатам?

Простите, если глупости говорю... 

Максимум что сможете сделать это вот - Пишущая робо-рука на двух сервоприводах, ну не будет дергаться как с теми сервами, но не более того.

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Сурово...

xxx_87
Offline
Зарегистрирован: 15.11.2012

maksim пишет:

Максимум что сможете сделать это вот - Пишущая робо-рука на двух сервоприводах, ну не будет дергаться как с теми сервами, но не более того.

 

Эххх.. И на этом спасибо! Думаю, что поиграться и разобраться для начала будет достаточно... Тем более, что тут используются только две координаты Х и У... До Z мне еще далековато... Просто я не совсем до конца понял как координаты высчитывать, а именно, если с буквой "А" все понятно - прямые линии, то вот как высчитать допустим "О"? ..

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

xxx_87 пишет:

 если с буквой "А" все понятно - прямые линии, то вот как высчитать допустим "О"? ..

По кусочкам. Договариваетесь сами с собой, какой длины прямые кусочки Вас устроят и вперед. Можно аналитически (если дружите с математикой), можно графически - в каком-нибудь векторном редакторе строите n-угольник (n - количество Ваших кусочков), искажаете финуру так, чтобы стало похоже на "О" и смотрите координаты вершин многоугольника.

xxx_87
Offline
Зарегистрирован: 15.11.2012

AlexFisher пишет:

можно графически - в каком-нибудь векторном редакторе строите n-угольник (n - количество Ваших кусочков), искажаете финуру так, чтобы стало похоже на "О" и смотрите координаты вершин многоугольника.

Точно! так, собственно, так и получится станок под управлением Ардуино! Спасибо огромное, буду пробовать..

icms
Offline
Зарегистрирован: 22.03.2011

Основная трабла в создании чпу это не система управления , а механическая часть . У меня как и у других авторов в этой ветке всё застпорилось из за отсутствия качественных направляющих (за адекватные деньги) я использовал мебельные рельсы, собрал полностью механическую часть , но к концу сборки понял что с такими люфтами(по мере использования станка они сильно увеличиваются) ничего более менее мелкого с высокой точностью - не сделать. С обычными подшипниками картина, таже. сами не разбалтываются , а вот подобрать идеально баланс между прижимом и лёгким скольжение сложно. И к тому же нужны куда более мощные шаговики, которые тоже стоят не мало.

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Ой, не говорите так. С механикой наоборот, никаких проблем. Скетчи, вот где проблема ! Во всяком случае у меня так.

xxx_87
Offline
Зарегистрирован: 15.11.2012

mat пишет:

Ой, не говорите так. С механикой наоборот, никаких проблем. Скетчи, вот где проблема ! Во всяком случае у меня так.

 

Полностью солидарен! Сделал механику, а вот заставить "это всё" нарисовать на куске фанеры какую-нибудь фигурку - это очень сложная задача для меня... точнее, я уже примерно понимаю как написать свое имя! :) А если деталь сложная - писать 20 тыс. строк координат??? 

xxx_87
Offline
Зарегистрирован: 15.11.2012

Друзья, совсем запутался...

Нарисовал я линию под углом, как мне координаты ее вершин передать в шаги двигателям? как расчитать, сколько шагов должен сделать движок оси Х и движок оси У, чтоб нарисовать эту линию?

совсем не могу понять, как с координатами работать... 

maksim
Offline
Зарегистрирован: 12.02.2012

Так а вы как шаговики расположили? как там с сервами? или (как у натоящих станков) по ося

xxx_87
Offline
Зарегистрирован: 15.11.2012

в общем, сделал как у обычных станков - перпендикулярно! У меня просто станок сделан из старого принтера и такого-же старого сканера... Без оси Z, так как до нее еще не дорос, пускай рисует карандашиком пока, приурченым к каретке от принтера ! )

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Немножко знания геометрии (школьная программа) и библиотека AccelStepper в помощь.

xxx_87
Offline
Зарегистрирован: 15.11.2012

немного разобрался с координатами, пускаю скетч в работу, а он сначала выполняет строки одного двигателя а потом второго, но никак не паралельно! Что делаю не так? 

aleksjetav
Offline
Зарегистрирован: 23.11.2012

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

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

 

 

aleksjetav
Offline
Зарегистрирован: 23.11.2012

Сам работал на заводе и видел как эти станки работают, а еще просто без контрольно что то пилить может выйти в копеечку это не листок бумаги перепечатать. 

Нуж но может как то организовать что бы через усб отсыпался g код по строкам с координатами 

например x12, y34, z8 и так далее 

тогда можно будет и управление думаю сделать нажал на кнопку на компе и станок поехал в определенные координаты так например Mach 3 работает и все СПУ станки они обрабатывают код по строкам 

aleksjetav
Offline
Зарегистрирован: 23.11.2012

Не сочтите за рекламу может ссылка про 3 d принтеры поможет http://www.reprap.org/wiki/Main_Page

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

aleksjetav пишет:

Нуж но может как то организовать что бы через усб отсыпался g код по строкам с координатами 

например x12, y34, z8 и так далее 

тогда можно будет и управление думаю сделать нажал на кнопку на компе и станок поехал в определенные координаты так например Mach 3 работает и все СПУ станки они обрабатывают код по строкам 

 ну дык на второй странице этой ветки я давал ссылки на свои исходники - на ардуине интерпретатор и управление, комп по усб шлет г-коды http://arduino.ru/forum/obshchii/izgotovlenie-pechatnykh-plat-kak#commen...

aleksjetav
Offline
Зарегистрирован: 23.11.2012

Если я Вас правильно понял то програмка шлет G код через USB в LPT ? или нет ? 

xxx_87
Offline
Зарегистрирован: 15.11.2012

AlexFisher, 

Если Вас не затруднит, не могли бы вы мне немного разъяснить: 

Я загрузил архив GCode_Interpreter.rar и распаковал его в папку Ардуины. Открыл скетч в программе Ардуино и закатал все на свою Arduino UNO. Запустил програмку из PC_control_all.rar, в ней открыл свой файлик, в ктором лежит g-code слова "Hello", открыл порт и нажал кнопку RUN. Он погнал построчно по коду, при этом в окне статуса в каждой строке пишет PANIC. Что я делаю не так? 

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Хм... Код писал давно - не помню уже, но про ПАНИК - вообще не помню.  :(. Я про него и не писал ничего. Строки посылаются "как есть", признак обработки строки - получение "ОК". Если строки уходят, значит ОК получает. ПАНИК может выдавать G-код, я его брал готовым и рихтовал под себя. Скетч нужно настраивать под оборудование дефайнами. Возможно, у Вас "Красная кнопка" - которая Emegy Stop - неправильно описана и кодом воспринимается как нажатая. У меня ее нет совсем, поэтому нет и ее обработки, скорее всего, заремарил.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

aleksjetav пишет:

Если я Вас правильно понял то програмка шлет G код через USB в LPT ? или нет ? 

Программа шлет G-код построчно в USB (в виртуальный COM, но может и в реальный COM) с подтверждением. Никакого LPT нет вообще. Сигналы Step/Dir вырабатывает контроллер с интерпретатором G-кодов.

xxx_87
Offline
Зарегистрирован: 15.11.2012

Таким способо мы подключаем движок по Х к пинам 6,7,А0 и А1 (на вкладке _Init):

 



//===========================
// cartesian bot pins X-plane
// 6 7 A0 A1
//===========================
#define X_STEP_PIN 9
#define X_DIR_PIN 10
#define X_MIN_PIN 3
#define X_MAX_PIN 3

Я правильно понимаю?

И кнопки у меня тоже нет.

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

xxx_87 пишет:

Таким способо мы подключаем движок по Х к пинам 6,7,А0 и А1 (на вкладке _Init):

 



//===========================
// cartesian bot pins X-plane
// 6 7 A0 A1
//===========================
#define X_STEP_PIN 9
#define X_DIR_PIN 10
#define X_MIN_PIN 3
#define X_MAX_PIN 3

Я правильно понимаю?

И кнопки у меня тоже нет.

 

Здесь я не исправлял ремарки. В оригинале было 6 и 7, концевики к А0 и А1, у меня (то, что в дефайнах) - драйвер шаговика к 9 и 10, концевики запланировано параллельно к 3 (так и не подключил)

xxx_87
Offline
Зарегистрирован: 15.11.2012

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

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Шаговик подключается к драйверу шаговика (в моем случае EasyDriver) - 4мя проводами, у драйвера стандартный интерфейс Step/Dir, то есть 2 входа, 1 - направление, 2 - шаг. Если у Вас нет соответствующего драйвера, придется переписывать модуль stepper_control.ino (пристегивать стандартную библиотеку stepper)

aleksjetav
Offline
Зарегистрирован: 23.11.2012

А возможно ли управлять таким устройством в реальном времени например возить коретку станка с клавиатуры ? 

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

aleksjetav
Offline
Зарегистрирован: 23.11.2012

AlexFisher пишет:

Шаговик подключается к драйверу шаговика (в моем случае EasyDriver) - 4мя проводами, у драйвера стандартный интерфейс Step/Dir, то есть 2 входа, 1 - направление, 2 - шаг. Если у Вас нет соответствующего драйвера, придется переписывать модуль stepper_control.ino (пристегивать стандартную библиотеку stepper)

Если ардуино просто шлед дип и степ драйвер можно ли подключить к этой плате ?

http://cnc-controller.ru/f_archive/4k2a_100.jpg

Плата организована по схеме L298N+L297 или ее просто можно оправить на помойку к компу с ЛПТ портом под нее куплены шаговики на 2А и станок собирал но когда накрылся комп все сложил под кровать вот лежит и пылится ?

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Да, можно. Эти контроллеры все имеют интерфейс именно Step/Dir. Я даже подумываю сделать разъем DB25, соответствующий стандарту LPT как раз для такого случая. Но нет времени.

В результате хочу получить не переходник LPT а модуль управления таким вот драйвером CNC. Даже без USB, данные переносить на SD-карточке. Ну и экранчик :)

aleksjetav
Offline
Зарегистрирован: 23.11.2012

А вопрос выше  ? 

aleksjetav
Offline
Зарегистрирован: 23.11.2012

AlexFisher пишет:

Да, можно. Эти контроллеры все имеют интерфейс именно Step/Dir. Я даже подумываю сделать разъем DB25, соответствующий стандарту LPT как раз для такого случая. Но нет времени.

В результате хочу получить не переходник LPT а модуль управления таким вот драйвером CNC. Даже без USB, данные переносить на SD-карточке. Ну и экранчик :)

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

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

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

aleksjetav пишет:

А вопрос выше  ? 

Связка этих микросхем - правильная :) Будет работать.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

aleksjetav пишет:

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

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

 

:) Это как раз я понимаю. Поэтому кроме экранчика будут кнопочки и крутилки (энкодеры) - возможность запустить файл с любой строки + ручной режим управления инструментом.

aleksjetav
Offline
Зарегистрирован: 23.11.2012

ооо тчень интерсно надо тогда достовать из под кровати плату ) 

и пробывать крутить моторы  ) 

 

xxx_87
Offline
Зарегистрирован: 15.11.2012

AlexFisher, 

Я тут так подумал, а правильно ли я сделаю, если использую для перемещения "по координатам" соотношение скорости,, то есть:

Есть Хнач. и Унач (к примеру 0,0), и есть Х1 и У1 (допустим 5, 10). неважно чего, миллиметров, шагов, меру я себе сам придумаю...

Так вот, соответственно, если сказать обоим движкам выполнить перемещение в эти точки, то они с одинаковой скоростью поедут к своим целям, и один из них достигнет своей цели, а второй еще будет продолжать движение. (если бы это было 0,0 и 5,5 то тут ясно - прямая линия, угол 45град.).

А если я использую формулу соотношения скорости: 10/5 = S/x, (S - скорость) отсюда 5*S/10 мы узнаем с какой скоростью должен двигаться второй двигатель, чтобы достичь одновременно свои конечные точки! Мысль верна?? это можно применить к управлению?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

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

xxx_87
Offline
Зарегистрирован: 15.11.2012

Спасибо вам огромное! Ну, еще маленький вопросик. Да, я буду использовать библиотеку AccelStepper, так как хочу полностью понять "как это работает". А не использовать "все готовенькое"... Что значит ускорение в нашем случчае, плавный старт моторов? что-то я про ускорение не подумал...

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Да. Плавный старт позволяет избежать пропусков шагов при старте/стопе и поднять в 3-4 раза максимальную скорость.

xxx_87
Offline
Зарегистрирован: 15.11.2012

как можно узнать ускорение? точнее, как контролировать ускорение на драйвере?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

На драйвере - никак. Это параметр библиотеки (такой же, как и скорость)

А вот максимальное ускорение узнать можно - методом проведения экспериментов (прогон "туда" с исследуемыми параметрами, прогон "обратно" с минимальными параметрами, контроль возврата в исходную точку)