GPIO: всичко за връзките Raspberry Pi 4 и 3

Raspberry Pi 4 GPIO

Лос 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 и неговите I / O щифтове за контрол.

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 ограничено до 50mA натоварване). Освен това ще намерите и наземните (GND или Ground). Ако не използвате външни източници на захранване като батерии или адаптери, тези щифтове могат да бъдат от голяма помощ за захранването на вашата верига.
  • DNC (Не се свързвай): те са щифтове, които са в някои версии и които нямат никаква функция, но че в новите дъски им е дадено друго предназначение. Ще ги намерите само в по-примитивни модели на Pi. В новите 3 и 4 те ще бъдат маркирани като GND като цяло, като могат да се интегрират в предишната група.
  • Конфигурируеми щифтове: Те са нормалните GPIO и могат да бъдат програмирани с кодове, както ще обясня по-късно, за да направите това, което ви трябва.
  • Специални щифтове: това са някои връзки, които са предназначени за специални връзки или интерфейси като UART, TXD и RXD серийни връзки и т.н., както се случва с Arduino. Дори ще намерите някои като SDA, SCL, MOSI, MISO, SCLK, CE0, CE1 и т.н. Те се открояват сред тях:
    • PWM, които могат да регулират ширината на импулса, както видяхме в предишна статия. На 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 Data (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 Модел 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 и които разширяват възможностите на платката извън това, което е включено в основата.

Имам предвид известните шапки или шапки и чинии, които можете да намерите на пазара. Има много видове, от тези, използвани за управление на двигатели с драйвери, до други за създаване изчислителен клъстерС LED панел контролируем, за добавяне Възможност за DVB TV, LCD екранИ др

Тези шапки или шапки Те са монтирани на платката 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) LED, който можете да използвате:

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.

Изберете гъвкаво този, който ви харесва най-много или смятате, че е прост.


4 коментара, оставете своя

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

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

  1.   враг каза той

    Много хубава статия за започването на Rasperry

    1.    Isaac каза той

      Благодаря Ви много.

      1.    Рут Медина каза той

        ти автор ли си?

        1.    Isaac каза той

          Да