Как отправить G-код непосредственно с Raspberry Pi на принтер без использования какой-либо дополнительной программы

Я хочу подключить драйверы с принтера к своему Raspberry Pi. Я хочу управлять осями принтера, отправляя G-код непосредственно из командной строки Raspberry Pi (если это возможно) драйверам.

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

, 👍4

Обсуждение

зависит от того, что принимает принтер. если прошивка будет принимать код g по последовательному, вам просто нужны правильные настройки порта..., @Abel

Хорошо, как я могу увидеть, что принимает мой принтер/прошивка?, @Spieler Spiel


3 ответа


0

Вы можете отправить данные в последовательный порт с помощью echo, но вам придется использовать cat, чтобы получить ответ.


,

Ваш ответ был помечен системой как немного короткий. Не могли бы вы [отредактировать] и расширить свой ответ и привести примеры используемых команд (возможно, с фиктивными данными)?, @Greenonline


2

Очень простой и простой способ отправить GCODE на ваш принтер с терминала может быть реализован с помощью:
эхо "gcode здесь" > /dev/ttyS0>
/dev/ttyS0 может отличаться, это может быть /dev/ttyACM0, /dev/ttyUSB0 или что - либо подобное с другим номером.

Вы можете определить правильный путь для вашего принтера с помощью команды ls /dev/tty* и сравнить результаты с подключенным и отключенным принтером, какое бы устройство ни появилось, оно должно быть вашим принтером.
Кроме того, некоторые принтеры могут отображаться в /dev/serial/by-id/ вместо /dev/tty*, поэтому, если вы не можете найти свой принтер в обычном режиме, попробуйте вместо этого использовать /dev/serial/by-id/.

Если это, похоже, не работает, вам, возможно, потребуется изменить настройки последовательного порта с помощью команды sudo stty-f /dev/ttyS0 115200, заменив /dev/ttyS0 и 115200 на путь к устройству и скорость передачи данных принтера соответственно.

Если вы ищете более двунаправленное решение, вы можете использовать командный экран, который обычно устанавливается по умолчанию. Вы можете использовать его следующим образом:
экран /dev/ttyS0 115200 и выйдите с помощью Control+A, затем нажмите D
Другим решением может быть утилита pronsole от Printrun/Pronterface, которую можно установить с помощью sudo apt install printrun и вызвать с помощью pronsole.py и затем вы можете подключиться к своему принтеру с помощью синтаксиса
подключите /dev/ttyS0 115200 или просто подключитесь, так как pronsole имеет возможность автоматического подключения к вашему принтеру. Выйдите с помощью команды "Выход".

,

1

Отправка G-кода на принтер через последовательный интерфейс является двунаправленной операцией, которая требует ожидания подтверждения от принтера перед отправкой дальнейших команд. Теоретически в этом не должно быть необходимости, и следует использовать аппаратное управление потоком (или даже управление потоком XON/XOFF, если аппаратное обеспечение недоступно), но все было сделано не так. Таким образом, отправка G-кода с "тупыми" командами, такими как "кошка", не работает.

Если вы хотите отправлять отдельные команды вручную, вы можете использовать такую программу, как Minicom (или встроенную поддержку последовательного терминала screen), и обрабатывать подтверждения самостоятельно. Но если вы действительно хотите выполнять потоковую печать заданий, вам нужна хотя бы минимальная программа для этого. Это может быть написано в нескольких строках на Python или Perl, если хотите. Я знаю, что есть такие примеры, но у меня нет под рукой ссылок, и я все равно не пробовал ни один из них, чтобы рекомендовать его.

,