Задание 3d печати останавливается при выполнении последовательной команды
Я хочу получить доступ к рабочей температуре 3D-принтера. Я могу получить температуру с помощью последовательного подключения (благодаря помощи Деметриса (доступ к данным датчика температуры 3D-принтера через последовательное подключение)). Проблема, с которой я сейчас сталкиваюсь, заключается в том, что как только я даю команду, я получаю значения температуры, однако задание на печать останавливается. Есть ли способ обойти это? Я хочу получать значения температуры по мере выполнения задания на печать. ТИА!
@KDK, 👍2
Обсуждение1 ответ
Открытие последовательного подключения к принтеру обычно приводит к перезагрузке микроконтроллера, останавливая печать.
Последовательный интерфейс имеет строку, известную как запрос на отправку (RTS), которая указывает микроконтроллеру, что компьютер готов к приему данных. Когда порт закрыт, эта линия является ВЫСОКОЙ (что указывает на то, что компьютер не готов), а когда вы открываете последовательное соединение, линия становится НИЗКОЙ (что указывает на то, что компьютер готов сейчас), и переход от ВЫСОКОГО к НИЗКОМУ запускает сброс.
Есть несколько способов предотвратить это:
В программном обеспечении: отключить зависание при закрытии (HUPCL). Это предотвращает рост линии RTS после ее закрытия, позволяя впоследствии открывать ее, не вызывая сброса. Однако это не сработает с первой попытки (первое, первоначальное подключение все равно приводит к сбросу). То, как это настраивается, зависит от настроек вашего программного обеспечения / драйвера, но оно широко поддерживается.
В программном обеспечении: в первую очередь отключите линию RTS от СНИЖЕНИЯ. Я не уверен, что это легко возможно с обычными последовательными драйверами.
В программном обеспечении: измените свой рабочий процесс, чтобы всегда поддерживать соединение открытым, предотвращая связанный сброс.
В аппаратном обеспечении: на плате вашего принтера будет установлена некоторая схема, которая переводит линию RTS с ВЫСОКОГО уровня на НИЗКИЙ, чтобы вызвать сброс, обычно это реализуется в виде одного конденсатора между RTS и RST. RST обычно вытягивается на высокий уровень с помощью подтягивающего резистора (порядка 10 Ком или около того), и когда RTS переходит на низкий уровень, конденсатор на короткое время пропускает некоторый ток, вытягивая RST на низкий уровень. Один из способов предотвратить это - включить более сильный подтягивающий резистор, который преодолевает ток утечки, связанный с разряжением линии RTS. Отключение автоматического подключения к сети Serialconnection предполагает использование резистора 330 Ом между VCC и GND.
В аппаратных средствах: выпаяйте конденсатор, упомянутый ранее.
Спасибо тебе, Том, за твой очень подробный и информативный ответ. Я очень новичок в этой области. Я пытаюсь получить доступ к рабочей температуре 3D-принтера, используя простой код python и отправив команду M105. Не могли бы вы, пожалуйста, помочь мне с этим?, @KDK
@TomvanderZanden Я думал, что последовательная связь ограничена одним соединением между шиной и программным обеспечением. Если вы используете последовательное подключение для запуска принтера и пытаетесь выполнить команду, вы рискуете переопределить предыдущее подключение. Таким образом, потенциально лучшим вариантом было бы использовать программное обеспечение для нарезки с API-оболочкой. Что-то вроде движка Cura может работать следующим образом., @tbm0115
Я предположил, что он печатал с SD, в противном случае попытка доступа к последовательному интерфейсу во время печати была бы безумием, поскольку она действительно ограничена одним одновременным подключением в любой разумной реализации., @Tom van der Zanden
- Почему углы АБС-объекта отрываются от стола?
- Как заставить PLA или PETG навсегда приклеиться к стеклянному столу без клея?
- Какой силиконовый клей использовать для крепления терморезисторов?
- Сопло всегда "случайно" перемещается в 0 во время печати, а затем возобновляется
- Доступ к данным датчика температуры 3D-принтера через последовательное подключение
- Проблема адгезии (проблема теплового стола или экструдера)
- Засорение филамента Tevo Tarantula I3
- Клон Monoprice i3 отключается нагрев при печати abs
Я думаю, что было бы лучше, если бы вы вернули свою правку, так как вопросы о программировании не являются актуальными на этом сайте. "Почему мой принтер перестает печатать, когда я подключаюсь по последовательному каналу" - это разумный вопрос, но "Вот мой код и, пожалуйста, заставьте его делать то, что я хочу" - нет (это даже не было бы принято в программировании SEs)., @Tom van der Zanden
Спасибо, Том. Я не ищу от вас кодового решения, я просто имел в виду, что это именно то, что я делаю, и просто нуждался в точке в правильном направлении отсюда, так как новичкам немного трудно правильно интерпретировать все с самого начала. Я не прошу вас заставить его делать то, что я хочу, я могу сделать это сам. Я думаю, вы меня неправильно поняли. В любом случае, спасибо за помощь., @KDK