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

Подписаться на 3Dtoday
arseniy899
Идет загрузка
Загрузка
05.05.18
3140
12
печатает на Anet A6
Техничка
14
Статья относится к принтерам:
Anet A6
Приветствую всех читателей.
Давно пользуюсь OctoPrint'ом на малинке (Raspberry Pi), которым приходится управлять с компьютера/телефона. Но проблема в том, что иногда лень их искать/включать или нужно срочно остановить печать. С этой целью было придумано использование кнопок, которые подключены к GPIO-выходам малинки. Так как в интерфейсе OctoPrint в основном представлены 3 кнопки типа: начать/продолжить, пауза, стоп, решено исполнить с помощью трёх кнопок соотв. цветов: красный. жёлтый и зелёный. Заказывал здесь (https://www.chipdip.ru/product/pbs14b-green), надеюсь за рекламу не сочтётся. Под них и был начерчен корпус:
52026a93f0f8c43a3668ba377887b5e0.jpg
Сразу была предусмотрена крышка, которая не даёт случайно нажать на кнопки:
c022becc664cb4588cbc87219a9edd9b.jpg
После печати и подключения кнопки получаем вот такого маленького монстра:
f6fbbc21b4eb32e47ce24fb2fabc1fe3.jpg
45dbda1eb6b9f17e92e69981e61d3d67.jpg
138df992c2a33774b5bd40122150f31f.jpg
Переходим к обработке нажатий на эти самые кнопки. Для этого можно использовать 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, в нём оба этих клиента уже встроены. При запуске у нас сразу появляется окошко авторизации:
5e3b01e3051f8ded3b8898f0db4f12d4.jpg
Вводим IP адрес малинки в поле Host, порт по-умолчанию 22. Справа username (стандартный pi) и password (стандартный raspberry) и внизу нажимаем Login. Если всё прошло удачно, то должно появится окошко с консолью и окошко FTP-клиента:
535bbc807d8a532baaf8579e4ba57003.jpg
В окне 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. Остаётся только подключить кнопки:
a5c2e9bca6ed510f525dea42066ff8c5.jpg
(Отметил цветами какую кнопку в какой выход подключать, чёрный - питание кнопок).
На этом всё, можно попробовать работу кнопок в деле. Остаётся маленький штрих - добавить запуск нашего скрипта в автозапуск. Останавливаем наш скрипт CTRL+C и вызываем команду:

crontab -e

В открывшемся файле в конец добавляем

@reboot python but_3_control.py

Подписаться на 3Dtoday
14
Комментарии к статье

Комментарии

05.05.18 в 09:22
0
Полезная статейка, тоже как-то хотел подобное реализовать.
05.05.18 в 10:37
1
05.05.18 в 10:42
1
Да, действительно. Как-то забыл про эту статью. Каюсь.
Но здесь ещё нужна ардуинка, ну и кнопки все-же нужно чем-то прикрыть
05.05.18 в 12:39
1
Зато берем дуню, 3.5'' сенсорный экранчик, в зависимости от опыта 10-20-30 и т.д. минут и у нас во первых стильно/модно/молодежно, во вторых очень и очень гибко. С неограниченным количеством кнопок. Жаль что у меня все сенсорные экранчики закончились, так бы набосал скетчик.
05.05.18 в 13:07
1
Ну с графическими экранами у меня как-то изначально не заладилось, да и экранчики эти недешевые, ибо они нужны со встроенным процессором.
Если опишите, как вы себе это представляете и как можно это сделать недорого, буду признателен. В других проектах пригодится
05.05.18 в 13:16
1
да и экранчики эти недешевые, ибо они нужны со встроенным процессором.
https://ru.aliexpress.com/af/ILI9341.html?d=y&origin=n&blanktest=0&jump=afs&SearchText=ILI9341&initiative_id=SB_20180505021338&isViewCP=y&catId=0
Не так уж и дорого. Если поискать, то 2.2-2.4 '' экраны вполне найти по 350-400 рублей с доставкой, 3.5'' будут уже 600-800.
В 2015 я 2 десятка по 300 рублей барл. Думал дорого. А сейчас смотрю... зря 2 десятка взял )
05.05.18 в 15:37
0
Зря - много или мало?
05.05.18 в 15:43
0
мало взял ) 50 рублей еще как-то, хотя конечно тоже, а вот 100 рублекй разница - это +30%... уже прилично.
05.05.18 в 14:34
0
Полностью поддерживаю поднятую и воплощённую ТС тематику!

Одно пожелание:

Продублировать "красную Кнопку" - вот такой, по питанию:

d2628bbed971c1c06b2bbdb1bce62ff7.jpg


чисто Из соображение электропожаробезопасности.

Как её пользоваться, надеюсь не надо объяснять.
05.05.18 в 15:43
1
ограничился таким вариантом: удлинитель с кнопкой. Выключает сразу все: и принтер, и малинку и освещение. А вообще, если про пожаробезопасность, то нужно бы поставить автоматические колбы тушения пожара, не дай бог что.
21bc0fd305a595823218fdb495108f08.jpg

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Тест на излом прутка PLA, ABS, SBS, HIPS и PET-G

Самодельный 3D принтер из CD/DVD приводов

Калибровка Anycubic Photon не по феншую

3D Print Expo. Впечатления новичка.

Форк Fribot Helix: H-Bot или CоreXY, все оси на MGN12, область печати 300х200х300

Дальневосточная русалка запустит аддитивное производство тренажеров для ягодиц