Контакты GPIO2 и GPIO3 имеют фиксированные подтягивающие резисторы.
При включении контакты устанавливаются в режим входа, контакты 0-8 подтягиваются к 3V3, контакты 9-27 подтягиваются к 0V.
ПРИМЕЧАНИЕ. Используйте запятую для разделения аргументов в поле CMD. Пример: mpc, load, My Playlist
mpc,prev
mpc,next
mpc,toggle
mpc,volume,+5
mpc,volume,-5
poweroff
Поместите команды в сценарий BASH и назначьте сценарий кнопке
1. Создайте myscript.sh в своем домашнем каталоге /home/pi/
Пример:
#!/bin/bash
mpc clear
mpc load "my_playlist"
mpc play
2. Отметьте его как исполняемый
chmod +x ~/myscript.sh
используйте абсолютный путь вместо ~/
/home/pi/myscript.sh
проверяю кнопки через "gpio readall"
Чтобы каждый раз не запускать команду в ожидании наблюдаемых изменений, можно применить утилиту "watch", которая будет обновлять вывод команды "gpio readall" с интервалом в 1 секунду (параметр "-n 1"):
sudo watch -n 1 "gpio readall"
1. Отключите обработчик кнопки GPIO в конфигурации системы
2. Откройте терминал SSH
3. Запустите его из командной строки
Код:
sudo /var/www/command/gpio-buttons.py
4. Нажмите кнопку
5. Запишите все распечатанные ошибки или журнал отладки.
Схема подключения кнопки к GPIO9-27 (нажатие кнопки - смена уровня с высокого на низкий) с дополнительным конденсатором для подавления дребезга контактов. Взято с ph0en1x.net
Пробовал подключать кнопку на GPIO26 напрямую без резисторов, происходило самопроизвольное срабатывание. Собрал по этой схеме - кнопка стала работать как надо.
Резистор R1 можно установить на сопротивление 10 КОм - 20 КОм, а для резистора R2 на 600 Ом - 2 КОм, все должно уверенно работать.
Плюсы такого включения:
БЕЗОПАСНОСТЬ - при любых экспериментах, в любой, пусть даже ошибочной конфигурации пина GPIO, порту ничего не грозит;
НАДЕЖНОСТЬ - такая схема обеспечивает надежную установку каждого из состояний (высокий и низкий уровни) в любой момент работы малинки и ее программ (мы не используем управляемые программно, внутренние подтягивающие резисторы).
Минусы:
НЕБОЛЬШАЯ ИЗБЫТОЧНОСТЬ - придется "разориться" на 2 маломощных резистора для каждой из кнопок/переключателей.
Все дополнительные кнопки подключаются по такой же схеме - с двумя резисторами подключенными к линиям GND и 3.3V.
Вот схема подключения трех кнопок к трем GPIO-пинам в Raspberry Pi:
Сопротивления резисторов здесь оптимальные: 1кОм и 20кОм.
Схема подключения кнопки к GPIO (нажатие кнопки - смена уровня с низкого на высокий) с дополнительным конденсатором для подавления дребезга контактов.
Никогда не следует «выдергивать» шнур питания из Pi, так как это может привести к серьезному повреждению данных (а в некоторых случаях и к физическому повреждению SD-карты).
Примечание: когда мы «выключаем» Pi, он переводит его в состояние остановки, которое по-прежнему потребляет очень небольшое количество энергии. Это похоже на то, как работают все современные компьютеры. В этом руководстве мы рассмотрим процесс добавления кнопки питания, которая будет останавливать и выводить Pi из остановленного состояния. Кроме того, после того, как ваш Pi отключился, вы можете безопасно отключить источник питания (если захотите), не беспокоясь о повреждении данных.
Для вывода RPI из состояния остановки замыкаем контакты 5 и 6 (GPIO3 и GND) вместе.
Простой способ проверить это - выключить Pi с помощью sudo shutdown -h now и подключить контакты 5 и 6 кабелем «мама-мама». Вам нужно только на мгновение замкнуть их. Вы увидите, что Pi «проснулся».
Используйте сценарий установки - оригинал статьи
Самый простой способ установить необходимые сценарии - клонировать репозиторий кнопки питания и запустить сценарий установки.
SSH в свой Pi, установите git (если это еще не сделано), а затем запустите:
git clone https://github.com/Howchoo/pi-power-button.git
./pi-power-button/script/install
Применил этот способ "выключения / включения" у себя в музыкальном центре - работает отлично.