GPIO: все о подключениях Raspberry Pi 4 и 3

Малина Pi 4 GPIO

Los Контакты GPIO платы Raspberry Pi 4, 3, а также его предшественники, предоставляют SBC возможности, аналогичные тем, которые может иметь Arduino, поскольку с ними вы можете создавать очень интересные электронные проекты, управляемые из операционной системы с помощью кода на разных языках, например Python.

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

Что такое GPIO?

GPIO

GPIO является аббревиатурой от General Purpose Input / Output, то есть General Purpose Input / Output. Он может быть в различных электронных продуктах, таких как сами микросхемы или некоторые печатные платы, такие как Raspberry Pi. Как следует из названия, это контакты, которые можно настроить для выполнения различных функций, поэтому они предназначены для общего назначения, а не для конкретного использования.

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

Таким образом, Raspberry Pi не только имеет серию портов и интерфейсы для подключения нескольких стандартных устройств, но добавьте эти контакты GPIO, чтобы вы могли добавлять другие электронные устройства или создавать проекты, которые вы создали сами. Так же, как и с Arduino и его выводами ввода / вывода для управления.

Y не только для Arduino или Raspberry Pi, как и другие подобные платы SBC и встраиваемые продукты.

Особенности GPIO

И между ЕЕ ХАРАКТЕРИСТИКИ самые выдающиеся:

  • Они могут быть настроенным так как вход как выход. У них есть такая двойственность, как у людей Arduino.
  • Контакты GPIO тоже можно активировать и деактивировать по коду. То есть они могут быть установлены на 1 (высокий уровень напряжения) или 0 (низкий уровень напряжения).
  • Конечно могут читать двоичные данные, как единицы и нули, то есть сигнал напряжения или его отсутствие.
  • Выходные значения Чтение и письмо.
  • Входные значения могут быть настроены в некоторых случаях как события чтобы они генерировали какое-то действие на доске или в системе. Некоторые встроенные системы используют их как IRQ. Другой случай - настроить, чтобы, когда один или несколько контактов активны определенными датчиками, выполняли какое-то действие ...
  • Что касается напряжения и интенсивности, вы должны хорошо знать максимальную емкость, приемлемую для платы, в данном случае Raspberry Pi 4 или 3. Вы не должны проходить мимо них, чтобы не повредить ее.

Кстати, когда группа контактов GPIO сгруппирована, как в случае с Raspberry Pi, группа называется Порт GPIO.

Контакты GPIO Raspberry Pi

Малина Pi GPIO

Схема действительна для версий 4, 3, Zero

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

Но что более универсально, так это типы GPIO, которые вы можете найти в порте плат Raspberry Pi. И это будет первое, что я хотел бы прояснить, так как именно так вы узнаете типы булавок Вы можете рассчитывать на свои проекты:

  • продуктыЭти контакты используются для подключения линий электропередач или проводки для ваших электронных проектов. Они соответствуют контактам, аналогичным выводам на плате Arduino, которые обеспечивают напряжение 5 В и 3 В 3 (3.3 В ограничено нагрузкой 50 мА). Кроме того, вы также найдете заземляющие (GND или Ground). Если вы не используете внешние источники питания, такие как батареи или адаптеры, эти контакты могут оказаться большим подспорьем для питания вашей схемы.
  • DNC (не подключаться): это контакты, которые есть в некоторых версиях и не имеют функции, но в новых платах они получили другое назначение. Вы найдете их только в более примитивных моделях Pi. В новых 3 и 4 они будут обычно помечены как GND, чтобы иметь возможность интегрироваться в предыдущую группу.
  • Настраиваемые контакты: Это обычные GPIO, и они могут быть запрограммированы кодами, как я объясню позже, чтобы делать то, что вам нужно.
  • Специальные штифты: это некоторые соединения, которые предназначены для специальных соединений или интерфейсов, таких как последовательные соединения UART, TXD и RXD и т. д., как это происходит с Arduino. Вы даже найдете такие, как SDA, SCL, MOSI, MISO, SCLK, CE0, CE1 и т. Д. Среди них выделяются:
    • ШИМ, который может регулировать ширину импульса, как мы видели в предыдущей статье. На Raspberry Pi 3 и 4 это GPIO12, GPIO13, GPIO18 и GPIO19.
    • SPI - это еще один интерфейс связи, который я также обсуждал в другой статье. В случае новых 40-контактных плат это контакты (как видите, с разными каналами связи):
      • SPI0: MOSI (GPIO10), MISO (GPIO9), SCLK (GPIO11), CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
    • I2C это еще одна связь, которую я также объяснил в этом блоге. Эта шина состоит из сигнала данных (GPIO2) и часов (GPIO3). Помимо данных EEPROM (GPIO0) и часов EEPROM (GPIO1).
    • Последовательный, еще одна очень практичная связь с контактами TX (GPIO14) и RX (GPIO15), подобными тем, которые вы можете найти на плате. Arduino UNO.

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

Различия GPIO между версиями

Контакты GPIO старого Raspberry Pi

Как я сказал, не все модели одинаковые контактыВот несколько диаграмм, чтобы вы могли видеть различия между моделями и, таким образом, иметь возможность сосредоточиться на Raspberry Pi 4 и 3, которые являются самыми новыми и тем, что у вас, вероятно, есть в вашем распоряжении. Он различается между (все группы имеют одни и те же контакты):

  • Raspberry Pi 1 Model B Rev 1.0 с 26-контактным разъемом, немного отличающимся от Rev2.
  • Raspberry Pi 1 Model A и B Rev 2.0, обе модели с 26-контактным разъемом.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero и Zero W., а также модели 4. Все они с 40-контактным разъемом GPIO.

Что я могу подключить к GPIO?

Шляпа Raspberry Pi

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

Я имею в виду известные шляпы или шляпы и тарелки, которые можно найти на рынке. Есть много типов, от тех, которые используются для управления двигателями с драйверами, до других для создания вычислительный кластер, con Светодиодная панель управляемый, добавить Возможность DVB TV, ЖК-экран, И т.д.

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

Я говорю это на случай, если у вас старая тарелка, так как шляпы совместим только с новейшими. Как и модели Raspberry Pi Model A +, B +, 2, 3 и 4.

Введение в использование GPIO на Raspberry Pi

Вывод команды распиновки

Источник: Raspberry Pi

Для начала в Raspbian вы можете открыть консоль и ввести команда цоколевкаОн вернет изображение в терминале с контактами GPIO, доступными на вашей плате, и назначением каждого из них. Что-то очень практичное, чтобы он всегда был под рукой в ​​момент работы, чтобы вы не запутались.

Первый проект: мигать светодиодом с GPIO

GPIO со светодиодом на Raspberry Pi

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

После подключения вы можете контролировать их из Raspbian используя терминал. В Linux используются определенные файлы, такие как файлы в каталоге / sys / class / gpio /. Например, чтобы создать файл с необходимой структурой для начала работы:

echo 17 > /sys/class/gpio/export

Тогда ты можешь настроить как вход (вход) или как выход (выход) тот вывод 17 выбран для нашего примера. Вы можете сделать это очень легко с помощью:

echo out > /sys/class/gpio/gpio17/direction

В этом случае в качестве выхода, поскольку мы хотим отправить электрический импульс на светодиод, чтобы включить его, но если бы это был датчик и т. Д., Вы могли бы использовать in. Теперь для включить (1) или выключить (0) светодиод, который можно использовать:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

Если вы хотите перейти к другому проекту и удалить запись Создано, вы можете сделать это следующим образом:

echo 17 > /sys/class/gpio/unexport

Кстати, вы также можете собрать все необходимые команды для своего проекта, как и все предыдущие, сохранить их в виде файла bash скрипт а затем запускать их в пакетах сразу, вместо того, чтобы вводить их по одному. Это удобно, когда вы повторяете одно и то же упражнение много раз, поэтому вам не придется переписывать. Просто беги и уходи. Например:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

Как только вы закончите, вы сохраните, а затем вы можете дать ему соответствующие разрешения на выполнение и выполнение. сценарий чтобы светодиод загорелся, подождите 1.3 секунды и погаснет вот так в цикле ...

chmod +x led.sh
./led.sh

Прогресс программы

исходный код языка программирования

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

Их можно использовать разные инструменты программировать, с очень разными языками. Библиотеки, разработанные сообществом, значительно упрощают вам задачу, например WiringPi, sysfs, pigpio и т. Д. Программы могут быть самыми разными, от Python, который является предпочтительным вариантом для многих, до Ruby, Java, Perl, BASIC и даже C #.

Официально Raspberry Pi предлагает вам много объектов для программирования ваших GPIO, таких как:

  • Соскоблите, для тех, кто не умеет программировать и хочет использовать блоки головоломки этого проекта, с помощью которых также можно программировать Arduino, и т. д. Программирование с использованием графических блоков довольно интуитивно понятно и очень практично для сферы образования.
  • Питон: Этот простой интерпретируемый язык программирования позволяет создавать простые и мощные коды с множеством библиотек в вашем распоряжении, чтобы делать почти все, что вы думаете.
  • C / C ++ / C #: более мощные языки программирования для создания двоичных файлов для взаимодействия с GPIO. Сделать это можно несколькими способами, используя стандартную форму или интерфейс ядра через библиотеку.libgpiod, но также через стороннюю библиотеку, такую ​​как свинья.
  • Обработка3, аналогично Arduino.

Гибкий выбор тот, который вам нравится больше всего или который вы думаете, прост.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.