Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 3 - Raspberry Pi - Piny a protokoly

V předchozí lekci, Raspberry Pi - Připojení pomocí SSH a VNC, jsme se naučili jak vzdáleně ovládat naše Raspberry pomocí jiného zařízení.

V dnešní lekci se dozvíme, co jsou to Raspberry Pi piny, jak fungují a k čemu se používají. Podíváme se, jakou mají funkci u Raspberry i u jiných zařízení a především jaké rozdíly mezi nimi jsou.

Co jsou to piny?

Piny jsou elektrické kontakty, které se používají pro snadné připojení modulů, např. k Raspberry nebo k Arduinu. Takové piny mají různé druhy a funkce. Skupině pinů reprezentujících nějaké rozhraní se poté říká port.

Jaká zařízení piny používají?

Piny používají především zařízení s otevřeným přístupem. To jsou taková zařízení, která používají především vývojáři. Když máme například mobil, tak většina výrobců nechce, aby se jim v něm někdo hrabal, upravoval hardware nebo software. Ale zas na stranu druhou většina standardních uživatelů nechce svůj mobil upravovat a měnit. Chce hotový a fungující produkt, se kterým nebude muset nic víc dělat.

Ti, co se někdy pohybovali ve světě elektrotechniky, si možná všimli, že podobné nožičky jako jsou piny má i většina elektrotechnických součástek. To je z důvodu, že takové součástky většinou používáme někde v obvodu, kam se jednoduše zapasují do otvorů pro ně určených. Nožičky jsou proto nejjednodušší volbou.

Jaká jsou tedy zařízení používající tyto piny? Jsou to například:

  • právě Raspberry Pi,
  • Arduino,
  • NodeMcu (zařízení velmi podobné Arduinu s vestavěnou Wi-Fi a o poznání menší, vzhledem připomíná mikroprocesor),
  • Orange Pi nebo třeba
  • Sony Spresense (velmi zajímavá vývojová deska od Sony podobná Raspberry, ale o poznání dražší).
  • A další...
Raspberry Pi

Piny Raspberry Pi

Raspberry existuje ve více variantách. Máme zde:

  • model Zero,
  • 3 Model B,
  • 3 Model A

Každý tento model má jiné vlastnosti a jiný počet pinů a jejich rozmístění. Proto než začneme rozebírat co jaký pin dělá, měli bychom se podívat, jaké piny naše Raspberry vůbec má.

Získání informací o pinech

Do terminálu na Raspberry napíšeme příkaz:

pinout

Zobrazí se nám podrobný výpis všeho ohledně pinů našeho konkrétního Raspberry, na kterém tento příkaz spouštíme:

Piny na Raspberry Pi - Raspberry Pi

Na obrázku výše vidíme typ našeho Raspberry jako obrázek a dále už výpis všech pinů, jak jdou za sebou. Piny jdou na Raspberry zleva doprava, když vpravo máme USB konektory. Pojďme si je popsat.

GPIO piny

GPIO piny (General Purpose Input/Output, tedy univerzální vstupní a výstupní piny) lze ovládat pomocí knihovny GPIO. Používají se například k ovládání LED diod nebo čehokoli jiného.

Číslování GPIO board vs. GPIO BCM

Když budeme chtít používat GPIO port třeba k ovládání diody, musíme si nastavit, jaký režim číslování chceme používat. Pomocí něj pak určíme, jaký pin budeme ovládat. Tyto režimy jsou:

  • GPIO.board - Používá určování pomocí čísel na desce Raspberry. Každý pin má přidělené číslo.
  • GPIO.BCM - Na rozdíl od toho používá určování pomocí GPIO označení. Všimněme si, že každý pin GPIO má své číslo a toto číslo se právě používá u režimu BCM.

Rozdíl vidíme na obrázku níže:

Raspberry Pi Červeně je vždy označeno, jaký režim používá která označení.

Nastavení režimu číslování

V Pythonu nastavujeme režim pomocí příkazu:

GPIO.setmode(GPIO.BCM)

Protokoly I2C, SPI a UART

Pro datovou komunikaci se složitějšími zařízeními můžeme na Raspberry využívat několik protokolů. Pokud vás zajímá, který z nich musíte použít pro připojení k danému zařízení, krátkou odpovědí je zkontrolovat specifikační list. Například jedna malá LED obrazovka může vyžadovat SPI a další může používat I2C (téměř nic nepoužívá UART). Pokud si přečtete dokumentaci dodávanou s produktem (za předpokladu, že nějakou má), obvykle vám řekne, které piny Pi použít.

Pojďme si nyní vysvětlit o čem je vlastně řeč :)

I2C

I2C je název pro typ počítačové sběrnice, pomocí které lze k Raspberry připojit externí hardwarové moduly (rozumějme složitější hardware, než je např. LED dioda), které potřebují více signálů. Můžeme tak připojit například Arduino nebo displej.

Sběrnice I2C používá pro komunikaci pouze dva signálové vodiče: SDA a SCL. Fungují tak, že odesílají data do připojení SDA, přičemž rychlost je řízena pomocí pinu SCL.

Tato sběrnice běží celá na topologii master/slave:

  • Master je vždy jen jedno zařízení. Je to tedy to hlavní zařízení, které určuje, jaké zařízení slave bude vysílat data.
  • Slave zařízení může být více. To znamená, že můžeme mluvit s více zařízeními na jednom připojení I2C, protože každé zařízení je jedinečné a zjistitelné uživatelem a počítačem pomocí příkazů Linuxu jako je i2cdetect.

I2C je rychlý a snadný způsob, jak do projektu přidat mnoho různých komponent jako jsou LCD / OLED obrazovky, teplotní senzory a analogově-digitální převodníky pro použití s ​​fotorezistory atd. I když je jejich pochopení trochu složitější než standardních pinů GPIO, znalosti získané z učení I2C vám dobře poslouží. Stejně tak pochopíte, jak připojit senzory s vyšší přesností pro použití v terénu.

SPI

SPI (zkratka z Serial Peripheral Interface Bus, česky sběrnice sériového periferního rozhraní). Jedná se o další protokol pro připojení kompatibilních zařízení k vašemu Raspberry Pi. Podobá se I2C v tom, že mezi Raspberry Pi a zařízeními k němu připojenými existuje vztah master - slave.

SPI se obvykle používá k odesílání dat na krátké vzdálenosti mezi mikrokontroléry a součástmi, jako jsou posuvné registry, senzory a dokonce i SD karta. Data jsou synchronizována pomocí hodin (SCLK na GPIO11) z hlavní jednotky (naše Pi) a data odesílána z Pi do naší komponenty SPI pomocí kolíku MOSI (GPIO GPIO10). MOSI označuje Master Out Slave In (Master je vždy výstup, Slave vstup). Pokud komponenta potřebuje odpovědět na naše Pi, odešle data zpět pomocí MISO pinu (GPIO9), což je zkratka pro Master In Slave Out.

UART

UART (univerzální asynchronní přijímač / vysílač) je sériově používán pro komunikaci s jinými zařízeními. Běžně známý jako "Serial", piny UART poskytují např. přihlášení cmd / terminálu pro bezkontaktní nastavení, což znamená připojení k Pi bez klávesnice a myši. Jednodušší způsob je ten, který jsme si ukázali v minulé lekci.

Další označení pinů

Můžeme se setkat s dalšími zkratkami označující kam co zapojit.

DNC

DNC (Do Not Connect) je zkratka pro "nepřipojujte", to je docela samo-vysvětlující.

GND

GND jsou piny, které používáme k uzemnění. Nezáleží na tom, který pin použijeme, protože jsou všechny připojeny ke stejné zemi. GND je místo, odkud lze měřit všechna napětí, a také uzavírá elektrický obvod.

Při vytváření obvodů je vždy moudré nejprve připojit GND před použitím jakéhokoli napájení, protože to zabrání zničení citlivých součástek.

Příklad

Když tedy budeme chtít zapojit a ovládat LED diodu (u diody musíme jednu nohu v obvodu dát do plus a druhou do mínus), anodu (zpravidla ta delší nožička) zapojíme do libovolného GPIO portu katodu do GND. Tímto zapojením se nám vytvoří jednoduchý obvod, který budeme moci ovládat pomocí Raspberry a třeba Pythonu. Jak na to si ukážeme již příště.

5V a 3V

Tyto piny používáme k napájení daným napětím. Nedají se ovládat, jednoduše jsou stále pod daným napětím. Používají se standardně, když nepotřebujeme pin ovládat, ale potřebujeme jen jeho napětí, nebo přísun napětí ovládáme jinak, například pomocí bridge. Do těchto pinů lze zapojit většinu součástek.

V příští lekci, Raspberry Pi - Blikání diody, si vytvoříme jednoduchý obvod s diodou.


 

Předchozí článek
Raspberry Pi - Připojení pomocí SSH a VNC
Všechny články v sekci
Raspberry Pi
Přeskočit článek
(nedoporučujeme)
Raspberry Pi - Blikání diody
Článek pro vás napsal Aleš Hlavín
Avatar
Uživatelské hodnocení:
36 hlasů
Raspberry
Aktivity