Команда для постоянного перемещения головки принтера

В настоящее время я пишу (программное обеспечение) и создаю (печатаю) небольшую панель управления для своего принтера. У меня есть несколько 2D-джойстиков, которые я хочу использовать для перемещения X/Y и Z/E. Идея заключается в том, что при перемещении джойстика в направлении X принтер начинает двигаться вправо/влево, а при отпускании он должен остановиться. На данный момент это должна быть просто постоянная скорость, поэтому величина наклона джойстика не должна иметь значения. Я просматривал ссылку GCode (Marlin), но все связанные с движением GCodes, похоже, перемещаются в определенное положение, а не просто начинают двигаться до дальнейшего уведомления.

При использовании позиционирования я могу думать о двух возможных проблемах.

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

Есть ли способ заставить головку принтера просто начать и остановить движение, не давая целевой координаты? Если это имеет какое-то значение: я говорю только о том, чтобы иметь это для Creality CR-20.

, 👍2

Обсуждение

Если итерация, как вы делаете, вы могли бы время каждой последовательной команды, чтобы произойти непосредственно перед замедлением от предыдущего хода начнется, на основе профиля ускорения. Но я не уверен, что планировщик отреагирует так быстро. Вместо этого вы можете просто отправить длинный ход, а затем команду прервать по мере необходимости, но все еще может быть высокая задержка. Прошивка принтера не предназначена для интерактивного управления., @R.. GitHub STOP HELPING ICE

Вам будет лучше с каждым толчком джойстика, равным заданному движению. Я не знаю способа просто начать движение без конечной точки., @Davo

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

Очевидно, что нет Gcode, чтобы "двигаться, пока не проинструктировано иначе", так как это приводит к неприятным жестким столкновениям. Ваша мысль о "Move to Max_X" с последующей командой Abort должна работать, но будьте осторожны с скоростью, так как конечные переключатели не могут вовремя отключить диск., @Carl Witthoft

клиппер не поддерживает gcode G80, чтобы остановить бегущий ход, @CS QGB