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

Raspberry Pi 4 GPIO

L 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

Raspberry Pi GPIO

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

Нові Плати Raspberry Pi 4 та версія 3 Вони оснащені великою кількістю штифтів GPIO. Не всі версії пропонують однакову кількість, і вони не нумеруються однаково, тому ви повинні бути обережними з цим, щоб добре знати, як вам слід встановити з'єднання відповідно до вашої моделі та редакції.

Але загальним є типи GPIO, які можна знайти в порту плат Raspberry Pi. І це буде перше, що я хотів би пояснити, оскільки саме так ви будете знати типи шпильок Ви можете розраховувати на свої проекти:

  • їжаЦі штирі використовуються для підключення ліній електропередач або проводки для ваших електронних проектів. Вони відповідають контактам, подібним до тих, що знаходяться на платі Arduino, і які забезпечують напруги 5v і 3v3 (3.3v обмежено навантаженням 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 Clock (GPIO1).
    • Послідовний, ще один дуже практичний зв’язок із контактами TX (GPIO14) та RX (GPIO15), подібними до тих, які ви можете знайти на платі Arduino UNO.

Пам'ятайте, що GPIO є інтерфейсом між Raspberry Pi та зовнішнім світом, але вони є його обмеження, особливо електричні. Щось, що ви повинні взяти до уваги, щоб не зіпсувати дошку, це пам’ятати, що ці штифти GPIO зазвичай не буферизовані, тобто без буфера. Це означає, що вони не мають захисту, тому ви повинні стежити за величинами напруги та інтенсивності, що застосовуються, щоб не опинитися марною пластиною ...

GPIO відмінності між версіями

Старі шпильки Raspberry Pi GPIO

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

  • Raspberry Pi 1 Model B Rev 1.0, з 26-контактним дещо відрізняється від Rev2.
  • Raspberry Pi 1 Модель A і B Rev 2.0, обидві моделі з 26-контактним.
  • Rapsberry Pi Моделі A +, B +, 2B, 3B, 3B +, Zero та Zero W, а також 4 моделі, усі з 40-контактним заголовком GPIO.

Що я можу підключити до GPIO?

Капелюх Raspberry Pi

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

Я маю на увазі знаменитого шапки або капелюхи та тарілки, які ви можете знайти на ринку. Існує багато типів - від тих, що використовуються для управління двигунами з драйверами, до інших, що створюються обчислювальний кластер, С Світлодіодна панель керований, додати Можливість DVB TV, РК-екран, І т.д.

Ці шапки або капелюхи Вони встановлені на дошці Raspberry Pi, узгодження GPIO, необхідних для його роботи. Тому його складання досить просте і швидке. Звичайно, переконайтеся, що версія пластини сумісна з кожним капелюхом, оскільки порт GPIO відрізняється, як ви бачили ...

Я кажу це на випадок, якщо у вас старіша тарілка, оскільки капелюхи є сумісний лише з новітніми. Як і моделі Raspberry Pi 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

У цьому випадку як вихід, оскільки ми хочемо надіслати електричний імпульс до світлодіода, щоб увімкнути його, але якщо це був датчик тощо, ви можете використовувати в. Тепер за увімкнути (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 тощо. Програмування за допомогою графічних блоків є досить інтуїтивним і дуже практичним для освітньої галузі.
  • Python: Ця проста інтерпретована мова програмування дозволяє створювати прості та потужні коди з безліччю бібліотек у вашому розпорядженні, щоб робити майже все, що ви уявляєте.
  • C / C ++ / C #: це більш потужні мови програмування для створення бінарних файлів, з якими можна взаємодіяти з GPIO. Ви можете зробити це кількома способами, використовуючи стандартну форму або інтерфейс ядра через бібліотекуlibgpiod, а також через сторонні бібліотеки, такі як пігіо.
  • Обробка3, схожий на Arduino.

Вибирайте гнучко той, який вам найбільше подобається, або ви вважаєте простим.


4 коментарі, залиште свій

Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Ворог - сказав він

    Дуже гарна стаття про початок роботи в Rasperry

    1.    Ісаак - сказав він

      Велике спасибі.

      1.    Рут Медіна - сказав він

        ти автор?

        1.    Ісаак - сказав він

          Та