г. Москва, ул. Международная, 15, офис 33 м.Римская,ПН-ПТ с 10.00 до 19.30 и СБ с 12.00 до 16.00
+7(985) 997-37-74
06.04.2017

Простые программы. Управление светодиодом кнопкой

Простые программы. Управление светодиодом кнопкой

 В прошлом эксперименте мы познакомились с обозначением выводов платы 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.

 

Содержание методички