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

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

eta4ever
Идет загрузка
Загрузка
20.03.2017
15768
22
Техничка

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

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

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

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

В целом, если копнуть, существуют руководства по управлению питанием через OctoPrint, но они либо для Raspberry, либо без некоторых важных подробностей. Так что, вашему вниманию предлагается пошаговый гайд по дерганью ногой Orange Pi One под управлением Armbian.
Апельсиновый осьминог: дергаем питание ногой
Внимание: описанные действия предполагают вмешательства в то место, где 220В. Это опасно, соблюдайте ТБ. Перед монтажом все обесточить, демонов заговорить.
Железо
Апельсиновый осьминог: дергаем питание ногой
Апельсиновый осьминог: дергаем питание ногой
Управлять будем обычным китайским 360-ваттным 'кирпичом', по входу 220В. Нам понадобится твердотельное реле типа DA (вход 3-32В постоянного тока, коммутация 24-480В переменного). Можно использовать еще более дешевый вариант - симисторный модуль. Подключение элементарно: 'рубим' один из проводов на входе БП и ставим в разрыв реле. А управляющие контакты цепляем к апельсинке. Я использовал PA20 и GND, они находятся рядышком и с краю, сложно ошибиться.
Апельсиновый осьминог: дергаем питание ногой
Софт

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

cd ~

sudo bin2fex /boot/script.bin script.fex

sudo nano script.fex
Апельсиновый осьминог: дергаем питание ногой
Ищем раздел [gpio_para], и прописываем там одну используемую ногу.

Ctrl+o, Enter, Ctrl+x

sudo fex2bin script.fex script.bin

sudo mv script.bin /boot/


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

sudo nano /etc/modules
Апельсиновый осьминог: дергаем питание ногой
В конец дописываем 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
Апельсиновый осьминог: дергаем питание ногой
Единица - включение, 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*.*''
Апельсиновый осьминог: дергаем питание ногой
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
Апельсиновый осьминог: дергаем питание ногой
Прописываем два действия в секцию system, не забываем о том, что в этом конфиге надо строжайше соблюдать все отступы. Сохраняем (Ctrl+o, Enter, Ctrl+x), перезапускаем OctoPrint (sudo service octoprint restart, или через веб-интерфейс). После этого в меню появляются два пункта, ответственные за дерганье ногой Orange Pi.

Собственно, готово дело. Можно пользоваться.

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

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

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

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