Управление контроллером MK1 и MK2 (planet-cnc)

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

В процессе изучения "qt" и возможности компиляции исходников, под windows, столкнулся с разными сложностями, некоторые из них получилось побороть, некоторые ещё не успел, и при этом потратил не мало свободного времени (которое мог потратить на эту программу).
В результате чего пришел к выводу, что проще будет мне продолжать разработку программы на C# под windows, а Эдя Калиновский ( Karbofos ) будет делать похожую программу под linux на qt, что касается интерфейса, и различных опций, будем стараться придерживаться похожести.

На своем станке сейчас меняю контроллер с mk1 на mk2, но поддержка обоих контроллеров останется, и такой вопрос, нужно в отдельной(или этой) теме описывать использование, подключение контроллера MK2?
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
RaimixLv
Новичок
Сообщения: 13
Зарегистрирован: 07 сен 2015, 19:46
Репутация: 0
Настоящее имя: Раймонд
Откуда: Рига , Латвия
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение RaimixLv »

По моему если тема называется "Управление контроллером MK1 и MK2 (planet-cnc)" , то и всё, думаю, надо постить здесь.
Yevhen_k
Новичок
Сообщения: 22
Зарегистрирован: 21 май 2014, 19:43
Репутация: 3
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Yevhen_k »

Тема очень интересная и нужная.
У меня вопрос, не касающийся контроллеров МК1 и МК2.
Возможно ли с помощью вашего софта или его модификации реализовать преобразование G-кода в более понятный для контроллера вид - линейные отрезки перемещений для G00/G01 и набор точек для G02/G03? Затем эту траекторию нужно отправить плате arduino mega 2560, которая уже будет давать команды сервоприводам. Контроллер в свою очередь может отправлять текущие координаты каждой оси и состояние концевых. Циклы сверления, растачивания, коррекции и пр. пока не нужны.
Я сейчас пытаюсь заставить работать сервопривода Schneider Lexium 32A по протоколу CanOpen. Это направление интересное и очень перспективное, т.к. в свободном доступе нет ни одного решения для управления сервоприводами по CanOpen. Существуют только коммерческие системы ЧПУ с ценой от 1500$, которые всё-равно нужно настраивать. В свободном доступе есть полная документация по этому протоколу от для приводов lexium. На данный момент успешно реализованы режим ручного перемещения с кнопок и режим выхода в ноль по концевому. Загвоздка в том - как G-код преобразовать в задание для контроллера.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение aftaev »

Интересно это еще тем что обычно сетевые сервы дешевле стоят чем тот же степ/дир.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Yevhen_k писал(а):Тема очень интересная и нужная.
У меня вопрос, не касающийся контроллеров МК1 и МК2.
Возможно ли с помощью вашего софта или его модификации реализовать преобразование G-кода в более понятный для контроллера вид - линейные отрезки перемещений для G00/G01 и набор точек для G02/G03? Затем эту траекторию нужно отправить плате arduino mega 2560, которая уже будет давать команды сервоприводам. Контроллер в свою очередь может отправлять текущие координаты каждой оси и состояние концевых. Циклы сверления, растачивания, коррекции и пр. пока не нужны.
Я сейчас пытаюсь заставить работать сервопривода Schneider Lexium 32A по протоколу CanOpen. Это направление интересное и очень перспективное, т.к. в свободном доступе нет ни одного решения для управления сервоприводами по CanOpen. Существуют только коммерческие системы ЧПУ с ценой от 1500$, которые всё-равно нужно настраивать. В свободном доступе есть полная документация по этому протоколу от для приводов lexium. На данный момент успешно реализованы режим ручного перемещения с кнопок и режим выхода в ноль по концевому. Загвоздка в том - как G-код преобразовать в задание для контроллера.
Опиши протокол посылки в свой контроллер, и как мне отслеживать возможность посылки новых данных, и я попробую добавить функционал.
Что касается G2 и G3, я не совсем понял что ты имел в виду....
Первый свой чпу контроллер я делал на atmega16, в ком-порт слал координаты куда нужно двигаться, получив данные использовал алгоритм брезенхема для линии, и генерировал step импульсы для 3х осей. Попытка в слать в контроллер данные для движения по дуге, была не айс, т.к. тот-же алгоритм брезенхема для дуги, уже очень много занимал тактов, в итоге частота step не превышала 2кгц.
Я это все к тому, что дуги я могу дробить на отрезки, и передавать в твой контроллер.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

aftaev писал(а):Интересно это еще тем что обычно сетевые сервы дешевле стоят чем тот же степ/дир.
А из программы слать UDP, или если есть возможность подключаться по tcp, так вообще не сложно, ! правда зная протокол!
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1646
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение N1X »

selenur писал(а):возможность подключаться по tcp
Сетевые не в смысле Ethernet, там свои протоколы...
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

N1X писал(а):
selenur писал(а):возможность подключаться по tcp
Сетевые не в смысле Ethernet, там свои протоколы...
а...... вот оно как.....
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

В процессе доработки управляющей программы, для работы с контроллером МК2, на выходных написал небольшую утилитку, вдруг кому понадобиться :-)
Утилита позволяет текст, или рисунок превращать в g-код.
Выглядит так: на первом шаге выбирается источник данных, текст или рисунок на втором шаге, рисунок превращается в черно-белый, где может быть всего 2 цвета.
Коэффициент - позволяет цветной рисунок превращать в черно-белый с желаемым видом,
вот как получается преобразование, в зависимости от коэффициента: флаг удалять содержимое удаляет закрашенные области, что-бы получить лишь контуры, вот так: На следующем шаге происходит получение отрезков Параметр угол отклонения, применяется для оптимизации получаемых отрезков, работает следующим образом: Имея 3 точки, я определяю угол в точке 2, если угол равен 180+-(значение) градусов, то точку №2 я удаляю, что позволяет оптимизировать немного объем данных.
Дальше, и сам процесс генерации g-кода Флаг зеркально Y, позволяет перевернуть ось Y, т.к. в компьютерной графике ось Y направлена вниз, а в станках обычно в верх.
Второй флаг заменяет запятую на точку.

Пока есть косяки, если рисунок имеет вот такие черты:
то получается вот такое дрыганьге: А если рисунок типа такого: то получается уже неплохо: вот и сама программка
CNCImporterGkode.zip
(14.74 КБ) 402 скачивания
пароль к архиву: http://www.cnc-club.ru
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Поправил косячки в утилите, и попробовал сделать обучающее видео:
https://www.youtube.com/watch?v=jYuB1ga6LR0
и сама утилитка
CNCImporterGkode.zip
(14.72 КБ) 370 скачиваний
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Вот видео, того что у меня получилось на текущий момент, используя контроллер МК2.
На больших прямолинейный участках, скорость может доходить до 1700 мм/мин.
На дугообразных отрезках пока не более 700 мм/мин, оригинальная программа умеет это делать немного быстрее, но пока до конца не разобрался как.
https://www.youtube.com/watch?v=zD3Q4Dwvs7Y
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Решил добавить камеру к станочку, и в качестве камеры в закромах нашел такую: Запихнул её в трубку, (остаток после ремонта в кухне).
Так-же на 3d принтере распечатал держатель трубки, углубления сделал для неодимовых магнитов. В итоге получилась такая штука: А вот изображение с самой камеры, с доп. освещением качество куда лучше, т.к. родная подсветка неайс.... вообще :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

Всем привет!
Вот и видео испытания программы на мини-компьютере. Оператор из меня тот ещё, так что извиняйте. :freak:
В общем, столкнулся с некоторыми сложностями, которые пришлось преодолевать. Например, программа жутко тормозила при удаленном соединении, выяснил, что зря выводил графику. Программа теперь распознает автоматом, как ее запустили, если локально, то OpenGL включается, если удаленно - выключается табулятор полностью.
Дополнил переводы.
Исправил некритичные, но некрасивые ошибки и недоработки. Например, сейчас программа распознает при запуске, что контроллер уже подключен. Хотплуг оставил, можно железку подключать и после запуска программы.
При сборке проекта можно отключить полностью поддержку OpenGL; корректно распознается версия предустановенной библиотеки libusb1, нужна версия от 1.0.16 и поновее, так что на дистрибутивах 2014 года должно компилироваться без проблем.
Проверял на Raspberry Pi 700MHz, 512MB рабочей памяти. Как выяснилось, на Raspbian отрисовка идет пока только через софт, но есть возможность дополнительно собрать видеодрайвер VC4 http://dri.freedesktop.org/wiki/VC4/
Сам станок тоже с "открытыми исходниками", чертежи совершенно бесплатно можно скачать здесь: http://www.instructables.com/id/How-to- ... aply-and-/
Конструкция получилась очень стабильная, использовал фанеру, 12 мм. Выпиливал детали на моторизированном лобзике.

https://www.youtube.com/watch?v=HL78wcZ7-nw
Последний раз редактировалось Karbofos 21 окт 2015, 21:27, всего редактировалось 2 раза.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Прикольно получается, нужно будет ещё перед движением добавить посылку команды о ускорениях, я эту команду уже практически отреверсил, тогда резкие рывки прекрататься :-)
Молодец!!! :good:
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

В процессе отладки утилиты, для генерации g-кода, при определенных параметрах, получился вот такой хоботок присосавшийся к сисечке :hehehe:
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

Да ну, Сергей, моя заслуга пока что невелика, портировал всего лишь, да OpenGL оптимизировал. Не было бы твоего проекта, мой бы я тоже не сделал.
Приятно иметь дело с людьми, которым нравится своя работа и помогают друг другу. :good:
Сейчас я делаю читалку файлов в отдельном потоке, уже встроил сохранение настроек визуализации, можно координатную сеть показывать не только линиями, но и точками. Что готово - исходники проактуализирую на выходных.
p.s. сиськи хоботком не испортить!
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

Всем прювет!
Что-то я немного в ступоре. Пробую отреверсить настройки моего mk1 контроллера (USB6560T4v3), например, настройки ускорения и реверса, но на контроллер отправляются только пустые пакеты, описанные у Сергея, пакеты эти начинаются с D3 и AB. Может кто какие идеи мне подкинет, а то что-то я туплю :thinking:
Прилагаю файл сниффера.
Вложения
set_acceleration.html.rar
(2.71 КБ) 293 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Nick »

selenur писал(а): получился вот такой хоботок
Фрезу уводит :)

Тут поговаривают, что надо тебе медальку выписать, с чем я полностью согласен :)
Но надо ответ на три заветных вопроса :)

1. Что в программе нравится?
2. Что в программе не нравится?
3. Что в следующий раз сделал бы по-другому?
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Nick писал(а):
selenur писал(а): получился вот такой хоботок
Фрезу уводит :)

Тут поговаривают, что надо тебе медальку выписать, с чем я полностью согласен :)
Но надо ответ на три заветных вопроса :)

1. Что в программе нравится?
2. Что в программе не нравится?
3. Что в следующий раз сделал бы по-другому?
Я думаю ещё рановато за неё получать медальку :-)

Программа ещё не готова, это лишь предварительная версия, что-бы люди могли попробовать, и посоветовать чего в ней нужно добавить,в бою как говориться не была.
Сейчас я тут: https://github.com/selenur/CNC-application создал ресурс, в котором соберу несколько утилит, по генерации G-кода.
Вот прямая ссылка на данную программу Генерация G-кода из текста или рисунка (По данной ссылке будет всегда самая актуальная версия)
1) В своих программах нравиться то, что влюбой момент можно легко исправить ошибку, и наличие исходников на github позволяет другим помочь улучьшить программу.
2) В связи с тем что написание программы делалось побыстрому, что-бы решить задачу, то некоторые алгоритны пока неоптимизированны, а именно обход по контуру, (немного позже оптимизирую).
А на 3-й вопрос пока не смогу ответить, т.к. ещё эта программа не готова, и то что я сделал-бы по другому, будет сделанно именно в ней. :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Вот ещё немного доработал программу
https://www.youtube.com/watch?v=IbNNwv_n1uI
программу можно скачать по данной ссылке
CNCImporterGkode.zip
(15.98 КБ) 386 скачиваний
или с Github.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Ответить

Вернуться в «Windows / Mach»