В прошлом эксперименте мы познакомились с обозначением выводов платы Raspberry Pi, которые называются GPIO. Там же мы научились включать и выключать светодиод.
В этом же эксперименте мы добавим кнопку и будем управлять ею светодиодом.
В прошлом эксперименте мы познакомились с обозначением выводов платы Raspberry Pi, которые называются GPIO. Там же мы научились включать и выключать светодиод.
В этом же эксперименте мы добавим кнопку и будем управлять ею светодиодом.
GPIO Zero - это новая библиотека Python, которая обеспечивает простой интерфейс для работы с GPIO. Он устанавливается по умолчанию в Raspbian.
1. Откройте IDLE в главном меню (Menu> Programming> Python 3 (IDLE).
2. Вы можете включать и выключать светодиоды, вводя команды непосредственно в окно интерпретатора Python (оболочки Python). Давайте сделаем это, импортируя библиотеку GPIO Zero. Вам также нужно указать Pi, какой вывод GPIO вы используете - в этом случае используется 17-й контакт. Наберите код:
from gpiozero import LED
led = LED(17)
Нажмите Enter.
3. Чтобы включить светодиодный индикатор, введите следующий код и нажмите Enter:
led.on()
4. Отключить светодиод можно набрав:
led.off()
5. Теперь подключите кнопку к контакту GPIO2 и GND, как показано на рисунке:
.
6. Создайте новый файл File > New file.
6. Сохраните файл File > Save под именем gpio_button.py.
7. На этот раз нам понадобится класс Button, и вам надо указать, что кнопка находится на контакте 2. Напишите следующий код в файле:
from gpiozero import Button
button = Button(2)
8. Теперь вы можете заставить вашу программу что-то делать, когда вы нажимаете кнопку. Добавьте следующие строки:
button.wait_for_press()
print('You pushed me')
9. Сохраните с помощью Ctrl + S и запустите код, нажав на F5.
10. После нажатия кнопки появится ваш текст.
Ручное управление светодиодом
Теперь вы можете комбинировать две написанные вами программы, чтобы управлять светодиодом с помощью кнопки.
1. Создайте новый файл, нажав File > New File.
2. Сохраните новый файл, нажав File > Save. Сохраните файл как gpio_control.py.
3. Теперь напишите следующий код:
from gpiozero import LED, Button
from time import sleep
led = LED(17)
button = Button(2)
button.wait_for_press()
led.on()
sleep(3)
led.off()
4. Сохраните и запустите вашу программу. Когда вы будете нажимать на кнопку, светодиод должен загореться на три секунды.
Делаем выключатель
1. Переделаем программу так, чтобы первое нажатие кнопки включало светодиод, а следующее нажатие выключало его:
from gpiozero import LED, Button
from time import sleep
led = LED(17)
button = Button(2)
while True:
button.wait_for_press()
led.toggle()
Метод led.toggle() переключает светодиод из состояния «включено» в положение «выключено» или «выключено» в положение «включено». Так как это происходит в цикле, светодиод включается и выключается при каждом нажатии кнопки.
2. Можно включать светодиодный индикатор, только когда кнопка удерживается нажатой. С GPIO Zero это легко. Существует два метода класса Button, которые называются when_pressed и when_released. Они не блокируют поток программы.
3. Переделаем код следующим образом:
from gpiozero import LED, Button
from signal import pause
led = LED(17)
button = Button(2)
button.when_pressed = led.on
button.when_released = led.off
pause()
4. Сохраните и запустите программу. Теперь, когда кнопка нажата, загорится светодиод. Когда кнопка будет отпущена, он снова выключится.
Переведено с Raspberry Fundation.
Содержание методички