Построение контроллеров на Raspberry Pi #1: обработка нажатия кнопки

Добавлено 1 ноября 2016 в 19:40

Хотите построить контроллер на 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.

Программируемая кнопка не требует каких-либо дополнительных электронных компонентов, и схему довольно легко собрать. Перечень элементов для программируемой кнопки показан ниже.

Что нам понадобится

Установка библиотеки 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.GPIO
Установка библиотеки RPi.GPIO

Как только сборка завершится, RPi будет готов к чтению состояния кнопки.

Почключение кнопки к Raspberry Pi

Подключение кнопки к RPi выполняется довольно просто. Важная вещь, о которой стоит помнить, это то, что выводы GPIO Raspberry Pi работают с постоянным напряжением 3,3 вольта. Подача на них напряжений более 3,3 В может вывести RPi из строя. Электрическая схема подключения кнопки показана на рисунке ниже.

Подключение кнопки к Raspberry Pi
Подключение кнопки к Raspberry Pi

Дополнительно ниже показана принципиальная схема подключения.

Принципиальная схема подключения кнопки к Raspberry Pi
Принципиальная схема подключения кнопки к Raspberry Pi

Несмотря на то, что схема подключения к 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», показанное на экране монитора. Поздравляем с созданием программируемой кнопки!

Проверка скрипта обработчика нажатия кнопки на Raspberry Pi
Проверка скрипта обработчика нажатия кнопки на Raspberry Pi

Также вы можете посмотреть видео, приведенное ниже.

Кнопку можно легко запрограммировать для вывода сообщений и откликов на нажатие. Попробуйте изменить сообщение «Button Press» на отображение вашего имени или любого другого слова при нажатии кнопки. В следующей статье проекта мы рассмотрим, как запрограммировать Raspberry Pi для включения и выключения светодиода вашей программируемой кнопкой.


На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.


  • 2017-07-11Bagunda

    apt-get install python-dev я сделал отдельной командой.
    А apt-get install python~rpi.gpio не работает

  • 2017-07-09antzol

    apt-get install python-dev python~rpi.gpio
    забыли python-dev

  • 2017-07-08Bagunda

    apt-get install python~rpi.gpio
    выдаёт ошибку
    Unable to locate package python~rpi.gpio
    Couldn't find any package by regex 'python~rpi.gpio'

  • 2017-02-08radioprog

    Выводу ничего не будет, так как подключен встроенный подтягивающий резистор.
    GPIO.setup(18, GPIO.IN,pull_up_down=GPIO.PUD_UP)

  • 2017-02-07Камиль Казарин

    Так нельзя кнопку подключать. Ошибка в коде и конец пину.

Сообщить об ошибке