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

Octoprint. Плюшки. Часть 1. Питание принтера.

vasyna
Идет загрузка
Загрузка
18.02.2017
28544
65
Техничка

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

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

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

49
Я давно перешел на окту, рад. А еще раньше я пересел (точнее вынужденная мера) со сток блока питания на 'православный' ATX блок питания. И вот дюже меня бесил момент включения/выключения. Ибо по первой у меня как и у всех был на коротко закорочен зеленый и черный провод. Т.е. принудительное включение. Со временем я осмелился на GPIO, но бесило лишнее тыканье в меню (спасибо плагину System Command Editor, я так пол года рулил блоком питания), а вот буквально на днях я вообще автоматизировал полностью процесс работы блока питания.

Начнем с комплектующих:

1. OrangePi * (любая версия с GPIO нам подойдет, но в основном у людей или One или PC) с установленным в данном случае Armbian + Octoprint

2. 'Любой' PNP транзистор. В моем случае это какой-то 945 выпаянный с платы управления радиомашинкой самой дешевой (в свободное время переделываю машинки на 2.4ГГц управление со всеми плюшками, по сему такого добра валом). По пинам он в принципе похоже с этим http://paratran.com/2paratranKR.php?tr=120

3. Резистор 100Ом (опять же с той платы, мощность значения не имеет)

4. ATX блок питания

5. Паяльник, припой, канифоль какая-нибудь, немного проводков (я резал с того же БП)

6. Капельку интернета.

Поехали. Для начала любимое - софтварная часть.

Заходим по ssh на нашу апельсину (для малины WiringOP надо менять на WiringPI, ну и гит репозитарий другой).
  • cd /home
  • git clone https://github.com/zhaolei/WiringOP.git -b h3
  • cd WiringOP
  • chmod +x ./build
  • sudo ./build
  • sudo nano /etc/init.d/octoprint

В do_start добавляем строчку 'gpio mode 24 OUTPUT'

т.е. на выходе получаем:

do_start()

{

# Return

# 0 if daemon has been started

# 1 if daemon was already running

# 2 if daemon could not be started

is_alive $PIDFILE

RETVAL='$?'

if [ $RETVAL != 0 ]; then

start-stop-daemon --start --background --quiet --pidfile $PIDFILE --make-pidfile

--exec $DAEMON --chuid $OCTOPRINT_USER --user $OCTOPRINT_USER --umask $UMASK --nicelevel=$NICELEVEL

-- $DAEMON_ARGS

gpio mode 24 OUTPUT

RETVAL='$?'

fi

}

Этим мы принудительно переведем ножку в режим выхода.
Octoprint. Плюшки. Часть 1. Питание принтера.
Закрываем, сохраняем.

Объясню почему 24. Это нога нам 100% не пригодится ни сегодня, ни завтра. По этому мы ее и используем. До этого юзал 11 ногу, она тоже не сильно нужна, но в дальнейшем мы будем прикручивать экран (тизер) и нам уже не стоит будет возвращаться сюда.
  • Закрываем терминал. И идем в WebGUI.
  • Settings - Plugin Manager (я надеюсь он у вас уже стоит, если нет, то читаем как установить тут https://github.com/foosel/OctoPrint) - Get More - PSU

Octoprint. Плюшки. Часть 1. Питание принтера.
  • Устанавливаем плагин 'PSU Control'. Соглашаемся на рестарт окты.
  • Settings - PSU Control

Octoprint. Плюшки. Часть 1. Питание принтера.
  • Switching Method - System Command
  • On System Command - gpio write 24 1
  • Off System Command - gpio write 24 0
  • Если не стоят галочки на 'Automatically turn PSU ON' и 'Automatically turn PSU OFF when idle' ставим.
  • SAVE

Ну в общем софтварно мы готовы. Поехали железо. Начнем с азов. В идеале ATX блок питания может рапортовать о том что он готов к включению и нас не ждет 'бум да гаса разбейха ли барбосса' (как-то так это звучало в Звездных войнах :) ). По идее нужно брать этот аспект во внимание, но... опустим его. Еще PSU control может 'палить' включен ли блок питания, но опять же я ранее пробовал при печати принудительно включать пин (gpio write 24 1) и ни чего не происходило, ну в смысле печать не приостанавливалась, смещения слове не было. Следовательно мы и этот пункт опустим.

Дальше питание самой апельсины. Ей надо 5В2А по даташиту, но лабораторник даже с нагрузкой на проц почти на 100%, 3.5'' экраном с подсветкой и белым экраном, поднятой сетью и подключенной MKS Gen 1.2 (которая не запитана на данный момент от 12В) показал потребление в пике 1А. Так что... у блока питания есть дежурное питание 5В до 2А. Т.е. блок питания включен в сеть, тумблер включен, power_on подтянут к + питания (т.е. висит в воздухе) и мы можем не включая всю эту 'дуру' получить 5В2А, что более чем. Это у нас фиолетовый провод. Вот с него то мы и берем питания для нашей апельсинки. Т.е. по факту она все время будет включена ( Что нам и на руку. Лично я сидя на работе и отрисовав очередной корпус не замедлительно отправляю его на печать). Даже если добавить туда вебку и вентилятор на 5В для охлаждения апельсины, то все равно запаса у нас ВАГОН!

И так, непосредственно подключение:
Octoprint. Плюшки. Часть 1. Питание принтера.
Распиновка GPIO OrangePI:
Octoprint. Плюшки. Часть 1. Питание принтера.
Где первый пин на гребенке на плате отмечен белой стрелочкой. Вообще указанный нами 24 пин на самом деле на плате далеко не 24. Он на самом деле 35. Именно на гребенке. Но для WiringPI именно пин 24. Т.е. подключаем '24 pin GPIO' к 35 пину на гребенке. 'Black wire from ATX' - к любому черном проводу и 'Green wire from ATX' к зеленому проводу блока питания. Т.е. взяв подобный моему транзистор скосой стороной к себе, слева направо подключаем так:

1. Черный провод блока питания

2. Зеленый провод блока питания

3. На 35 (физически) пин гребенки GPIO (со стороны белой стрелочки 3-й снизу)
Octoprint. Плюшки. Часть 1. Питание принтера.
Но не забываем, нам надо обязательно ограничить ток на базу транзистора. 100Ом при 3.3В более чем. Т.е. между 3 пином транзистора и ножкой апельсины чудном образом должен оказаться резистор ;). Все это в термоусадку и... и как-то решите вопрос подключения провода от резистора к апельсине. Тут каждый сам горазд, но я сделал съемным, ибо бывает надо.

На выходе получаем вот такую конструкцию:
Octoprint. Плюшки. Часть 1. Питание принтера.
Описываю порядок действия:

1. Блок питания в сети и тумблер его включен, но сам блок питания находится в спящем режиме и +12В у нас 'нет'

2. Апельсина загружена

3. Заходим в WebGUI и делаем скажем 'set home'. Блок питания автоматически включается, у нас появляется 12В, моторы поехали и мы счастливы.

4. После печати по остыванию хотэнда до указанной температуры в 'Wait For Temperature' либо если температура упала раньше/была меньше чем указанное в 'Idle Timeout' (все это в octoprint - settings - PSU control) время за которое не поступит любая gcode команда за исключением указанных в 'Ignore Commands' питание принтера будет выключено. Точнее будет выполнена команда 'gpio write 24 0', которая разомкнет наш электронный ключ и блок питания обесточит все линии кроме дежурки. Т.е. даже в термокамере мы будет убеждены что хотэнд остыл и скажем между печатью 'по месту' принтер выключаться не будет.

PS. Все это справедливо для заранее целого и качественного блока питания. Всякие дешевые корпусные блоки питания могут и 500мА на дежурке не держать. И опять же пренебрежение тригера готовности блока питания...

PSS. Опять же старался разжевать чтобы не прикладывать велико ума... а просто взять и пользоваться. По сему ребята волокущие можете спокойно пройти мимо, вы и не на такое способны, мы в вас не сомневаемся.

PSSS. Можно настроить на определенные команды в GCODE и добавить их в слайсинг, но как по мне это не удобно.

PSSSS. Принудительно включить питание с помощью данного плагина можно только подвигав любой осью, либо включив нагрев и прочее. Либо же в System Command Editor добавить 2 пункта меню:

Name - Printer power ON

Action -printer-power-on

command - gpio write 24 1

и

Name - Printer power OFF

Action - printer-power-off

command - gpio write 24 0

Use Confirmation - Ставим галочку чтобы при выключении был запрос

Message - Power Supply is currently ON.

Т.е. мы можем принудительно через System - Printer power ON включить питание или через Printer power OFF выключить.

PSSSSS. Если питание активировано плагином PSU, то сверху появится значок молнии. Если он зеленый, значит питание включено, если серый, то выключено. По нажатию на него можно так же включать и выключать питание:
Octoprint. Плюшки. Часть 1. Питание принтера.
Octoprint. Плюшки. Часть 1. Питание принтера.
За сим откланиваюсь.

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

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

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

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