Diy

2 способа добавить кнопку в ваш проект Raspberry Pi

2 способа добавить кнопку в ваш проект Raspberry Pi

Обучение использованию выводов GPIO на вашем Raspberry Pi открывает целый мир возможностей. Основные принципы, усвоенные в проектах для начинающих, прокладывают путь к полезным знаниям в области электроники и программирования DIY.

Этот туториал покажет вам два способа добавить кнопку в ваш проект Raspberry Pi. Кнопка будет использоваться для управления светодиодом. Письменные инструкции доступны под видео.

Тебе понадобится

Для начала убедитесь, что у вас есть следующие компоненты:

  • 1 х Raspberry Pi (подойдет любой, в этом уроке используется модель 3B)
  • 1 х кнопка
  • 1 х светодиод
  • 1 х 220 Ом резистор (более высокие значения в порядке, ваш светодиод будет просто тусклее)
  • 1 х макет
  • Подключить провода

После сбора у вас должны быть компоненты, которые выглядят примерно так:

Части, необходимые для учебника по кнопке Пи

Вам также понадобится SD-карта с установленной операционной системой Raspbian. Самый быстрый способ сделать это — использовать образ NOOBS (Новое ПО из коробки). Инструкции о том, как это сделать, доступны в этом видео:

Настройка схемы

Вы будете использовать контакты GPIO Pi для создания схемы, и если вы не знакомы с ними, поможет наше руководство по контактам Raspberry Pi GPIO . Схема здесь почти такая же, как в нашем предыдущем проекте Raspberry Pi LED , с добавлением кнопки, которую вы будете использовать сегодня.

Настройте вашу схему в соответствии с этой схемой:

Fritzing Diagram для учебника по кнопке Пи

  • Контакты 5 В и GND подключаются к силовым шинам платы.
  • Контакт 12 (GPIO 18) подключается к положительной ветви светодиода.
  • Одна ветвь резистора присоединяется к отрицательной ножке светодиода, а другая ветвь присоединяется к шине заземления макета.
  • Штифт 16 (GPIO 23) крепится к одной стороне кнопки, а другая сторона — к шине заземления макета.

Как только это настроено, вот как это должно выглядеть:

Raspberry Pi подключен к кнопке и светодиоду на макете.

Проверьте правильность схемы, а затем включите Raspberry Pi.

Метод 1: Библиотека RPi.GPIO

После загрузки Pi перейдите в меню и выберите « Программирование»> «Thonny Python IDE» . Откроется новый скрипт Python. Если вы абсолютно новичок в Python, это отличный язык для начинающих, и есть много замечательных мест, где можно больше узнать о Python после того, как вы закончите с этим руководством!

Тони Питон IDE

Начните с импорта библиотеки RPi.GPIO и установки режима платы.

import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) 

Теперь объявите переменные для номеров светодиодов и кнопок.

 ledPin = 12 buttonPin = 16 

Обратите внимание, что поскольку у нас установлен режим платы BOARD, мы используем номера выводов, а не номера GPIO. Если вас это смущает, распиновка диаграммы Raspberry Pi поможет вам разобраться в этом.

Моя Пи Пинаут

Настройка кнопки

Пришло время настроить выводы GPIO. Установите вывод светодиода на вывод, а вывод кнопки — на вход с подтягивающим резистором

 GPIO.setup(ledPin, GPIO.OUT) GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) 

Текст после GPIO.IN относится к внутреннему подтягивающему резистору Raspberry Pi. Вы должны включить это, чтобы получить чистое чтение с кнопки. Поскольку кнопка идет к выводу заземления, нам нужен подтягивающий резистор, чтобы удерживать входной вывод ВЫСОКИЙ, пока вы не нажмете его.

Прежде чем мы продолжим, давайте посмотрим на подтягивающие и понижающие резисторы.

Интервал: резисторы Pull Up / Pull Down

Когда вы настраиваете вывод GPIO для ввода, он считывает этот вывод, чтобы определить его состояние. В этой схеме вам необходимо прочитать, является ли вывод ВЫСОКИМ или НИЗКИМ, чтобы активировать светодиод при нажатии кнопки. Это было бы просто, если бы это были единственные состояния, которые может иметь булавка, но, к сожалению, существует третье состояние: FLOATING .

Плавающий штифт имеет значение между высоким и низким, что приводит к непредсказуемым действиям входа. Решающие проблемы решают резисторы с повышением / понижением.

Пример схемы подтягивающего резистора

Изображение выше представляет собой упрощенную схему кнопки и Raspberry Pi. Вывод GPIO подключается к земле через кнопку. Внутренний подтягивающий резистор присоединяет вывод GPIO к внутреннему источнику питания Pi. Этот ток течет, и штифт безопасно поднимается до ВЫСОКОГО.

Когда вы нажимаете кнопку, вывод GPIO подключается непосредственно к выводу заземления, а кнопка показывает низкий уровень.

Пример схемы понижающего резистора

Понижающие резисторы предназначены для подключения переключателя к выводу питания. На этот раз внутренний резистор прикрепляет вывод GPIO к земле, удерживая его в НИЗКОМ, пока вы не нажмете кнопку.

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

Давайте продолжим там, где остановились.

Цикл программы

Далее настройте цикл программы:

 while True: buttonState = GPIO.input(buttonPin) if buttonState == False: GPIO.output(ledPin, GPIO.HIGH) else: GPIO.output(ledPin, GPIO.LOW) 

Цикл while True постоянно выполняет код внутри него, пока мы не завершим программу. Каждый раз, когда он зацикливается, он обновляет buttonState , считывая ввод с buttonPin . Пока кнопка не нажата, она остается ВЫСОКОЙ .

Как только кнопка нажата, buttonState становится НИЗКИМ . Это запускает оператор if , поскольку False совпадает с LOW , и светодиод включается. Оператор else отключает светодиод, когда buttonPin не имеет значения False.

Сохраните и запустите ваш скрипт

Сохраните сценарий, нажав « Файл»> «Сохранить как» и выбрав имя файла. Вы можете запустить эскиз, нажав зеленую кнопку воспроизведения на панели инструментов Thonny.

Тонни Панель управления

Теперь нажмите кнопку, и ваш светодиод должен загореться! Нажмите красную кнопку Стоп в любое время, чтобы остановить программу

GIF-тестирование кнопки

Если у вас возникли трудности, тщательно проверьте код и схему на наличие ошибок и повторите попытку.

Способ 2: нулевая библиотека GPIO

Библиотека RPi.GPIO фантастическая, но в блоке есть новый ребенок. Нулевая библиотека GPIO была создана менеджером сообщества Raspberry Pi Беном Натталлом с целью сделать код проще и удобнее для чтения и записи.

Чтобы проверить новую библиотеку, откройте новый файл Thonny и импортируйте библиотеку.

 from gpiozero import LED, Button from signal import pause 

Вы заметите, что не импортировали всю библиотеку. Поскольку вы используете только светодиод и кнопку, вам требуются только те модули в сценарии. Мы также импортируем Pause из библиотеки сигналов, которая является библиотекой Python для управления событиями.

Настроить контакты гораздо проще с GPIO Zero:

 led = LED(18) button = Button(23) 

Поскольку библиотека GPIO Zero имеет модули для светодиода и кнопки, вам не нужно настраивать входы и выходы, как раньше. Вы заметите, что, хотя контакты не изменились, цифры здесь отличаются от приведенных выше. Это связано с тем, что GPIO Zero использует только номера контактов GPIO (также известные как номера Broadcom или BCM).

Остальная часть сценария состоит всего из трех строк:

 button.when_pressed = led.on button.when_released = led.off pause() 

Здесь вызов pause () просто останавливает выход сценария, когда он достигает дна. События двух кнопок запускаются всякий раз, когда кнопка нажата и отпущена. Сохраните и запустите ваш скрипт, и вы увидите тот же результат, что и раньше!

Два способа добавить кнопку в Raspberry Pi

Из двух способов настройки кнопки, метод GPIO Zero кажется самым простым. О библиотеке RPi.GPIO все еще стоит узнать, так как ее используют большинство начинающих проектов Raspberry Pi . Как бы ни был прост этот проект, знания могут быть использованы для разных целей.

Использование выводов GPIO — отличный способ выучить и изобрести свои собственные устройства, но это далеко не все, что вы можете сделать с Pi. Наше неофициальное руководство по Raspberry Pi неофициальное руководство неофициальное руководство наполнен творческими идеями и учебными пособиями, которые вы можете попробовать сами! В другом учебнике, подобном этому кнопку подключенной к Wi-Fi кнопку подключения

Похожие посты
Diy

Вещи, которые вы должны иметь в виду, прежде чем брать ноутбук или смартфон в службу технической поддержки

Diy

Как использовать Arduino для съемки красивой скоростной фотографии

DiyLinux

Пять великолепных расширений Raspberry Pi, которые делают его еще более полезным

Diy

Первые шаги с Arduino: пристальный взгляд на печатную плату и структуру программы