Кремень КД Реклама
Кремень КМ Реклама

"Горячие клавиши" для 3D принтера

gotchau
Идет загрузка
Загрузка
05.04.2021
6750
10
RepRap

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

22

Экран с энкодером — это стандартный элемент управления 3D принтером. Чтобы просто включить преднагрев, требуется сделать 9 шагов. Горячие клавиши позволяют получить доступ к основным функциям принтера без меню и всего за одно действие.

Данный пост можно считать продолжением этого, где я начал рассказывать про этот 3D принтер.

Кнопки взял в виде мембранной клавиатуры (светофор). Такие бывают на 1-5 клавиш. Есть просто с цифрами. Модуль имеет самоклейку, на которую полагаться не стал и сделал печатное крепление на профиль. Крепление выступает вперед на 15 мм, так как пришлось сделать карман, в который убирается шлейф кнопок. 4 контакта: один общий и еще 3, каждый под свою кнопку. На плате управления подсоединяется в любые свободные цифровые контакты. На своей MKS Gen V1.4 воткнул в разъем AUX-2 на контакты 40, 42, 44 и GND (общий).

Что же требуется для получения данного функционала? Первым делом идем в Conditionals_post.h и рядом с User Interface пишем своё. Под каждую кнопку своя строка, которая имеет формат #define HAS_CUSTOM_ (PIN_EXISTS(CUSTOM_)). Ссылка на копипаст лист в конце поста.

Далее объявляем на каких контактах будут располагаться кнопки. Сделать это можно в том же файле, где хранится распиновка платы. Альтернативное место где это можно сделать — файл Configuration.h. Строка имеет формат #define CUSTOM__PIN 

При нажатии на кнопку, контакт, на котором она находится, стягивается на землю. Поэтому его требуется подтянуть к питанию. Программным образом это можно сделать так: идем в Marlin_main.cpp, спускаемся к void loop() и перед ним вставляем следующее.

HAS_CUSTOM_ это то, что мы объявляли в самом первом файле. SET_INPUT_PULLUP(CUSTOM__PIN); — включение встроенных подтягивающих резисторов.

В этом же файл будет прописана и логика данных кнопок. Её расположим рядом с аналогичной аппаратной кнопкой KILL, ищем по HAS_KILL. Зеленая кнопка имеет самый простой функционал: парковка с мгновенным отключением двигателей. Если сделать через меню двигатели отключатся только при бездействии N секунд. Стандартный функционал не нарушен. "customGreenBtnCounter и CUSTOM_GREENBTN_DELAY" отвечают за обработку дребезга. Внутри "if (customGreenBtnCounter == CUSTOM_GREENBTN_DELAY)", тот код, который будет выполняться по нажатию. В данном случае в общую очередь подмешиваются наши G-code команды.

Схожие действия можно вешать на одну кнопку, это удобно. Реализуется программная карусель, при нажатии на кнопку команды сменяют друг друга, сделано это все через оператор switch, в который передается переменная флаг/счетчик (customYellowBtnFlag). На желтой кнопке реализовано 2 пресета температуры (ПЛА, АБС) и отключение.

На красной кнопке тот же функционал, но для столика.

А что будет если нажать на кнопку во время печати? Вполне резонный вопрос. При нажатии на кнопку, в основную очередь принтера подмешиваются наши команды, поэтому принтер просто их выполнит. Парковка во время печати не сработает. А вот температуру можно менять без проблем.

На эти кнопки можно поставить кучу всего. Ну вот, к примеру, вывести кнопку печать/пауза; отключение/включение охлаждения детали, можно даже с градацией; управление подсветкой; быстрое перемещение по 4 точкам стола, для калибровки, и еще много чего еще. А также действия можно совмещать. Все ограничивается только фантазией.

Остальные улучшения:

• Экран перенесён вниз

• Появилось крепление под катушку пластика

• Снята нагрузка с фитинга подающего механизма (стоит поддержка, которая крепится к раме)

Видео-версия со всем подробностями.

Прошивка и копипаст-лист залил на гитхаб. В этом же репозитории потом будут выложены все материалы по данному принтеру (STL, DXF, список комплектующих и так далее), как только я приведу их в порядок. Бо́льшая часть деталей (все необходимые для сборки) уже доступны на thingiverse.

Спасибо, что дочитали до конца, надеюсь было интересно, до скорого).

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

22
Комментарии к статье