Доступ к данным датчика температуры 3D-принтера через последовательное подключение
Я хочу получить доступ к данным датчика температуры рабочего стола и сопла 3D-принтера через последовательное подключение. Не мог бы кто-нибудь, пожалуйста, направить меня в правильном направлении?
Спасибо!
Изменить: Ответ от принтера:
Connecting to printer...
Connection response from printer:
6R7�P)��h>L�JO� � ��V�\��`�r��T �� SK�<ʪ� �>�Vw^$���|���R n�I, o�!����H>�
mx�}M#
�LYԣPh���^@ ��rp � TP�j�~1�� V6 6 � f� 6�k#���&�H".��k K2���ek�(��&��^K�k2����Ul�(� ���~N�ʈ*.�>Z��k#d$�����(� ��
��(� ��� v��
���
Asking for temperatures (M105)...
Temperature response from printer:
^CTraceback (most recent call last):
File "printer_files/serialaccess.py", line 15, in <module>
response = ser_printer.readline()
File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 446, in read
ready,_,_ = select.select([self.fd],[],[], self._timeout)
KeyboardInterrupt
После того, как код запросит у принтера значения температуры, на терминале больше нет вывода. Я подождал некоторое время, а затем убил его, используя control+c. Ясно, что принтер реагирует на ответ на подключение, но я не уверен, почему он не возвращает значения температуры. Еще раз большое спасибо за вашу помощь, Деметрис!
@KDK, 👍6
Обсуждение1 ответ
Лучший ответ:
Предполагая, что ваш принтер принимает обычный вкус G-кода, температуру экструдера и рабочего стола можно получить, отправив M105
через последовательный порт. Принтер ответит ОК T:XXX.X B:XXX.X
где T
-температура сопла, а B
- температура рабочего стола.
Вы можете прочитать больше о конкретном G-коде в вики RepRap.
Редактировать: Я редактирую ответ, чтобы включить информацию для подключения к принтеру с помощью простого скрипта python.
Следующий сценарий сначала открывает последовательное подключение к принтеру. Для прошивки Marlin при первом подключении к принтеру требуется некоторое время для инициализации и ответа. Вот почему необходима некоторая задержка перед чтением ответа. После печати ответа скрипт отправляет
команду M105, ожидает 100 мс, затем считывает ответ последовательного буфера и выводит его на экран.
Примечание. /dev/ttyUSB0
-это имя последовательного порта, и в вашем случае оно может отличаться. Также 250000
-это скорость передачи данных при подключении; 250000
-значение по умолчанию для принтера, поэтому вам необходимо заменить его скоростью передачи данных, используемой вашим принтером.
import serial
import time
ser_printer = serial.Serial('/dev/ttyUSB0', 250000)
print "Connecting to printer..."
time.sleep(30) # Allow time for response
buffer_bytes = ser_printer.inWaiting()
response = ser_printer.read(buffer_bytes) # Read data in the buffer
print "Connection response from printer:"
print response
print "Asking for temperatures (M105)..."
ser_printer.write('M105\n')
time.sleep(0.1) # Allow time for response
print "Temperature response from printer:"
response = ser_printer.readline()
print response
Спасибо вам за ваш быстрый ответ! Я читал о командах прошивки на вики-странице RepRap. Я не совсем уверен, как взаимодействовать с принтером, чтобы отправлять эти команды. Я новичок в этой области. Я действительно ценю вашу помощь., @KDK
Я отредактировал ответ, чтобы включить некоторые основные сведения для подключения к принтеру., @Demetris
Спасибо тебе, Деметрис! Я работал с фрагментом кода, который вы предоставили. Я редактирую вопрос с ответом, который я получаю., @KDK
Я хочу получить доступ к температуре рабочего стола 3D-принтера. Я могу получить температуру с помощью последовательного подключения. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что, как только я даю команду, я получаю значения температуры, однако задание на печать останавливается. Есть ли способ обойти это? Я хочу получать значения температуры по мере выполнения задания на печать., @KDK
Похоже, это совсем другая проблема. Пожалуйста, создайте новый вопрос, подробно описывающий вашу проблему. Это поможет вам ответить на ваш вопрос гораздо эффективнее., @Demetris
- 3D-принтер Anycubic Mega S: филамент неправильно выходит из сопла при печати
- Почему углы АБС-объекта отрываются от стола?
- В чем разница между МК6 и МК8 и даже МК10?
- PETG Прилипает к соплу
- Не могу исправить над экструзию
- Будет ли заметнаяразница при переходе с сопла диаметром 4 мм на сопло 3 мм?
- Как заставить PLA или PETG навсегда приклеиться к стеклянному столу без клея?
- Какой силиконовый клей использовать для крепления терморезисторов?
Это отклонение в сторону от темы. Речь идет уже не об инструментах и приложениях 3D-принтеров, а о программировании и разработке приложений для одного., @Tom van der Zanden