GPIO означает ввод/вывод общего назначения. GPIO — это тип контакта на интегральной схеме, который настраивается и управляется с помощью программного обеспечения для получения входного или выходного сигнала. И это причина, которая делает RaspberryPi таким особенным. Это означает, что вы можете использовать RaspberryPi для своих встроенных проектов, а учитывая вычислительную мощность на борту и простоту использования, эти проекты становятся очень увлекательными.

Ниже приведена схема диаграммы с описанием выводов, взятая отсюда. Мы будем использовать эту диаграмму для справки в этом уроке.

Вы можете ссылаться на контакты либо по их названиям на плате (написанным внутри желтых кружков), либо по именам, данным производителем процессора Broadcom (указаны рядом с желтыми кружками). В этом руководстве мы будем ссылаться на контакты, используя их имена Broadcom.

Я буду использовать Python, чтобы научить управлять этими выводами. Сначала давайте импортируем соответствующие библиотеки и установим режим Boradcom, чтобы ссылаться на контакты, используя их широковещательные имена.

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # set the mode to broadcomm
GPIO.cleanup()

Чтобы использовать любой контакт GPIO, вы должны сначала объявить его входным или выходным контактом. Объявим контакт 17 выходным, а контакт 22 входным.

#choose the GPIO pin for output
out = 17 # pin 11
# declare selected pin as output pin
GPIO.setup(out, GPIO.OUT)
#choose the GPIO pin for input
input = 22 # pin15
# declare selected pin as input pin
GPIO.setup(input, GPIO.IN)

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

# Output a signal
GPIO.output(out, GPIO.HIGH) # set a high signal
GPIO.output(out, GPIO.LOW) # set a low signal
# Receive a signal
inp_signal = GPIO.input(input)

И вот как вы читаете/записываете сигнал на свои контакты GPIO. Теперь давайте воспользуемся тем, что мы только что узнали, для записи данных на выходной контакт и использования их для управления светодиодами. В следующем уроке я покажу вам пример того, как считывать данные с входного контакта и использовать их для считывания расстояния с датчика расстояния.

Сначала давайте взглянем на аппаратную настройку, которая вам потребуется. Вам понадобятся следующие предметы, кроме RaspberryPi:

  1. Макет
  2. Женские и мужские перемычки
  3. светодиоды
  4. 1 кОм резистор

Вы должны выполнить соединения, как показано на рис. 2. Мы собираемся использовать контакты 17 и 22 GPIO для отправки выходного сигнала. Подключите положительный конец светодиодов к контактам 17 и 22 GPIO, а другой конец подключите к резистору 1k. Подключите другой конец резистора к земле, чтобы замкнуть цепь. Обратите внимание, что вы можете использовать любые контакты GPIO, а не обязательно тот, который использовал я, а затем внести соответствующие изменения в свой код.

Ниже приведен код для мигания светодиодов поочередно:

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # set the mode to broadcomm
GPIO.cleanup()
#choose the GPIO pin
red = 17 # pin 11
yellow = 22 # pin15
# declare selected pins as output pins
GPIO.setup(red, GPIO.OUT)
GPIO.setup(yellow, GPIO.OUT)
sleep_time = .2
for i in range(15):
  GPIO.output(red, GPIO.HIGH)
  GPIO.output(yellow, GPIO.LOW)
  time.sleep(sleep_time)
  GPIO.output(red, GPIO.LOW)
  GPIO.output(yellow, GPIO.HIGH)
  time.sleep(sleep_time)
GPIO.cleanup()

Надеюсь, вам понравился урок. Пожалуйста, не стесняйтесь комментировать и задавать вопросы или вносить некоторые предложения. Большое спасибо Sentdex за его серию видеороликов о RaspberryPi, которые я использовал здесь в качестве основы. Проверьте его канал. Также я использовал следующий сайт для создания принципиальной схемы.