Апельсиновый осьминог: дергаем питание ногой

Подписаться на 3Dtoday
eta4ever
Идет загрузка
Загрузка
20.03.17
2427
11
печатает на RepRap
Техничка
14
Статья относится к принтерам:
Ультумбочка
PREVIEW

Процесс доработки ультумбочки продолжается, одним из шагов стала интеграция Orange Pi One в корпус, подключение напрямую по UART к SBase и организация управления питанием. Вот о питании стоит рассказать отдельно. Ибо довольно-таки удобно и полезно.

В целом, если копнуть, существуют руководства по управлению питанием через OctoPrint, но они либо для Raspberry, либо без некоторых важных подробностей. Так что, вашему вниманию предлагается пошаговый гайд по дерганью ногой Orange Pi One под управлением Armbian.
fd48349ba632309367ac9500de213121.jpg

Внимание: описанные действия предполагают вмешательства в то место, где 220В. Это опасно, соблюдайте ТБ. Перед монтажом все обесточить, демонов заговорить.

Железо
b303a04f7f5eecef2296bd5b76ce4ec9.jpg
2b3e70a29c4da835be84996c06e982b5.png

Управлять будем обычным китайским 360-ваттным "кирпичом", по входу 220В. Нам понадобится твердотельное реле типа DA (вход 3-32В постоянного тока, коммутация 24-480В переменного). Можно использовать еще более дешевый вариант - симисторный модуль. Подключение элементарно: "рубим" один из проводов на входе БП и ставим в разрыв реле. А управляющие контакты цепляем к апельсинке. Я использовал PA20 и GND, они находятся рядышком и с краю, сложно ошибиться.
a56f3f2b4b66af771af686df680e5801.jpg

Софт

Для начала, нужно активировать GPIO. По умолчанию в Armbian для Orange Pi они отключены. Редактируем загрузочный скрипт...

cd ~
sudo bin2fex /boot/script.bin script.fex
sudo nano script.fex
2c00100d014d4fea0e353e29584b46da.PNG

Ищем раздел [gpio_para], и прописываем там одну используемую ногу.

Ctrl+o, Enter, Ctrl+x

sudo fex2bin script.fex script.bin
sudo mv script.bin /boot/


Теперь нужно добавить в автозагрузку модуль ядра.

sudo nano /etc/modules
f8089bfa0de6455d8938e239ce3dc995.PNG

В конец дописываем gpio-sunxi, сохраняем (Ctrl+o, Enter, Ctrl+x).

Перезагружаем апельсину (sudo reboot), после загрузки в /sys/class/gpio_sw должно появиться PA20. На этом этапе уже можно проверить управление.

sudo su
cd /sys/class/gpio_sw/PA20
echo 1 > data
echo 0 > data
ff468cca7689bf478632d25ab7383e54.PNG

Единица - включение, 0 - выключение. Уже должно работать. По умолчанию доступ к GPIO только у root, это нас не устраивает. Более того, обычным chmod тут не поможешь, после перезагрузки права снова выставляются в root:root. Поэтому делаем так: создаем группу gpio, добавляем в нее пользователя, создаем правило udev.

sudo groupadd gpio
sudo usermod -G -a gpio opi

sudo nano /etc/udev/rules.d/99-gpio.rules


Там прописываем одну строчку:

SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c 'chown -R root:gpio /sys/devices/platform/gpio*.*'"
7db609ef34810fc80f4c03ac565b2d67.PNG

Ctrl+o, Enter, Ctrl+x

Перезагружаемся (sudo reboot), проверяем.

cd /sys/class/gpio_sw/PA20
echo 1 > data
echo 0 > data


Далее, осталось прикрутить это дело к OctoPrint.

cd ~/.octoprint
nano config.yaml
634fab91d1574e1d37b3cd52c017ad19.PNG

Прописываем два действия в секцию system, не забываем о том, что в этом конфиге надо строжайше соблюдать все отступы. Сохраняем (Ctrl+o, Enter, Ctrl+x), перезапускаем OctoPrint (sudo service octoprint restart, или через веб-интерфейс). После этого в меню появляются два пункта, ответственные за дерганье ногой Orange Pi.

Собственно, готово дело. Можно пользоваться.
Подписаться на 3Dtoday
14
Комментарии к статье

Комментарии

20 Мар 17:58
2
Я думаю стоит добавить упоминание о плагине PSU , который делает ножкодрыг автоматически и просто анреально облегчает работу. А еще есть плагин автостарта печати только загруженного кода )
И на счет config.yaml - System Command Editor решает все проблемы с табуляцией.
20 Мар 18:04
3
Да, вполне, по обоим пунктам. Указанное - читал и одобряю. Чтобы не повторяться, сделал ручками, через gpio-sunxi, отдельно обратив внимание на задействование GPIO в script.bin и права.
20 Мар 18:13
0
Я не отрицаю. Тоже дельное решение. Я просто слышал что если будет "тотальный" apt-get distrib-upgrade, то script.bin затирается. Во всяком случае конфиги hdmi в последний раз у меня потерлись.
20 Мар 18:21
0
Так а WiringOP без этого работает, я чего-то недопонимаю?
20 Мар 18:28
1
Да. Там когда мы стартуем демон окты добавляем gpio mode 24 OUTPUT это принудительно грубо говоря заводит GPIO и инициализирует пин. По идее еще есть плагин системных команд. т.е. можно в самой окте добавить в плагине типа как gcode стартовый код. Но я не помню ни названия и желания не имею искать. И так устраивает. Ибо /etc/init.d/daemon_name был, есть и будет )
20 Мар 18:29
0
Ага. То есть, различия в подходе глубже, чем я думал. Ну, ок.
20 Мар 18:14
1
Для тех кто решит повторить это же с PSU:
  • On System Command - echo 1 > data
  • Off System Command - echo 0 > data
20 Мар 22:12
0
OctoPrint что это?

НЕ понял для чего сие делалось и какой итог?
20 Мар 22:26
1
OctoPrint - это ПО для удаленного управления печатью через веб-интерфейс. Как правило, запускается на мини-пк типа Raspberry Pi или Orange Pi (в данном случае). Сие делалось для того, чтобы управлять питанием принтера средствами Orange Pi и OctoPrint.

Там этого много.

fd7b3b62e6005b1f456716abceda58e8.jpeg
26 Мар 08:18
0
Вопрос такой. Раз ты отрубаешь принтеру 220, то как у тебя питается Апельсин? для него отдельный вход на 220 и отдельный БП? Я то думал запитать Orange Pi Zero от 24-х вольт с бп, там лишние выходы есть. А дальше черезмодуль понижения напряжениязапитывать OPi.
26 Мар 12:53
0
Да, у него отдельный адаптер. Сначала хотел завести от 12В и DC-DC, но в концепцию дерганья 220 это не укладывается.

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

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

Тест пластиков для 3D-печати на термоустойчивость от 60ºС до 100ºС

Проект КАТАПУЛЬТА Леонардо да Винчи

Новое обличие старой игрушки

Уфимские инженеры применяют 3D-печать в разработке двигателя для легкой авиации

Как я ZAV покупал

Дизайн: двуногого робота научили держать «двухмерное» равновесие с помощью механики.