Найти в Дзене
Make Electronics

Панель управления Flyingbear Ghost 5 (octoprint + klipper)

Свободное место по краям от дисплея медведя сразу меня заинтересовало. Там на наклейке как будто иконки каких-то кнопок изображены, и я признаюсь, повёлся, при первом знакомстве потыкал их пальцем, но никакого тактильного отклика не ощутил =( Но если принтер имеет на борту малину с установленным октопринтом, то подобными кнопками несложно обзавестись. О чём собственно я и хочу рассказать. Получившаяся у меня панель управления состоит из 8 кнопок, которые могут быть настроены на выполнение многих возможных действий, например, запуска и остановки печати или запуска произвольного гкода. Заодно заменил дисплей на 128x64 (на контроллере ST7920, как в RepRapDiscount Full Graphic Smart Controller). Родной экран не поддерживается клиппером, а этот прост в подключении, к тому же яркий и контрастный, с крупными, хорошо читаемыми шрифтами. Кнопочное управление Под левую панельку придётся вырезать прямоугольное отверстие. Я пилил дремелем маленьким армированным диском, периодически охлаждая водо
Оглавление

Свободное место по краям от дисплея медведя сразу меня заинтересовало. Там на наклейке как будто иконки каких-то кнопок изображены, и я признаюсь, повёлся, при первом знакомстве потыкал их пальцем, но никакого тактильного отклика не ощутил =(

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

Получившаяся у меня панель управления состоит из 8 кнопок, которые могут быть настроены на выполнение многих возможных действий, например, запуска и остановки печати или запуска произвольного гкода. Заодно заменил дисплей на 128x64 (на контроллере ST7920, как в RepRapDiscount Full Graphic Smart Controller). Родной экран не поддерживается клиппером, а этот прост в подключении, к тому же яркий и контрастный, с крупными, хорошо читаемыми шрифтами.

Кнопочное управление

Под левую панельку придётся вырезать прямоугольное отверстие. Я пилил дремелем маленьким армированным диском, периодически охлаждая водой из пульверизатора чтобы не сжечь краску. Получается ровно и аккуратно, но довольно пыльно. А правая панелька ставится в уже имеющийся в корпусе вырез, за которым располагалась вайфай антенна.

-2

Панельки печатал из АБСа чтобы потом немного ошкурить и полирнуть. АБС легко обрабатывается, и можно было бы получше вывести поверхности, если бы не лень.

-3

Использованы распространённые тактовые кнопки 12x12 мм с разноцветными колпачками. Чтобы дополнительно их закрепить были спаяны земляные выводы толстыми медными шинами.

-4

Кнопки соединены одним концом друг с другом и через резистор 1к (для защиты от невнимательности) подключены к GND малины. А другим концом соответственно к свободным GPIO.

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

-5

Для обработки нажатий может быть использован один из существующих плагинов. Мне, например, понравился Physical Button. Разработчик его активно развивает. Я попросил на гитхабе реализовать фичу — выбор последнего загруженного файла для печати, и он её вскоре запилил.

Настройки кнопок

Вот пример того, какие действия можно назначить.

Нагрев — нагревает сопло для замены филамента или обслуживания хотенда.

M117 Nozzle heating
M104 S240

Отмена нагрева — выключает все нагреватели, заодно выключает моторы.

TURN_OFF_HEATERS
M84

Экструзия — выдавливает немного пластика для очистки сопла при замене катушки.

M117 Nozzle clearing
G92 E0
G91
G1 E100 F250
G1 E-2 F100
G92 E0
G90
M117

Обдув — последовательное переключение скорости вращения вентилятора обдува: 0% - 25% - 50% - 100%.

FAN_CONTROL

И добавить следующий макрос в конфиг клиппера:

[gcode_macro FAN_CONTROL]
gcode:
{% if printer.fan.speed == 0 %}
    M106 S65
{% elif printer.fan.speed|round(2) == 0.25 %}
    M106 S127
{% elif printer.fan.speed|round(2) == 0.50 %}
    M106 S255
{% else %}
    M106 S0
{% endif %}

Домой — ну тут всё понятно, G28.

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

Зелёная — запуск последнего загруженного файла. Очень удобно печатать что-то серийное.

Action -> start latest

Красная — отмена печати.

Action -> cancel

Дисплей

C дисплеем всё иначе. Он подключается к управляющей плате принтера и изображение на него будет выводить клиппер.

На плате дисплея необходимо соединить несколько выводов согласно схеме. Я поставил подстроечник для настройки яркости подсветки (а можно подобрать и постоянный резистор), а вот подстроечник для настройки контраста, изображенный на большей части схем ставить не нужно, он уже есть на обратной стороне платы экрана (крохотный такой).

-6

Для подключения дисплея без энкодера понадобится всего лишь 5 проводов. Нужно найти на плате 3 пина напрямую соединенных с портами микроконтроллера (без всяких подтяжек). У меня родная медвежья плата MKS Robin Nano 1.3 и на ней нашёлся удобный разъём, помеченный на схеме как TC-MAX31855.

-7

Чтобы клиппер его увидел необходимо в конфиг вписать примерно следующее:

[display]
lcd_type: st7920
cs_pin: PB14
sid_pin: PE5
sclk_pin: PB13

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

-8

Модели: https://www.thingiverse.com/thing:5022550