Построение контроллеров на Raspberry Pi #1: обработка нажатия кнопки
Хотите построить контроллер на Raspberry Pi? Что ж, начнем.
Raspberry Pi (RPi) – это мощный одноплатный компьютер, который позволяет создавать разнообразные программные проекты и электронные устройства. Это первая часть в серии статей о Raspberry Pi. Благодаря доступному разъему GPIO (входов/выходов общего назначения), к Raspberry Pi может быть подключен очень разнообразный ряд электрических, электронных и электромеханических компонентов и устройств. Кроме того, RPi поддерживает такие возможности, как аудио, HDMI, композитное видео, камера, USB и LCD устройства, используя стандартные разъемы, аудио и RCA разъемы. Подключение к сети легко осуществляется посредством стандартного Ethernet разъема. Чтобы помочь вам начать создавать какие-либо устройства, RPi использует язык программирования Python, который идет в составе стандартного дистрибутива операционной системы Debian, установленной на SD карту. В данном вступительном проекте по созданию электронных контроллеров на Raspberry Pi мы узнаем, как подключить в программе кнопку к Raspberry Pi, и как прочитать ее состояние, используя простой скрипт на Python.
Программируемая кнопка не требует каких-либо дополнительных электронных компонентов, и схему довольно легко собрать. Перечень элементов для программируемой кнопки показан ниже.
Что нам понадобится
- кнопка – 1 шт.;
- Raspberry Pi – 1 шт.;
- беспаечная макетная плата – 1 шт.;
- несколько перемычек.
Установка библиотеки RPi.GPIO
Чтобы прочитать состояние кнопки, необходимо установить на Raspberry Pi библиотеку RPi.GPIO. RPi.GPIO представляет собой программный модуль, который позволяет удобно использовать выводы GPIO Raspberry Pi для управления электронными устройствами. Чтобы установить библиотеку RPi.GPIO на Raspberry Pi откройте LXTerminal и наберите следующую команду:
pi@raspberrypi ~ $ sudo apt-get install python-dev python~rpi.gpio
После ввода команды установки вы увидите на мониторе ряд устанавливаемых файлов библиотеки RPi.GPIO, как показано ниже:
Как только сборка завершится, RPi будет готов к чтению состояния кнопки.
Почключение кнопки к Raspberry Pi
Подключение кнопки к RPi выполняется довольно просто. Важная вещь, о которой стоит помнить, это то, что выводы GPIO Raspberry Pi работают с постоянным напряжением 3,3 вольта. Подача на них напряжений более 3,3 В может вывести RPi из строя. Электрическая схема подключения кнопки показана на рисунке ниже.
Дополнительно ниже показана принципиальная схема подключения.
Несмотря на то, что схема подключения к RPi довольно проста, перепроверьте соединения перед программированием Raspberry Pi. Этот важный шаг гарантирует успех вашему проекту, когда скрипт на Python будет написан и запущен на RPi.
Скрипт на Python для программируемой кнопки
Следующий этап сборки проекта – это создание скрипта на питоне для чтения состояния кнопки, подключенной к GPIO выводу Raspberry Pi. Скрипт Phyton показан ниже:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN,pull_up_down=GPIO.PUD_UP)
while True:
inputValue = GPIO.input(18)
if (inputValue == False):
print("Button press ")
time.sleep(0.3)
Вы можете напечатать этот скрипт с помощью текстового редактора nano в терминале LXTerminal или в Python IDLE (Integrated Development and Learning Environment, интегрированная среда разработки и изучения Python). Сохраните скрипт, как pbbutton.py в каталоге home/pi на Raspberry Pi. Затем введите в LXTerminal следующую команду, чтобы запустить скрипт на RPi, как показано ниже:
pi@raspberrypi ~ $ sudo python pbbutton.py
Затем нажмите кнопку. Если скрипт напечатан правильно, вы увидите сообщение «button press», показанное на экране монитора. Поздравляем с созданием программируемой кнопки!
Также вы можете посмотреть видео, приведенное ниже.
Кнопку можно легко запрограммировать для вывода сообщений и откликов на нажатие. Попробуйте изменить сообщение «Button Press» на отображение вашего имени или любого другого слова при нажатии кнопки. В следующей статье проекта мы рассмотрим, как запрограммировать Raspberry Pi для включения и выключения светодиода вашей программируемой кнопкой.