Помогите настроить прошивку Klipper

Собираем, настраиваем, печатаем, делимся опытом, помогаем новичкам

Модератор: Kaktus

Stein
Сообщения: 522
Зарегистрирован: 27 фев 2018, 10:22
Имя: Дмитрий
Откуда: Нижний Новгород
Благодарил (а): 123 раза
Поблагодарили: 15 раз

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Stein » 24 фев 2022, 20:12

Avtonomys, Спасибо! Прошился!

Stein
Сообщения: 522
Зарегистрирован: 27 фев 2018, 10:22
Имя: Дмитрий
Откуда: Нижний Новгород
Благодарил (а): 123 раза
Поблагодарили: 15 раз

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Stein » 24 фев 2022, 21:18

Я что-то запутался. у меня двигатели вроде как 0.9 градуса на оборот. Получается по формуле 400*16*0.00625=40, но при этом оси перемещаются на половину длинны. Получается мне нужен rotation distance 20

Avtonomys
Сообщения: 1141
Зарегистрирован: 31 авг 2017, 14:26
Имя: Кирилл
Откуда: Москва, CAO
Благодарил (а): 38 раз
Поблагодарили: 167 раз
Контактная информация:

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Avtonomys » 24 фев 2022, 21:31

Stein писал(а):
24 фев 2022, 21:18
Я что-то запутался. у меня двигатели вроде как 0.9 градуса на оборот.
поставить

Код: Выделить всё

[stepper_x]
...
full_steps_per_rotation: 400
...
https://www.klipper3d.org/Config_Refere ... l#stepper
По умолчанию там 200 стоит - 1.8 гр...

Stein
Сообщения: 522
Зарегистрирован: 27 фев 2018, 10:22
Имя: Дмитрий
Откуда: Нижний Новгород
Благодарил (а): 123 раза
Поблагодарили: 15 раз

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Stein » 24 фев 2022, 21:36

Спасибо! Все-таки нужно прочитать полностью документацию))

Nik777
Сообщения: 38
Зарегистрирован: 14 дек 2017, 12:22

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Nik777 » 09 мар 2022, 13:30

Может кто знает как сделать так чтобы команды G кода в макросе выполнялись последовательно. т.к. они написаны в макросе? Мне необходимо сначала прочитать данные с датчика затем проанализировать их и соответственно выполнить действие. У меня Клиппер сначала проверяет условие а затем считывает значения с датчика. Команда G4 не помогает. Причём в цикле for происходит то же самое.

Avtonomys
Сообщения: 1141
Зарегистрирован: 31 авг 2017, 14:26
Имя: Кирилл
Откуда: Москва, CAO
Благодарил (а): 38 раз
Поблагодарили: 167 раз
Контактная информация:

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Avtonomys » 09 мар 2022, 14:05

Nik777 писал(а):
09 мар 2022, 13:30
G кода в макросе выполнялись последовательно.
Вся суть G кода это последовательное выполнения команд.
Nik777 писал(а):
09 мар 2022, 13:30
Мне необходимо сначала прочитать данные с датчика затем проанализировать их и соответственно выполнить действие.
Это же к датчику вопросы, а не к Gкоду. У них таймауты на считывания есть...
Nik777 писал(а):
09 мар 2022, 13:30
У меня Клиппер сначала проверяет условие а затем считывает значения с датчика.
Конкретнее можно, в чем задача то?

Nik777
Сообщения: 38
Зарегистрирован: 14 дек 2017, 12:22

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Nik777 » 09 мар 2022, 15:04

Необходимо с датчика температуры и давления BMP280 прочитать данные ,вывести в терминал , затем выполнить математическую операцию и на основе результата выполнить условный переход с присвоением переменной значения ИСТИНА или ЛОЖЬ. и всё это внутри цикла повторить N раз. Так вот .Клиппер сначала присваивает переменной значение N раз , затем считывает значение с датчика N раз и выводит на терминал.

Nik777
Сообщения: 38
Зарегистрирован: 14 дек 2017, 12:22

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Nik777 » 09 мар 2022, 15:13

Вся суть G кода это последовательное выполнения команд.
Nik777 писал(а):
09 мар 2022, 13:30

Это относится только к командам выполняющим перемещение ,остальные могут выполняться в произвольном порядке. В Марлине G4 помогало в таких случаях.

Avtonomys
Сообщения: 1141
Зарегистрирован: 31 авг 2017, 14:26
Имя: Кирилл
Откуда: Москва, CAO
Благодарил (а): 38 раз
Поблагодарили: 167 раз
Контактная информация:

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Avtonomys » 09 мар 2022, 15:41

Любые команды в gсode выполняются последовательно.
Nik777 писал(а):
09 мар 2022, 15:13
G4
В marlin G4 без аргументов это синоним M400. А команда M400 как раз ждет выполнения предыдущих команд...
Nik777 писал(а):
09 мар 2022, 15:04
затем выполнить математическую операцию и на основе результата выполнить условный переход с присвоением переменной значения ИСТИНА или ЛОЖЬ. и всё это внутри цикла повторить N раз.
Скорее всего вы неправильно условие составили. Пример реализации в студию.

Nik777
Сообщения: 38
Зарегистрирован: 14 дек 2017, 12:22

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Nik777 » 10 мар 2022, 12:14

Запускается макрос TEST_LCD Он вызывает макрос QUERY_BMP280 ,а тот IF_PRESS


[gcode_macro TEST_LCD]
variable_n: 3
variable_f: 0
gcode:
SET_FAN_SPEED FAN=klapan_propusk SPEED=1.0
G4 P1000
; QUERY_BMP280
QUERY_BMP280
; M400
G4

{% for i in range(n) if not printer["gcode_macro IF_PRESS"].flag|int == 1.0 %}
; M400
; G1 Z51.70 F300
MANUAL_STEPPER STEPPER=my_stepper0 ENABLE=1 SET_POSITION=0 MOVE=20.80 STOP_ON_ENDSTOP=0
G4 P3000
; QUERY_BMP280
QUERY_BMP280
; M400
G4
{% if printer["gcode_macro IF_PRESS"].flag|int == 0 %}

{action_respond_info("Iteraziy %.1f \n" % (printer["gcode_macro TEST_LCD"].f|int))}
{% else %}
{action_respond_info("Pipez %.1f \n" % (printer["gcode_macro TEST_LCD"].n|int))}
; M400
G4
{% endif %}
; SET_FAN_SPEED FAN=klapan_propusk SPEED=0.0
; G1 Z60.0 F1300
; SET_FAN_SPEED FAN=klapan_propusk SPEED=1.0
; G4 P500
CUP_ZERO

{% endfor %}
; M400
G4
{% if f == 0 %}
{action_respond_info("False %.1f \n" % (printer["gcode_macro TEST_LCD"].n|int))}
{% else %}
{action_respond_info("False %.1f \n" % (printer["gcode_macro TEST_LCD"].f|int))}
; PAUSE
{% endif %}
SET_FAN_SPEED FAN=klapan_propusk SPEED=0.0



[gcode_macro QUERY_BMP280]
variable_press: 0
gcode:
; G1 Z50.70 F300
; G4 P1500

{% set sensor = printer["bme280 my_sensor"] %}
; {% set press = sensor.pressure|float %}
{action_respond_info(
"press_bmp280: %.2f hPa\n"
"Temperature: %.2f C\n"
"Pressure: %.2f hPa\n" % (
printer["gcode_macro SAVE_PRESS_BMP280"].press_bmp280|float,sensor.temperature|float,sensor.pressure|float))}
; G1 Z55.0 F300
SET_GCODE_VARIABLE MACRO=QUERY_BMP280 VARIABLE=press VALUE={sensor.pressure|float}
M400
IF_PRESS



[gcode_macro IF_PRESS]
variable_flag: 0
gcode:
{% if printer["gcode_macro QUERY_BMP280"].press|float < (printer["gcode_macro SAVE_PRESS_BMP280"].press_bmp280|float - 20) %}
; SET_FAN_SPEED FAN=klapan_propusk SPEED=1.0
SET_GCODE_VARIABLE MACRO=IF_PRESS VARIABLE=flag VALUE=1
{% else %}
; SET_FAN_SPEED FAN=klapan_propusk SPEED=0.0
SET_GCODE_VARIABLE MACRO=IF_PRESS VARIABLE=flag VALUE=0
; action_respond_info("False")
{% endif %}
; {action_respond_info("Flag: %.1f \n" % (printer["gcode_macro QUERY_BMP280"].flag_lsd|int))}
{action_respond_info("Flag: %.1f \n" % (printer["gcode_macro IF_PRESS"].flag|int))}


А ВОТ РЕЗУЛЬТАТ

6:05:49 $ test_lcd
16:05:49 // Iteraziy 0.0
16:05:49 // Iteraziy 0.0
16:05:49 // Iteraziy 0.0
16:05:49 // False 3.0
16:05:49 // press_bmp280: 1008.99 hPa
// Temperature: 25.79 C
// Pressure: 1008.83 hPa
16:05:50 // Flag: 0.0
16:05:56 // press_bmp280: 1008.99 hPa
// Temperature: 25.79 C
// Pressure: 875.27 hPa
16:05:58 // Flag: 0.0
16:06:06 // press_bmp280: 1008.99 hPa
// Temperature: 25.79 C
// Pressure: 979.26 hPa
16:06:08 // Flag: 1.0
16:06:17 // press_bmp280: 1008.99 hPa
// Temperature: 25.79 C
// Pressure: 869.67 hPa
16:06:19 // Flag: 1.0

Avtonomys
Сообщения: 1141
Зарегистрирован: 31 авг 2017, 14:26
Имя: Кирилл
Откуда: Москва, CAO
Благодарил (а): 38 раз
Поблагодарили: 167 раз
Контактная информация:

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Avtonomys » 10 мар 2022, 16:32

Nik777 писал(а):
10 мар 2022, 12:14
А ВОТ РЕЗУЛЬТАТ
ну если я правильно понял суть вопроса. Это связанно с внутренней работой action_respond_info.
Команда M118 выводит в консоль в том порядке в котором они были выполнены, а не блоками...

Nik777
Сообщения: 38
Зарегистрирован: 14 дек 2017, 12:22

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Nik777 » 11 мар 2022, 14:42

Опытным путём определил, что все переменные должны быть определены вне цикла <For> или условного оператора <IF>. Нет смысла менять их внутри оператора и анализировать .

Avtonomys
Сообщения: 1141
Зарегистрирован: 31 авг 2017, 14:26
Имя: Кирилл
Откуда: Москва, CAO
Благодарил (а): 38 раз
Поблагодарили: 167 раз
Контактная информация:

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Avtonomys » 11 мар 2022, 15:20

Nik777 писал(а):
11 мар 2022, 14:42
Опытным путём определил, что все переменные должны быть определены вне цикла <For> или условного оператора <IF>. Нет смысла менять их внутри оператора и анализировать .
Вообще не понимаю о чем вы. У вас из 3 макросах только в 1 локальная переменная определена - sensor. И то это ссылка, а не само значения...
А variable_* определяются самим klipper в момент создания макроса...
Есть еще переменные которые создаются только в момент вызова макроса - "params.имя_параметра". Эти переменные могут существовать, а могут не существовать - необходимо делать проверку (is/is not)... через эти переменные и можно пробрасывать 'n' вместе с вызовом макроса: "TEST_LCD N3".

Nik777
Сообщения: 38
Зарегистрирован: 14 дек 2017, 12:22

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Nik777 » 11 мар 2022, 18:35

Переменные создаваемые командой SET_GCODE_VARIABLE MACRO являются глобальными и доступны для других макросов.

Avtonomys
Сообщения: 1141
Зарегистрирован: 31 авг 2017, 14:26
Имя: Кирилл
Откуда: Москва, CAO
Благодарил (а): 38 раз
Поблагодарили: 167 раз
Контактная информация:

Re: Помогите настроить прошивку Klipper

Непрочитанное сообщение Avtonomys » 11 мар 2022, 19:57

Nik777 писал(а):
11 мар 2022, 18:35
Переменные создаваемые командой SET_GCODE_VARIABLE MACRO являются глобальными и доступны для других макросов.
Вы не можете этой командой ничего создать, насколько я помню. Вы просто меняете значения по умолчанию variable_* в макросе. И абсолютно пофигу, где вы это команду вызываете - for, if и тд.
Насколько я помню документацию. SET_GCODE_VARIABLE это вообще единственный способ изменить значения "variable_*".

Ответить

Вернуться в «3D принтеры и 3D печать»

Яндекс.Метрика