GPIO: vše o připojení Raspberry Pi 4 a 3

Raspberry Pi 4 GPIO

L GPIO piny na desce Raspberry Pi 4, 3, a také jeho předchůdci, poskytují desce SBC funkce podobné těm, které může mít Arduino, protože s nimi můžete vytvářet velmi zajímavé elektronické projekty řízené z operačního systému pomocí kódu v různých jazycích, jako je Python.

Díky tomu je deska více než jen levný počítač. Umožní vám připojit velké množství zařízení elektronické prvky které můžete použít s Arduinem, ale které lze také ovládat z Pi. V této příručce se pokusím poskytnout vám co nejvíce informací o těchto pinech GPIO, abyste je mohli začít využívat ...

Co je GPIO?

GPIO

GPIO je zkratka pro General Purpose Input / Output, tj. General Purpose Input / Output. Mohou jej mít různé elektronické výrobky, například samotné čipy nebo určité desky s plošnými spoji, jako je tento Raspberry Pi. Jak jejich název napovídá, jedná se o piny, které lze konfigurovat tak, aby prováděly různé funkce, a proto mají obecný účel a ne pro konkrétní použití.

Bude to uživatel za běhu, kdo může nakonfigurujte tyto piny GPIO aby si dělali, co chce. Lze to provést různými způsoby, například pomocí určitých kódů nebo skriptů z konzoly nebo pomocí programu Python, což je jeden z nejjednodušších a nejpreferovanějších způsobů vzhledem k množství možností, které máte k dispozici.

Tímto způsobem má Raspberry Pi nejen řadu portů a rozhraní k připojení více standardních zařízení, ale přidejte tyto piny GPIO, abyste mohli přidat další elektronická zařízení nebo projekty tvůrců, které jste sami vytvořili. Stejně jako u Arduina a jeho I / O pinů pro ovládání.

Y není exkluzivní pro Arduino nebo Raspberry Pistejně jako ostatní podobné desky SBC a vestavěné produkty.

Funkce GPIO

A mezi její CHARAKTERISTIKA nejvýznamnější:

  • Může být nakonfigurován tak jako vstup jako výstup. Mají tu dualitu, jak se to stává těm Arduino.
  • Také GPIO piny lze aktivovat a deaktivovat podle kódu. To znamená, že mohou být nastaveny na 1 (úroveň vysokého napětí) nebo 0 (úroveň nízkého napětí).
  • Samozřejmě, že mohou číst binární data, jako jedničky a nuly, tj. napěťový signál nebo jeho absence.
  • Výstupní hodnoty Čtení a psaní.
  • Vstupní hodnoty lze v některých případech konfigurovat jako dění aby generovaly nějaký typ akce na desce nebo systému. Některé vestavěné systémy je používají jako IRQ. Dalším případem je konfigurace, že když je jeden nebo více pinů aktivních určitými senzory, proveďte nějakou akci ...
  • Pokud jde o napětí a intenzitu, musíte dobře znát maximální kapacity přijatelné pro desku, v tomto případě Raspberry Pi 4 nebo 3. Neměli byste je předávat, aby nedošlo k jejich poškození.

Mimochodem, když je seskupena skupina pinů GPIO, jako je tomu v případě Raspberry Pi, je tato skupina známá jako GPIO port.

GPIO piny Raspberry Pi

Raspberry Pi GPIO

Schéma platné pro verzi 4, 3, nula

Nový Desky Raspberry Pi 4 a verze 3 Jsou vybaveny velkým počtem pinů GPIO. Ne všechny verze nabízejí stejné množství, ani nejsou očíslovány stejným způsobem, takže s tím musíte být opatrní, abyste dobře věděli, jak byste měli provést připojení podle modelu a revize, kterou máte.

Obecnější jsou ale typy GPIO, které najdete v přístavu desek Raspberry Pi. A to bude první věc, kterou bych chtěl objasnit, protože tak to budete vědět typy kolíků můžete se spolehnout na své projekty:

  • krmeníTyto piny se používají k připojení elektrického vedení nebo kabeláže pro vaše elektronické projekty. Odpovídají pinům podobným pinům na desce Arduino a poskytují napětí 5v a 3v3 (3.3v omezeno na zátěž 50mA). Kromě toho najdete také zemní (GND nebo zem). Pokud nepoužíváte externí zdroje energie, jako jsou baterie nebo adaptéry, mohou tyto kolíky velmi pomoci při napájení vašeho obvodu.
  • DNC (Nepřipojovat): jsou to piny, které jsou v některých verzích a které nemají žádnou funkci, ale v nových deskách dostali jiný účel. Najdete je pouze v primitivnějších modelech Pi. V nových 3 a 4 budou obecně označeny jako GND, protože se budou moci integrovat do předchozí skupiny.
  • Konfigurovatelné kolíky: jsou to normální GPIO a mohou být naprogramovány pomocí kódů, jak vysvětlím později, abyste udělali to, co potřebujete.
  • Speciální kolíky: jedná se o některá připojení, která jsou určena pro speciální připojení nebo rozhraní, jako jsou sériová připojení UART, TXD a RXD atd., jak se to děje u Arduina. Naleznete dokonce i některé jako SDA, SCL, MOSI, MISO, SCLK, CE0, CE1 atd. Vystupují mezi nimi:
    • PWM, který může regulovat šířku pulzu, jak jsme viděli v předchozím článku. Na Raspberry Pi 3 a 4 jsou to GPIO12, GPIO13, GPIO18 a GPIO19.
    • SPI je další komunikační rozhraní, kterému jsem se také věnoval v jiném článku. V případě nových 40kolíkových desek jsou to piny (s různými komunikačními kanály, jak vidíte):
      • 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 je další spojení, které jsem také vysvětlil v tomto blogu. Tato sběrnice je tvořena datovým signálem (GPIO2) a hodinami (GPIO3). Kromě dat EEPROM (GPIO0) a hodin EEPROM (GPIO1).
    • Sériová, další velmi praktická komunikace s piny TX (GPIO14) a RX (GPIO15), jaké najdete na desce Arduino UNO.

Nezapomeňte, že GPIO jsou rozhraní mezi Raspberry Pi a vnějším světem, ale mají jeho omezení, zejména elektrické. Musíte si uvědomit, že tyto GPIO piny jsou obvykle bez vyrovnávací paměti, tj. Bez vyrovnávací paměti, abyste nezkazili herní plán. To znamená, že nemají ochranu, takže musíte sledovat velikost použitého napětí a intenzity, abyste neskončili zbytečnou deskou ...

GPIO rozdíly mezi verzemi

Staré GPIO piny Raspberry Pi

Jak jsem řekl, ne všechny modely jsou stejné kolíkyTady je několik diagramů, takže můžete vidět rozdíly mezi modely, abyste se mohli soustředit na Raspberry Pi 4 a 3, které jsou nejnovější a pravděpodobně máte ve svém držení. Liší se mezi nimi (všechny skupiny sdílejí stejné piny):

  • Raspberry Pi 1 Model B Rev 1.0, s 26kolíkovým konektorem mírně odlišným od Rev2.
  • Raspberry Pi 1 Model A a B Rev 2.0, oba modely s 26kolíkovým konektorem.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero a Zero W a také 4 modely. Všechny s 40kolíkovou GPIO hlavičkou.

Co mohu zapojit do GPIO?

Klobouk Raspberry Pi

Budete nejen schopni připojte elektronická zařízení jak tranzistory, snímače vlhkosti / teploty, termistory, krokové motory, LED diody, atd. Můžete také připojit komponenty nebo moduly vytvořené speciálně pro Raspberry Pi, které rozšiřují možnosti desky nad rámec toho, co je obsaženo v základně.

Mám na mysli slavné klobouky nebo klobouky a talíře, které najdete na trhu. Existuje mnoho typů, od těch, které se používají k ovládání motorů s ovladači, až po ostatní, které vytvářejí výpočetní klastr, S LED panel ovladatelný, přidat Funkce DVB TV, LCD obrazovka, Etc.

Tyto klobouky nebo klobouky Jsou namontovány na desce Raspberry Pi, odpovídající GPIO potřebným pro jeho fungování. Proto je jeho montáž poměrně jednoduchá a rychlá. Samozřejmě se ujistěte, že je desková verze kompatibilní s každým kloboukem, protože port GPIO je jiný, jak jste viděli ...

Říkám to, pokud máte starší talíř, protože klobouky jsou kompatibilní pouze s nejnovějšími. Stejně jako modely Raspberry Pi Model A +, B +, 2, 3 a 4.

Úvod do používání GPIO na Raspberry Pi

Výstup příkazu Pinout

Zdroj: Raspberry Pi

Chcete-li začít, na Raspbian můžete otevřít konzolu a psát příkaz pinůCo se vám vrátí, je obrázek v terminálu s piny GPIO dostupnými na vaší desce a k čemu každý z nich slouží. Něco velmi praktického, aby to bylo vždy k dispozici v okamžiku práce, abyste se nenechali zmást.

První projekt: blikání LED pomocí GPIO

GPIO s LED na Raspberry Pi

Nejzákladnější způsob výroby „Ahoj světe“ s GPIO je použít jednoduchou LED připojenou k pinům Raspberry Pi, abyste viděli, jak fungují. V tomto případě jsem jej připojil k GND a druhý ke kolíku 17, i když si můžete vybrat jiný z normálních kolíků ...

Po připojení můžete ovládat je z Raspbian s využitím terminálu. V Linuxu se používají specifické soubory, jako jsou ty v adresáři / sys / class / gpio /. Chcete-li například vytvořit soubor s potřebnou strukturou, abyste mohli začít pracovat:

echo 17 > /sys/class/gpio/export

Potom můžeš konfigurovat jako vstup (vstup) nebo jako výstup (výstup) ten pin 17 vybraný pro náš příklad. Můžete to udělat velmi snadno pomocí:

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

V tomto případě jako výstup, protože chceme vyslat elektrický pulz na LED, aby se rozsvítil, ale pokud by to byl senzor atd., Můžete použít v. Nyní pro zapnout (1) nebo vypnout (0) LED, kterou můžete použít:

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

Pokud chcete přejít na jiný projekt a smazat záznam vytvořen, můžete to udělat takto:

echo 17 > /sys/class/gpio/unexport

Mimochodem, můžete také shromáždit všechny potřebné příkazy pro váš projekt, stejně jako všechny předchozí, uložit je v typu souboru bash skript a pak je spouštět najednou ve svazcích, místo toho, abyste je psali jeden po druhém. To je užitečné, když opakujete stejné cvičení mnohokrát, takže nemusíte přepisovat. Jen běž a jdi. Například:

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

Jakmile skončíte, uložíte jej a poté mu můžete udělit příslušné oprávnění ke spuštění a spuštění scénář aby se LED rozsvítila, počkejte 1.3 sekundy a vypněte takto ve smyčce ...

chmod +x led.sh
./led.sh

Programování předem

zdrojový kód programovacího jazyka

Výše uvedené samozřejmě funguje pro malé elektronické projekty s několika komponentami, ale pokud chcete vytvořit něco pokročilejšího, místo příkazů můžete použít programovacích jazyků vytvářet různé skripty nebo zdrojové kódy, které automatizují operaci.

Mohou být použity různé nástroje programovat ve velmi odlišných jazycích. Knihovny, které komunita vyvinula, vám věci mnohem usnadňují, například WiringPi, sysfs, pigpio atd. Programy mohou být velmi rozmanité, od Pythonu, který je upřednostňovanou možností mnoha, přes Ruby, Java, Perl, BASIC a dokonce i C #.

Oficiálně vám Raspberry Pi nabízí mnoho zařízení naprogramovat své GPIO, například:

  • Scratch, pro ty, kteří neumí programovat a chtějí použít logické bloky tohoto projektu, pomocí kterých lze programovat i Arduino atd. Programování pomocí grafických bloků je pro oblast vzdělávání docela intuitivní a velmi praktické.
  • PYTHON: Tento jednoduchý interpretovaný programovací jazyk vám umožňuje vytvářet jednoduché a výkonné kódy s množstvím knihoven, které máte k dispozici, abyste mohli dělat téměř vše, co si představujete.
  • C / C ++ / C #: jsou výkonnější programovací jazyky pro vytváření binárních souborů, se kterými mohou interagovat s GPIO. Můžete to udělat několika způsoby pomocí standardního formuláře nebo rozhraní jádra prostřednictvím knihovnylibgpiod, ale také prostřednictvím knihovny třetích stran, jako je prasátko.
  • Zpracování3, podobně jako Arduino.

Vyberte si flexibilně ten, který se vám líbí nejvíce nebo si myslíte, že je jednoduchý.


4 komentářů, nechte svůj

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   nepřítel řekl

    Moc pěkný článek o začátku v Rasperry

    1.    Isaac řekl

      Děkuju mnohokrát.

      1.    Ruth Medinová řekl

        ty jsi autor?

        1.    Isaac řekl

          ano