Raspberry Pi je oblíbený jednodeskový počítač, který se vyznačuje svou flexibilitou, nízkou cenou a širokou škálou využití v oblastech jako domácí automatizace, robotika a mnoho dalších. Klíčovou součástí jeho flexibilitě je schopnost přímo ovládat elektronické komponenty pomocí General Purpose Input/Output (GPIO) pinů. GPIO piny mohou být programovány k vysílání digitálních signálů (zapnutí/vypnutí) nebo k čtení stavů z externích senzorů. V tomto článku se podrobně zaměříme na správu GPIO pinů na Raspberry Pi pomocí jazyka Python, který je pro tento účel díky své přístupnosti a výkonnosti velmi oblíben.
Základy GPIO na Raspberry Pi
Raspberry Pi disponuje několika GPIO piny, jejichž konkrétní počet a funkčnost se může lišit v závislosti na modelu zařízení. Tyto piny můžeme programově nastavit buď jako vstupní (input), pro čtení signálů/senzorů, nebo jako výstupní (output), pro řízení externích zařízení, například LED diod, motorů atd.
Příprava prostředí
Pro práci s GPIO piny v Pythonu je nejprve nutné zajistit, že máte nainstalovaný Python a balíček RPi.GPIO. Instalace tohoto balíčku se provádí pomocí pip, nástroje pro správu balíčků Pythonu:
sudo apt-get update
sudo apt-get install python3-pip
sudo pip3 install RPi.GPIO
Základní použití knihovny RPi.GPIO
Po úspěšné instalaci knihovny RPi.GPIO je možné začít s programováním GPIO pinů. V následujícím příkladu demonstrujeme, jak nastavit pin jako výstup a jak jej použít k zapnutí a vypnutí LED diody.
import RPi.GPIO as GPIO
import time
# Nastavení číselného módu pinů
GPIO.setmode(GPIO.BCM)
# Nastavení pinu 18 jako výstup
GPIO.setup(18, GPIO.OUT)
# Zapnutí LED
GPIO.output(18, GPIO.HIGH)
time.sleep(1) # Pauza 1 sekunda
# Vypnutí LED
GPIO.output(18, GPIO.LOW)
# Uvolnění všech GPIO zdrojů
GPIO.cleanup()
V tomto příkladu GPIO.setmode(GPIO.BCM)
určuje, že se budou používat čísla pinů BCM (Broadcom pin number) místo fyzického číslování pinů. Nastavení pinu jako výstup se provádí pomocí GPIO.setup(18, GPIO.OUT)
, kde 18 je číslo pinu. K zapnutí a vypnutí LED diody slouží GPIO.output(18, GPIO.HIGH)
a GPIO.output(18, GPIO.LOW)
.
Čtení stavu vstupního pinu
Pro čtení signálů ze senzorů nebo tlačítek je nutné pin nastavit jako vstup. Následuje příklad kódu pro čtení stavu tlačítka:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN)
try:
while True:
if GPIO.input(17):
print("Tlačítko stisknuto")
else:
print("Tlačítko uvolněno")
time.sleep(0.5)
finally:
GPIO.cleanup()
V tomto případě GPIO.setup(17, GPIO.IN)
nastavuje pin 17 jako vstupní. Pomocí GPIO.input(17)
pak program čte aktuální stav pinu a vypíše odpovídající zprávu.
Správa GPIO pinů na Raspberry Pi pomocí Pythonu umožňuje uživatelům efektivně interagovat s fyzickým světem. Ať už se jedná o jednoduché projekty, jako je blikání LED, nebo složitější aplikace zahrnující různé senzory a aktuátory, Python společně s knihovnou RPi.GPIO nabízí výkonné a přístupné prostředí pro realizaci těchto nápadů.