Делаем OctoPrint более хардварным или управляем кнопками
Давно пользуюсь OctoPrint'ом на малинке (Raspberry Pi), которым приходится управлять с компьютера/телефона. Но проблема в том, что иногда лень их искать/включать или нужно срочно остановить печать. С этой целью было придумано использование кнопок, которые подключены к GPIO-выходам малинки. Так как в интерфейсе OctoPrint в основном представлены 3 кнопки типа: начать/продолжить, пауза, стоп, решено исполнить с помощью трёх кнопок соотв. цветов: красный. жёлтый и зелёный. Заказывал здесь (https://www.chipdip.ru/product/pbs14b-green), надеюсь за рекламу не сочтётся. Под них и был начерчен корпус:Сразу была предусмотрена крышка, которая не даёт случайно нажать на кнопки:После печати и подключения кнопки получаем вот такого маленького монстра:Переходим к обработке нажатий на эти самые кнопки. Для этого можно использовать 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, в нём оба этих клиента уже встроены. При запуске у нас сразу появляется окошко авторизации:Вводим IP адрес малинки в поле Host, порт по-умолчанию 22. Справа username (стандартный pi) и password (стандартный raspberry) и внизу нажимаем Login. Если всё прошло удачно, то должно появится окошко с консолью и окошко FTP-клиента:В окне 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Должна появиться надпись started. Остаётся только подключить кнопки:(Отметил цветами какую кнопку в какой выход подключать, чёрный - питание кнопок).
python but_3_control.py
На этом всё, можно попробовать работу кнопок в деле. Остаётся маленький штрих - добавить запуск нашего скрипта в автозапуск. Останавливаем наш скрипт CTRL+C и вызываем команду:
crontab -eВ открывшемся файле в конец добавляем
@reboot python but_3_control.py
Еще больше интересных статей
Сушилка на 4 катушки своими руками
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
duet web control не регулируются обороты вентилятора обдува детали на BTT SKR V1.4
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
принтер у меня самодельно переделанный из ки...
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Я никогда ещё не спорил на фор...
P=U*U/R тут с вами я согласен,...
P=U*U/RВижу "блестящие" знания...
Всем добра! Подскажите п...
Столкнулся с проблемой. Не зна...
Не подскажите куда подключить...
Посоветуйте хотенд с гладким т...