Как отправить одну команду gcode через USB? - PullRequest
1 голос
/ 29 января 2020

Я пытаюсь написать простой python скрипт, который отправляет команду gcode на мой принтер материнской платы wanhao D9, на котором работает Marlin. Я запускаю сценарий python на Raspberry Pi, который подключен к принтеру через USB.

import serial

ser = serial.Serial("/dev/ttyUSB0", 115200)
ser.write("G28\n")

Я прочитал более 20 страниц форума с проблемами симуляции и попробовал их ответы, такие как изменение скорости передачи в бодах. до 250000 и следующие изменения параметра функции записи:

ser.write("G28\r\n")
ser.write(b'G28\r\n')
ser.write(b'G28\n')
ser.write(b'G28')
ser.write("G28")

Я перепробовал все эти комбинации, а также добавил:

time.sleep(5)

вместе с соответствующим оператором импорта для модуль времени в верхней части моего файла. Я добавил эту строку кода между объявлением ser и вызовом функции ser.write.

Я также попытался добавить:

ser.close()

, чтобы увидеть, изменится ли это, но это нет, так как я знаю, что в любом случае это лучшая практика.

Независимо от того, какую комбинацию этого кода я использовал, при запуске сценария python мой принтер перезагружается (экран переходит с домашней страницы на открытие wanhao lo go и возврат на домашнюю страницу)

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

1 Ответ

0 голосов
/ 29 января 2020

Добавление дополнительного периода сна после того, как моя команда исправила мою проблему. Теперь я также могу прочитать исходную обратную связь с принтером.

Мой окончательный код без этого:

import serial
import time

ser = serial.Serial('/dev/ttyUSB0', 115200)

time.sleep(2)
ser.write("G28\r\n")
time.sleep(1)
ser.close()

Спасибо пользователям этого поста за то, что они направили меня в правильное направление Полные примеры использования пакета pySerial

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

...