Металл2024 Реклама
Метобр2024 Реклама

Делаем OctoPrint более хардварным или управляем кнопками

arseniy899
Идет загрузка
Загрузка
05.05.2018
6178
14
Техничка

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

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

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

14
Статья относится к принтерам:
Anet A6
Приветствую всех читателей.

Давно пользуюсь OctoPrint'ом на малинке (Raspberry Pi), которым приходится управлять с компьютера/телефона. Но проблема в том, что иногда лень их искать/включать или нужно срочно остановить печать. С этой целью было придумано использование кнопок, которые подключены к GPIO-выходам малинки. Так как в интерфейсе OctoPrint в основном представлены 3 кнопки типа: начать/продолжить, пауза, стоп, решено исполнить с помощью трёх кнопок соотв. цветов: красный. жёлтый и зелёный. Заказывал здесь (https://www.chipdip.ru/product/pbs14b-green), надеюсь за рекламу не сочтётся. Под них и был начерчен корпус:
Делаем OctoPrint более хардварным или управляем кнопками
Сразу была предусмотрена крышка, которая не даёт случайно нажать на кнопки:
Делаем OctoPrint более хардварным или управляем кнопками
После печати и подключения кнопки получаем вот такого маленького монстра:
Делаем OctoPrint более хардварным или управляем кнопками
Делаем OctoPrint более хардварным или управляем кнопками
Делаем OctoPrint более хардварным или управляем кнопками
Переходим к обработке нажатий на эти самые кнопки. Для этого можно использовать python потому как за основу использовал вот эту статью (http://tnorbert.com/blog/2016/10/24/simple-stopstart-button-for-octopioctoprint/). Немного расширив предложенный вариант кода в статье, получилось следующее (к сожалению вставить сюда сам исходник не получилось)

Скачиваем исходник, в нём нам нужно указать API-ключ OctoPrint в 7 строчке. Думаю, сейчас стоит рассказать об алгоритме работы кнопок в различных состояниях принтера:

Режим ожидания

зелёная: запуск последней печати(с момента включения OctoPrint)

жёлтая: переключение температуры экструдера между 0, 210 и 235 С

красная: температуры столика между 0,80 и 95 С

Печать приостановлена:

зелёная: возобновление печати

жёлтая: 1 нажатие - отпуск двигателей и подъём на 10 мм. 2 - перезапуск печати

красная: отмена печати

При печати:

зелёная: пауза

жёлтая: пауза

красная: отмена печати

В режиме ожидания можно быстро включить/выключить экструдер и столик. Задать стандартные температуры можно в 8 строчке (экструдер) и 9 строчке (столик). Температура будет переключатся по кругу (0->210->235->0).

А загружаем скрипт на малинку. Для этого нам нужен SSH-клиент и FTP-клиент. Покажу на примере Bitvise SSH Client, в нём оба этих клиента уже встроены. При запуске у нас сразу появляется окошко авторизации:
Делаем OctoPrint более хардварным или управляем кнопками
Вводим IP адрес малинки в поле Host, порт по-умолчанию 22. Справа username (стандартный pi) и password (стандартный raspberry) и внизу нажимаем Login. Если всё прошло удачно, то должно появится окошко с консолью и окошко FTP-клиента:
Делаем OctoPrint более хардварным или управляем кнопками
В окне FTP копируем наш скрипт на флешку Raspberry Pi. Я положил в папку /home/pi/scripts. Переключаемся в окно команд. Сначала проверим, что у нас стоит python (по-умолчанию должен быть, но вдруг):
python -V
Должно быть что-то вроде
Python 2.7.9
Если python не установлен, то можно использовать команды:
sudo apt-get update

sudo apt-get install python-pip
Затем запускаем наш скрипт
cd /home/pi/scripts

python but_3_control.py
Должна появиться надпись started. Остаётся только подключить кнопки:
Делаем OctoPrint более хардварным или управляем кнопками
(Отметил цветами какую кнопку в какой выход подключать, чёрный - питание кнопок).

На этом всё, можно попробовать работу кнопок в деле. Остаётся маленький штрих - добавить запуск нашего скрипта в автозапуск. Останавливаем наш скрипт CTRL+C и вызываем команду:
crontab -e
В открывшемся файле в конец добавляем
@reboot python but_3_control.py

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

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

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

14
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама