КУЛИБИН ПОМОГИТЕ Кто опытный и мудрый помогите

николай 57

ЧТО-ТО УЖЕ ЧИРКАНУЛ
ПРОВЕРЕННЫЙ
Регистрация
19.01.2022
Сообщения
6
Реакции
3
Баллы
3
Город
валуйки
Область
белгородская
Имя
Колян 57
Добрый вечер. Я начинающий. Ни судите строго за мои вопросы. Начну с оборудования. Использую Arduino Uno, Grbl, Grbl Controller, CNC Shild, двигателя немо 17. Пытаюсь собрать станочек, который должен выполнять функцию сгиба проволоки и отреза заготовки. С написанием програмы разобрался, с изменениям параметров двигателей тоже, как можно простейшую программу, например: один двигатель прошёл определённое расстояние, другой двигатель сделал прямое, потом обратное движение, первый двигатель сделал другое расстояние, второй двигатель опять сделал прямое, обратное движение, первый двигатель прошёл такое же расстояние, как и в первый раз, следующее действие третий двигатель делает прямое обратное движение. Вот эту штуку надо зациклить. Пример, нажал на кнопку и программа заработала, пока ни остановишь. Какие могут быть варианты ?
 
  • Последнее редактирование:
Последнее редактирование:
Не великий знаток ардуино, но кажется в прошивке можно зациклить. По крайней мере бегущие огни делают, по кругу программа гоняется. Как с СНС это совместить не могу представить.
1й шаг сделал.
 
Как с диодом ни получилось, я тоже не велик в познания.
 
Я то же в коде не мастер, но написать программу под грбл не сложно, делим двигатели на оси , то есть первый двигатель ось Х, второй ось У , третий ось Z , далее пишем код например в блокноте файл с расширением txt:
Переходим в относительную систему координат в грбл это команда
G91
(Далее пишем цикл)
G0X10
G0Y10
G0Y-10
G0X10
G0Y10
G0Y-10
(.... и т.д. до момента сработки третьего ШД )
G0Z10
G0Z-10
Далее берём и копируем фрагмент после того как я написал "далее пишем цикл" много раз, для ускорения процесса можно скопировать к примеру раз пять, потом выделить все циклы вставлять уже блоками по 5 циклов ну и так далее , думаю что больше 1000 циклов особо и не нужно делать. При этом в каждом цикле команду G91 повторять не нужно она будет действовать пока команда G90 не появится , а мы ее специально ставить не будем. Далее просто переименовываем файл в .nc
Теперь про остановку, когда это нужно а не когда все что накопировали отработает: для этого подключаем кнопку к любому из концевиков и включаем жёсткие лимиты а поиск дома отключаем , все при нажатии на кнопку у вас будет происходить экстренная остановка всего, это как вариант, можно и не заморачиваться с кнопками, а с экрана компа производить остановку , паузу при помощи мышки, правда для повторного включения нужно будет запустить программу и заново запустить файл на отработку. Ну как то так можно сделать.
Вся фишка именно в команде G91 работа станка без привязки к какой то точке а делая перемещения относительно предыдущий точки, это позволяет не указывать для первого движка оси X последовательно расстояние перемещения.то есть в нашем примере 10,20 и т.д., а только именно сколько нужно отменить от предыдущего положения, именно это и позволяет копировать цикл сколько угодно раз. В принципе и Ардуино само можно запрограммировать на повтор цикла типа включил и поехало, но я не очень разбираюсь в этом программировании тем более в при использовании шилда.
 
С копированием я понял, делал. Выходит нету команды на повтор определенного цикла?
 
С копированием я понял, делал. Выходит нету команды на повтор определенного цикла?
В Г-коде такой команды нет. По крайней мере в базовых кодах. Есть станки, с автоподачей материала, там выполнение УП циклично, но там и коды свои собственные.
 
С копированием я понял, делал. Выходит нету команды на повтор определенного цикла?
Может и есть но что то я не встречал такого в грбл, да и не странно как то , все таки фрезерные и токарные станки обычно не зацикливают, и обработка должна в итоге заканчиваться, а грбл это все же прошивка именно 3х-5ти осевых станков,
Ваши сообщения автоматически объединены:

С копированием я понял, делал. Выходит нету команды на повтор определенного цикла?
И что не понравилось?
 
Мне кажется рациональнее использовать две Ардуинки, в одной GRBL (а нужно ли), в другой программа циклов, с переменными длин, углов и еще чего потребно, можно и организовать вывод инфы о длинах, углах, количестве циклов. В принципе и GRBL тут не особо нужен, если станок с узкой специаллизацией.
 
В Г-коде такой команды нет. По крайней мере в базовых кодах. Есть станки, с автоподачей материала, там выполнение УП циклично, но там и коды свои собственные.
Если честно, я видел в работе станок который кольца для цепей делал (правда шаговых двигателей в нем не было, он на обычных движках , кончевиках и реле был сделан, так что в нем даже ни одной микросхемы небыло)
 
В ардуино точно есть, что то типа делай с такой то строки, типа цикл, а вот в грбл никак не припомню такой команды.
 
В качестве бредовой идеи -
Используем программу ioSender, в ней по сочетанию клавиш Alt+R запускается выполнение УП.
В своей УП (один цикл), предусматриваем команду вкл-откл охлаждения, что можно отслеживать на пине А6 GRBL контроллера. Отслеживаем с помощью ардуино Леонардо - она может имитировать клавиатуру компа. Ловим лог. уровень с А6 и посылаем команду в комп Alt+R - УП выполняется заново, и.т.д.
 
В качестве бредовой идеи -
Используем программу ioSender, в ней по сочетанию клавиш Alt+R запускается выполнение УП.
В своей УП (один цикл), предусматриваем команду вкл-откл охлаждения, что можно отслеживать на пине А6 GRBL контроллера. Отслеживаем с помощью ардуино Леонардо - она может имитировать клавиатуру компа. Ловим лог. уровень с А6 и посылаем команду в комп Alt+R - УП выполняется заново, и.т.д.
Во вы загнули, по-моему проще Ардуино запрограммировать, чем подключать искать этого Леонардо ловить логи, имитировать клавиатуры, и т.д.
 
по-моему проще Ардуино запрограммировать
Так Леонардо и есть ардуинообразная плата. Вся программа займёт несколько строк - отслеживаем лог. уровень - если пин А6 сменил состояние то взводим флаг (типа вкл. охлаждайки), при откл охлаждайки пин опять сменит состояние.
Тогда ещё пара строк -
C++:
Keyboard.press(KEY_ALT);
  Keyboard.press('r');
  delay(500);
  Keyboard.releaseAll();
и опять отслеживаем пин А6
Конструкция одного вечера...
 
В грбл есть вот такая команда:
~: Запуск/возобновление цикла

- возобновляет удержание подачи, защитная дверь/состояние парковки, когда дверь закрыта, и состояния паузы программы M0.

- в противном случае команда игнорируется.

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

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

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

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

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать