|
Основы контактов GPIO
Эти контакты предназначены для связи с другими схемами, такими как платы расширения, специальные схемы и многое другое. С помощью этих булавок можно сделать довольно крутые вещи. Об этих контактах нужно знать довольно много, и я настоятельно рекомендую вам следовать этому руководству, чтобы лучше понять, прежде чем начинать с ними играть.
Предупреждение: экспериментировать с GPIO рискованно и может привести к поломке Raspberry Pi. Необходимо знать ограничения мощности контактов GPIO, а также понимать, что вы подключаете. Теперь давайте приступим к этому руководству по Raspberry Pi GPIO, мы рассмотрим различные типы доступных контактов, как включить модули, что такое коммутационный комплект и, наконец, как построить и запрограммировать простую схему.
Если вы владелец Raspberry Pi B +, 2, Zero или 3, то всего у вас будет 40 контактов. У более ранних моделей, таких как Raspberry Pi B, всего 26 контактов.
См. Ниже схему распиновки Raspberry Pi GPIO. Мы включили все три версии Pi для схемы распиновки.
Если вам нужна распиновка в формате PDF, вы можете скачать ее здесь .
Как видите, есть не только стандартные контакты, но и ссылки на I2C, SPI и UART.
GPIO - это ваши стандартные контакты, которые можно использовать для включения и выключения устройств. Например, светодиод.
Контакты I2C ( Inter-Integrated Circuit ) позволяют подключаться и взаимодействовать с аппаратными модулями, поддерживающими этот протокол (протокол I2C). Этот протокол обычно занимает два контакта.
Контакты SPI ( Serial Peripheral Interface Bus ) могут использоваться для подключения и обмена данными с устройствами SPI. Практически то же самое, что и I2C, но использует другой протокол.
UART ( универсальный асинхронный приемник / передатчик ) - это последовательные выводы, используемые для связи с другими устройствами.
DNC означает не подключаться, это довольно понятно.
Эти выводы питания тянуть питание непосредственно от Raspberry Pi.
GND - это контакты, которые вы используете для заземления своих устройств. Неважно, какой вывод вы используете, поскольку все они подключены к одной линии. Поначалу все это может показаться сложным, но когда вы начнете, это будет довольно легко. Многие сокращения и технический жаргон сразу же отвлекают людей.
Настройка и использование контактов В этом разделе мы кратко коснемся того, как настроить контакты, чтобы вы могли использовать их на Raspberry Pi. Мы еще больше углубимся в собственное программирование и использование контактов в будущих проектах Raspberry Pi .
Настройка GPIO
Если вы используете последнюю версию Raspbian, вы можете начать программировать и использовать контакты GPIO без необходимости выполнять какую-либо дополнительную настройку.
Однако я все равно рекомендую вам обновить Pi до последних пакетов. Если вы этого не сделали, вы можете сделать это, выполнив следующие команды.
sudo apt-get update
sudo apt-get upgrade
Если у вас не установлен пакет GPIO, вы просто установите его, выполнив следующую команду.
sudo apt-get install rpi.gpio
Настройка Raspberry Pi I2C
Настройка контактов I2C на Raspberry Pi очень проста и займет всего пару минут.
Во-первых, перейдите к инструменту Raspi-Config , введя следующую команду.
sudo raspi-config
Здесь перейдите к дополнительным параметрам, а затем к I2c , включите I2c, нажав Да.
Теперь Pi должен предупредить вас, что I2C будет включен после перезагрузки. Затем он спросит, хотите ли вы, чтобы он загружался по умолчанию. Выберите «Да», если вы планируете использовать I2c при каждой загрузке Raspberry Pi. Теперь мы хотим убедиться, что он успешно включил необходимые модули. Для этого введите следующую команду.
lsmod | grep i2c_
Эта команда вернет все запущенные модули, начиная с i2c. Он должен вернуть что-то вроде этого i2c_BCM2708 . Настройка Raspberry Pi SPI Настройка Raspberry Pi SPI очень похожа на I2c и очень проста, это займет всего пару минут. Во-первых, перейдите к инструменту Raspi-Config, введя следующую команду. sudo raspi-config. После загрузки инструмента настройки перейдите к дополнительным параметрам , а затем к SPI . Включите SPI, и он сообщит вам, что он будет включен после перезагрузки. После этого он спросит, хотите ли вы, чтобы он загружался по умолчанию. Выберите «Да» только в том случае, если вы планируете использовать его каждый раз при загрузке Pi. Чтобы проверить, что SPI успешно запущен, используйте следующую команду. lsmod | grep spi_ Эта команда вернет все работающие модули, начиная с SPI. Он должен вернуть что-то вроде spi_bcm2835. Убедитесь, что вы перезапустили Pi, прежде чем проверять, загружен ли модуль.
Использование коммутационного комплекта
Разъемный комплект позволяет вам взять все контакты через ленточный кабель и подключить их к макетной плате или другому устройству. Этот комплект делает его намного проще и безопаснее, чем работать с Raspberry Pi и рядом с ним. Есть несколько различных типов коммутационных комплектов, которые вы можете купить для контактов Raspberry Pi GPIO. Лично я предпочитаю тип T, так как они удобны для чтения и использования. Если вы хотите купить коммутационный комплект, обязательно ознакомьтесь со списком оборудования выше. При подключении ленточного кабеля необходимо убедиться, что он подключен, так что он направлен от платы. Ниже вы можете увидеть пример правильной настройки ленточного кабеля с коммутационной платой Т-типа.
Программирование с помощью контактов GPIO Raspberry Pi
Программирование контактов GPIO на Raspberry Pi обычно выполняется с использованием языка программирования Python. Эта конкретная схема и код очень просты в освоении и не займут у вас много времени. Если кодирование кажется слишком сложным для вас и вы бы предпочли простое решение, то вам может быть интересно что- то вроде Raspberry Pi Cayenne . Пакет программного обеспечения позволяет добавлять датчики, управлять контактами GPIO и многое другое с помощью очень простого пользовательского интерфейса.
GPIO BOARD против GPIO BCM
Между этими двумя разными режимами огромная разница, и вам решать, какой из них вы хотите использовать для своего проекта. У обоих есть свои плюсы и минусы.
Плата GPIO ( GPIO.Board ) ссылается на физическую нумерацию контактов. Например, верхний левый штифт равен 1, а верхний правый штифт 2. Он продолжает считать вверх, пока вы идете сверху вниз, пока у вас не закончатся штифты. На нашей диаграмме вы можете увидеть эту нумерацию в середине каждой группы.
GPIO БЦМ ( GPIO.BCM ) является B roadcom S ос С hannel нумерации. На диаграмме выше вы можете найти номер после GPIO. Например, на Raspberry Pi 3 вывод под 3v3 - это GPIO2, поэтому номер для этого вывода - 2 в режиме BCM. Обратной стороной BCM является то, что они менялись между версиями (Raspberry Pi Rev 1 против Raspberry Pi Rev 2) и могут измениться в будущем. Если вы хотите быть в безопасности, я рекомендую придерживаться платы GPIO, но, как я сказал ранее, вам решать, как вы хотите ссылаться на контакты.
Код для простой светодиодной схемы
Если вы пишите код на Python , то посмотрите мой пример ниже. Во-первых, давайте настроим нашу небольшую схему. У меня есть полезная простая диаграмма, которой можно следовать ниже. Если у вас есть коммутационный комплект, схема, очевидно, будет немного другой, поскольку ваши провода будут идти от сапожника. В качестве альтернативы просто подключите положительный конец светодиода к контакту 7 (GPIO4), а отрицательный конец - к резистору, который подключается к контакту заземления.
Теперь давайте создадим файл Python, чтобы мы могли напечатать наш скрипт Python.
sudo nano led_blink.py
Напишем небольшой сценарий. Важно помнить, что Python чувствителен к пробелам .
Например, в цикле for убедитесь, что у вас есть четыре пробела для чего-либо внутри цикла. Чтобы пояснить немного дальше, перед строкой GPIO.output (7, true) должно быть четыре пробела.
#import the GPIO and time package
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
# loop through 50 times, on/off for 1 second
for i in range(50):
GPIO.output(7,True)
time.sleep(1)
GPIO.output(7,False)
time.sleep(1)
GPIO.cleanup()
Теперь выйдите и сохраните, нажав ctrl + x, а затем y.
Если запустить наш маленький скрипт, схема должна ожить.
Вы можете запустить сценарий Python, выполнив следующую команду. Также важно, чтобы вы запускали его как суперпользователь с помощью sudo.
sudo python led_blink.py
В начало обзора