Передача gcode в плоттер
Имеется ноут с linux debian и плоттер на arduino uno + cnc shield. При передаче команд из консоли arduino IDE всё прекрасно работает (например, команда G91 X1 Y1 устанавливает относительную систему координат и двигает оси).
Но мне нужно передавать на плоттер набор команд из файла. И тут начинаются проблемы.
Порт плоттера представлен файлом /dev/ttyUSB0 (также есть файл сериал порта /dev/ttyS0, но любой ввод в него вызывает ошибку ввода/вывода). Устанавливаю скорость передачи 115200 следующий командой:
stty -F /dev/ttyUSB0 raw speed 115200
Всё ок. Проверяю плату коммандой:
cat /dev/ttyUSB0
Выводится вeрсия grbl.
Попытался отправить файл с текстом G91 X1 Y1 следующей командой:
sudo cat /puth/to/file.gcode > /dev/ttyUSB0
Она должна делать описанные в первом абзаце действия. Но она этого не делает, плоттер спустя секунды две после ввода команды немного вздрагивает и всё. Не помог ни знак ">>" вместо ">" ни команда chmod +777 /dev/ttyUSB0 и chmod +777 file.gcode
Подскажите, есть ли какие-то ещё тонкости с общением компа и плоттера через usb?
Ответы (1 шт):
Проблема оказалась в том, что, отправляя команды через cat, я не отлавливал ответ. А прошивка grbl на каждую команду отправляет статус выполнения или код ошибкии, который необходимо поймать. Иначе операции не выполняются.
Написал простую утилитку, отправляющую gcode и отлавливающую ответ - всё заработало.