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

Добавляем аппаратные кнопки в Marlin.

HellRaider
Идет загрузка
Загрузка
03.02.2019
10729
64
Техничка

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

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

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

63
Так как моя предыдущая статья по поводу переделки стандартной функции HAS_KILL (https://3dtoday.ru/blogs/hellraider/hardware-pause-button-in-marlin/) вызвала определенную заинтересованность в плане добавления дополнительных кнопок управления п прошивку Marlin, то я решил немного развить эту тему.

Сейчас я опишу способ добавления произвольной функции, управляемой аппаратной кнопкой, в прошивку Marlin.

Итак:

Для начала открываем файл Conditionals_post.h и идем к разделу 'User Interface'.

Там объявляем нашу новую функцию:
Добавляем аппаратные кнопки в Marlin.
Потом открываем файл pins_....h, где прописывается конфигурация вашей платы, объявляем новый пин и присваиваем ему свободный номер:
Добавляем аппаратные кнопки в Marlin.
Также, это можно сделать в файле configuration.h
Добавляем аппаратные кнопки в Marlin.
Далее - открываем файл Marlin.cpp (для Marlin 2.0) или Marlin_main.cpp (для Marlin 1.1.9).

Там идём почти в самый конец и перед главным циклом 'void loop()' прописываем инициализацию нового пина и его подтяжку к высокому уровню. Активация функции будет осуществляться замыканием этого пина на землю.
Добавляем аппаратные кнопки в Marlin.
Теперь нужно прописать логику работы нашей новой функции. В этом же файле ищем функцию HAS_KILL и после нее вставляем нашу новую функцию.
Добавляем аппаратные кнопки в Marlin.
Вместо команды M25 может быть любой другой исполняемый G-код. При нажатии на кнопку он прописывается в буфер исполняемых команд принтера и будет выполнен после завершения текущей команды.

Также, предложу второй вариант функции. Он позволяет однократным нажатием включить одну функцию, а повторным - другую (например: включить или выключить нагрев стола)
Добавляем аппаратные кнопки в Marlin.
В принципе, возможности применения этой функции ограничены набором G-кодов и фантазией исполнителя.

Названия функций и переменных должны быть уникальными. Если необходимо добавить несколько функций, то для второй функции в названиях HAS_CUSTOM_1, customCount1, customStat1, CUSTOM_1_DELAY, CUSTOM_1_PIN цифру 1 меняем на 2.

P.S. Всё проверено на прошивке Marlin 2.0. В последней Marlin 1.1.9 эти же функции выглядят аналогично. Прошивка компилируется без ошибок. Думаю, проблем не будет.

P.P.S Для облегчения набора в режиме Ctrl+C/Ctrl+V, текстовый файл с этими функциями лежит по ссылке: https://yadi.sk/d/fY5pjTRdYAJx2Q

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

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

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

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