Шаг 2. Контроллер шаговых двигателей и управление ими
Вопросы для изучения
![]()
Схемотехника контроллера LEKN 3.2 построена на основе Arduino UNO R3: те же микроконтролер ATmega328P и микросхема связи USB-USART CH340G.
Прошивка контроллера LEKN 3.2 аналогична прошивке Arduino: через встроенный Arduino-загрузчик. Для работы контроллера LEKN 3.2 в микроконтроллер должна быть загружена прошивка GRBL. К ATmega328P подключены 4 драйвера шагового двигателя A4988 (зеленые или красные платы, втыкаемые в разъемы на контроллере LEKN 3.2). Драйвер управляется по линиям STEP (следующий шаг) и DIR (направление вращения). К каждому драйверу подключен шаговый двигатель, содержащий две электрически не связанные обмотки. В активном состоянии на эти обмотки подается питание 24 вольта через ключевые транзисторы драйвера. Ротор шагового двигателя поворачивается вслед за магнитным полем, которое сформировано обмотками. Настройки станка с ЧПУ хранятся в GRBL-регистрах (в микроконтроллере ATmega328P).
Отчет по 3-м пунктам выше от Миришкина А.Д.
[ВМИ]:
Команда G-code может имеет следующую структуру: G ## X ## Y ## Z ## F ## Первым параметром указывается команда G-кода, пусть это будет G01, что означает «Линейная интерполяция», то есть указание станку двигаться от текущей позиции до конечных координат X, Y и Z по прямой. С помощью значения F устанавливается максимальная скорость, с которой будет выполняться перемещение. Если максимальная скорость F превышает скорость, указанную в настройках GRBL, то контроллер использует значение скорости из регистров GRBL. Но важно помнить одну вещь из физики - объект не может сразу развить максимальную скорость и не может моментально остановиться. Это означает, что поставленная вами задача (G ## X ## Y ## Z ## F ##) будет выполняться чуть медленнее из-за разгона и торможения установки.
[ВМИ, МАП]:
Максимальная скорость перемещения каретки станка с ЧПУ по каждой их осей X, Y и Z задается в настройках GRBL (регистры $110-112). Следующие параметры будут влиять на скорость перемещения каретки. 1) Шаг резьбы. Чем больше шаг, тем больше расстояние, на которое перемещается каретка при обороте винта. 2) Многозаходность резьбы. Если заходов у винта несколько, то расстояние, на которое перемещается каретка при обороте винта, будет пропорционально шагу резьбы и равно произведению шага на количество заходов. 3) Производительность двигателей. Чем быстрее может вращаться ротор двигателя, тем больше скорость передвижения каретки. 4) Мощность двигателя и вес каретки. Двигатель должен легко перемещать каретку. Если его тяга недостаточна, будет наблюдатьcя пропуск шагов. Это приводит к ошибкам в перемещении: каретка не доходит до заданной точки. 5) Драйвер шагового двигателя. Если драйвер не успевает отрабатывать поступающие ему "командные" сигналы, то происходит пропуск шага двигателем. Таким образом, для больших скоростей нужен быстродействующий драйвер. 6) Контроллер шаговых двигателей. Контроллер управляет драйверами, поэтому его низкая производительность (малая частота выдачи импульсов STEP) может не дать выигрышать даже при установке скоростных драйверов.
[ВМИ, МАП]:
Винтовая передача ЧПУ является наиболее часто используемым вариантом перевода вращательного движения вала шагового двигателя в линейное перемещение. Для расчёта необходимо знать шаг винта. Для ЧПУ-станков обычно используются винты с трапецеидальной резьбой. Типовая маркировка: “Трапецеидальный винт TR10x2” (TR - трапецеидальная; 10 - диаметр 10 мм; 2 - шаг резьбы 2 мм). Стоит отметить, что помимо однозаходной резьбы, часто используется многозаходная (на ходовом винте нарезается несколько "пареллельных" резьбовых канавок). В этом случае ходом резьбы (линейным расстоянием, пройденным гайкой за один полный оборот) будет произведение шага резьбы на количество заходов. Для четырёх заходной резьбы - 8 мм (2 мм * 4). К контроллеру LEKN 3.2 на установке GeRDA подключен двигатель NEMA 23 (без редуктора, посредством муфты в торце винта). Один полный шаг шагового двигателя равен 1.8 градуса. Таким образом, ему нужно выполнить 200 полных шагов для совершения полного оборота. На один миллиметр линейного перемещения понадобится сделать 200/8=25 полных шагов. При использовании техники микростепирования количество импульсов по линии STEP возрастает пропорционально глубине микростепирования. Для расчета линейной скорости перемещения каретки достаточно знать скорость вращения двигателя и упомянутый шаг резьбы на винте. Например, для однозаходного ходового винта с шагом в 2 мм при скорости вращения мотора 600 оборотов в мин и шагом в 2 мм каретка будет двигаться со скоростью 2*600 = 1200 мм в мин. Второй способ - эмпирический. Можно задать перемещение каретки на относительно большое расстояние, чтобы было удобно засечь время движения. Зная путь и время движения, можно получить среднюю скорость перемещения. Необходимо учитывать, что каретка может двигаться сразу по нескольким осям (например, вдоль направлений по X и Y одновременно). В этом случае линейная скорость перемещения расчитывается по теореме Пифагора. Полезные статьи
[1] Что такое G-CODE? Как читать команды G-кода? [2] Команды GRBL v1.1. Подробное описание [3] Прошивка grbl 1.1, настройка - инструкция на русском |
Программа освоения Arduino
Документация:
Авторы: [ВЯА] Волкова Я.А. [МАД] Миришкин А.Д. [ВМИ] Васильев М.И. [МАП] Мощевикин А.П. |