GPIO

Výkonnou funkcí Raspberry Pi je řada pinů GPIO (obecný vstup/výstup) podél horního okraje desky. Čtyřicetipinová hlavička GPIO se nachází na všech současných deskách Raspberry Pi (na deskách Pi Zero a Pi Zero W není osazena). Před modelem Pi 1 Model B+ (2014) obsahovaly desky kratší 26pinovou hlavičku.

Každý z pinů GPIO lze (softwarově) označit jako vstupní nebo výstupní pin a používat k nejrůznějším účelům.

Poznámka: číslování pinů GPIO není v číselném pořadí; piny GPIO 0 a 1 jsou na desce přítomny (fyzické piny 27 a 28), ale jsou vyhrazeny pro pokročilé použití (viz níže).

Napětí

Dva piny 5V a dva piny 3V3 jsou na desce přítomny, stejně jako řada zemnících pinů (0V), které jsou nekonfigurovatelné. Všechny zbývající piny jsou univerzální 3V3 piny, což znamená, že výstupy jsou nastaveny na 3V3 a vstupy jsou 3V3-tolerantní.

Výstupy

Pin GPIO označený jako výstupní pin lze nastavit na vysoké (3V3) nebo nízké (0V).

Vstupy

Pin GPIO označený jako vstupní pin lze číst jako vysoký (3V3) nebo nízký (0V). To je usnadněno použitím interních pull-up nebo pull-down rezistorů. Piny GPIO2 a GPIO3 mají pevně nastavené pull-up rezistory, ale u ostatních pinů lze toto nastavit softwarově.

Více

Kromě jednoduchých vstupních a výstupních zařízení lze piny GPIO používat s řadou alternativních funkcí, některé jsou k dispozici na všech pinech, jiné na konkrétních pinech.

  • PWM (pulzně-šířková modulace)
    • Softwarové PWM dostupné na všech pinech
    • Hardwarové PWM dostupné na GPIO12, GPIO13, GPIO18, GPIO19
  • SPI
    • 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
    • Data: (GPIO2); Clock (GPIO3)
    • EEPROM Data: (GPIO0); EEPROM Clock (GPIO1)
  • Serial
    • TX (GPIO14); RX (GPIO15)

GPIO pinout

Je důležité vědět, který pin je který. Někteří lidé používají štítky s vývody (například na desce plošných spojů RasPiO Portsplus nebo na tisknutelném listu Raspberry Leaf).

Praktický odkaz získáte na Raspberry Pi otevřením okna terminálu a spuštěním příkazu pinout. Tento nástroj poskytuje knihovna GPIO Zero Python, která je ve výchozím nastavení nainstalována na desktopovém obrazu Raspberry Pi OS, ale ne na Raspberry Pi OS Lite.

Podrobnější informace o pokročilých možnostech pinů GPIO najdete v interaktivním schématu vývodů gadgetoid.

Programování s GPIO

Piny GPIO je možné ovládat pomocí řady programovacích jazyků a nástrojů. Pro začátek se podívejte na následující průvodce:

  • GPIO s programem Scratch 1. Jak začít?4
  • GPIO se Scratchem 2
  • GPIO s Pythonem
  • GPIO s C/C++ pomocí standardního rozhraní jádra přes libgpiod
  • GPIO s C/C++ pomocí knihovny třetí strany pigpio
  • GPIO s Processingem3

Upozornění: Připojení jednoduchých komponent k pinům GPIO je sice naprosto bezpečné, ale je třeba dávat pozor na způsob zapojení. LED diody by měly mít rezistory pro omezení proudu, který jimi prochází. Nepoužívejte 5V pro 3V3 součástky. Nepřipojujte motory přímo k pinům GPIO, místo toho použijte obvod H-můstku nebo desku s řídicí jednotkou motoru.

Právnění

Pro používání portů GPIO musí být váš uživatel členem skupiny gpio. Ve výchozím nastavení je členem uživatel pi, ostatní uživatele je třeba přidat ručně.

sudo usermod -a -G gpio <username>

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.