A Raspberry Pi egy sokoldalú, egy táblázatú számítógép, amely a hobbisták, az oktatók és a szakemberek körében egyaránt kedvelt. Az egyik legerősebb tulajdonsága az a képesség, hogy kölcsönhatásba lépjen a fizikai világgal az általános célú bemeneti/kimeneti (GPIO) csapjain keresztül. A Python, a kezdőbarát és erőteljes programozási nyelv kihasználásával vezérelheti ezeket a GPIO-csapokat a projektek széles skálájának felépítése érdekében, az egyszerű LED-es villogásoktól a komplex otthoni automatizálási rendszerekig. Ebben a blogbejegyzésben végigvezetjük Önt a Raspberry Pi használatának alapjain, hogy a GPIO -t a Pythonnal irányítsák.
A GPIO -csapok megértése
A GPIO csapok sokoldalú interfészek a Raspberry PI -n, amelyek lehetővé teszik a külső eszközök, például LED -ek, érzékelők, motorok és még sok más csatlakoztatását és vezérlését. A Raspberry Pi modelljétől függően különféle számú GPIO -csapot talál egy adott mintázatban. Ezek a csapok beállíthatók bemenetekként vagy kimenetekként:
- Bemenet: Olvassa el a külső eszközök jeleit (például gombok, érzékelők).
- Kimenet: Küldjön jeleket a külső eszközökre (például LED -ek, relék).
Mielőtt belemerülne a programozási szempontba, elengedhetetlen megérteni a Raspberry Pi PIN -elrendezését. A modellre vonatkozó pontos információkért lásd a hivatalos Raspberry PI GPIO pinout diagramot.
A málna pi beállítása
A GPIO -csapok Python segítségével történő ellenőrzéséhez ellenőrizze, hogy a Raspberry Pi helyesen van -e beállítva:
- Telepítse a legújabb Raspberry Pi OS -t: Győződjön meg arról, hogy a Raspberry Pi futtatja -e a Raspberry Pi OS legújabb verzióját. Letöltheti a hivatalos Raspberry Pi webhelyről, és olyan eszközöket használhat, mint a Raspberry Pi Imager, hogy villogjon az SD -kártyára.
- Frissítse a rendszert: Nyissa meg a terminált, és futtassa a következő parancsokat a rendszercsomagok frissítéséhez:
sudo apt update
sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Az első GPIO Python szkript írása
Kezdjük egy egyszerű projekttel: egy LED villogása. Szüksége lesz a következő összetevőkre:
- Málna PI
- Vezetett
- 220-OHM ellenállás
- Kenyérlemez és jumper vezetékek
A LED bekötése:
- Csatlakoztassa a LED hosszú lábát (anódját) a GPIO 17 -eshez az ellenálláson keresztül.
- Csatlakoztassa a LED rövid lábát (katódját) egy föld (GND) csaphoz a Raspberry Pi -en.
Írjuk be a Python szkriptet a LED irányításához.
Pislogni egy LED -et Pythonnal
import RPi.GPIO as GPIO
import time
# Use BCM GPIO numbering
GPIO.setmode(GPIO.BCM)
# Set GPIO pin 17 as output
LED_PIN = 17
GPIO.setup(LED_PIN, GPIO.OUT)
try:
while True:
GPIO.output(LED_PIN, GPIO.HIGH) # Turn LED on
time.sleep(1) # Wait for 1 second
GPIO.output(LED_PIN, GPIO.LOW) # Turn LED off
time.sleep(1) # Wait for 1 second
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup() # Reset GPIO settings
Magyarázat:
-
import RPi.GPIO as GPIO
: Importálja az rpi.gpio könyvtárat. -
import time
: Importálja az alvásfunkciók időmodulját. -
GPIO.setmode(GPIO.BCM)
: A GPIO PIN számozási sémáját a BCM -re (Broadcom SOC csatorna) állítja be. -
GPIO.setup(LED_PIN, GPIO.OUT)
: Konfigurálja a GPIO 17 -et kimeneti tűként. - A
try
A blokk tartalmaz egy végtelen hurkot, amely másodpercenként be- és kikapcsolja a LED -et. -
GPIO.cleanup()
: Tisztítsa meg a GPIO beállításait a tiszta kijárat biztosítása érdekében.
A szkript futtatása
Mentse el a szkriptet blink_led.py
és futtassa azt a következő parancs segítségével:
python3 blink_led.py
Látnia kell, hogy a GPIO 17 -hez csatlakoztatott LED minden másodpercenként be- és kikapcsol. A szkript leállításához nyomja meg a gombot Ctrl + C
.
A projekt kibővítése
Miután elsajátította a LED villogását, a különféle érzékelők és működtetők kombinálásával feltárhatja a bonyolultabb projekteket. Íme néhány ötlet az induláshoz:
- Gomb interakció: A LED irányítását egy fizikai gomb segítségével. Ez magában foglalja a GPIO PIN beállítását bemenetként és annak állapotának elolvasását a Python szkriptben.
- Érzékelő adatnaplózás: Használjon olyan érzékelőket, mint a hőmérséklet vagy a mozgásérzékelők, az adatok gyűjtéséhez és az elemzéshez naplózáshoz.
- Otthoni automatizálás: A készülékeket távolról vezérli a GPIO vezérlés integrálásával a webes interfészekbe vagy a mobilalkalmazásokkal.
Egy gomb vezérlése
Hosszabbítsuk ki korábbi példánkat egy gomb hozzáadásával a LED vezérléséhez. Szüksége lesz:
- Nyomógomb
- 10K-ohm ellenállás
- További jumper vezetékek
A gomb huzalozása:
- Csatlakoztassa a gomb egyik lábát a GPIO PIN -hez.
- Csatlakoztassa a másik lábat a talajhoz (GND) csap egy 10k-ohm ellenálláson keresztül.
Itt van a Python szkript a LED vezérléséhez a gombbal:
import RPi.GPIO as GPIO
import time
# Use BCM GPIO numbering
GPIO.setmode(GPIO.BCM)
# Define GPIO pins
LED_PIN = 17
BUTTON_PIN = 27
# Set up GPIO pins
GPIO.setup(LED_PIN, GPIO.OUT)
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
try:
while True:
button_state = GPIO.input(BUTTON_PIN)
if button_state == GPIO.HIGH:
GPIO.output(LED_PIN, GPIO.HIGH) # Turn LED on
else:
GPIO.output(LED_PIN, GPIO.LOW) # Turn LED off
time.sleep(0.1)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
Magyarázat:
- A 27. GPIO PIN beállítása olyan bemenetként van beállítva, amelynek lefelé mutató ellenállása van, hogy biztosítsa a stabil állapotot, amikor a gombot nem nyomják meg.
- A szkript folyamatosan leolvassa a gomb állapotát, és bekapcsolja a LED -et, amikor a gombot megnyomja.
A legjobb gyakorlatok és biztonsági tippek
A GPIO -csapokkal való együttműködés során elengedhetetlen a bevált gyakorlatok betartása, hogy elkerüljék a málna Pi vagy a csatlakoztatott alkatrészek károsodását:
- Kapcsolja ki a hardver csatlakoztatásakor: A rövidzárlatok megakadályozása érdekében mindig kapcsolja ki a Raspberry Pi -t, mielőtt csatlakoztatja vagy leválasztja a hardvert.
- Használjon áramkorlátozó ellenállásokat: Védje az alkatrészeket megfelelő ellenállások felhasználásával, különösen a LED -ekkel való munka esetén.
- Duplán ellenőrizze a vezetékeket: Győződjön meg arról, hogy az összes csatlakozás helyes -e a GPIO -csapok véletlen károsodásának megakadályozására.
- Kezelje óvatosan: Kerülje a statikus kisülést a málna PI és az alkatrészek gondos kezelésével.
Következtetés
A GPIO -csapok Pythonnal történő vezérlése egy Raspberry Pi -n megnyitja az interaktív és automatizált projektek létrehozásának lehetőségeinek világát. Az egyszerű feladatoktól, mint például a villogó LED -ekig, a több érzékelőt és működtetővel foglalkozó bonyolultabb rendszerekig, a GPIO -vezérlés elsajátítása alapvető készség minden málna PI rajongó számára. Az útmutatóban felvázolt lépésekkel és a bevált gyakorlatok betartásával jó úton halad az izgalmas és innovatív projektek felépítéséhez.
Boldog bántalmazást!