Cum se folosește Raspberry Pi pentru a controla GPIO cu Python

Raspberry Pi este un computer versatil cu un singur bord, care a devenit favorit în rândul pasionaților, educatorilor și profesioniștilor deopotrivă. Una dintre cele mai puternice caracteristici ale sale este capacitatea de a interacționa cu lumea fizică prin intermediul pinilor sale de intrare/ieșire (GPIO) cu scop general. Utilizând Python, un limbaj de programare pentru începători și puternic, puteți controla acești pini GPIO pentru a construi o gamă largă de proiecte, de la Blinkers LED simple la sisteme complexe de automatizare a locuințelor. În această postare pe blog, vă vom parcurge elementele de bază ale utilizării Raspberry Pi pentru a controla GPIO cu Python.

Înțelegerea acelor GPIO

Pinii GPIO sunt interfețe versatile pe Raspberry Pi care vă permit să conectați și să controlați dispozitive externe precum LED -uri, senzori, motoare și multe altele. În funcție de modelul Raspberry Pi, veți găsi un număr diferit de pini GPIO aranjate într -un model specific. Acești pini pot fi configurați fie ca intrări, fie ca ieșiri:

  • Intrare: Citiți semnale de pe dispozitivele externe (de exemplu, butoane, senzori).
  • Ieșire: Trimiteți semnale către dispozitivele externe (de exemplu, LED -uri, relee).

Înainte de a vă scufunda în aspectul de programare, este esențial să înțelegeți aspectul pin al Raspberry Pi. Consultați diagrama oficială de pinout Raspberry PI GPIO pentru informații exacte specifice modelului dvs.

Configurarea Raspberry Pi

Pentru a începe controlul acelor GPIO cu Python, asigurați -vă că Raspberry Pi este configurat corect:

  1. Instalați cel mai recent Raspberry Pi OS: Asigurați -vă că Raspberry Pi rulează cea mai recentă versiune de Raspberry Pi OS. Îl puteți descărca de pe site -ul oficial Raspberry Pi și puteți utiliza instrumente precum Raspberry Pi Imager pentru a -l aprinde pe cardul SD.
  2. Actualizați -vă sistemul: Deschideți terminalul și rulați următoarele comenzi pentru a actualiza pachetele de sistem:
sudo apt update
sudo apt upgrade -y
  • Instalați biblioteca Python GPIO: Biblioteca RPI.GPIO este o alegere populară pentru interacțiunea cu pinii GPIO în Python. Instalați -l folosind PIP:
  • sudo apt install python3-rpi.gpio
    

    Scrierea primului tău script GPIO Python

    Să începem cu un proiect simplu: clipind un LED. Veți avea nevoie de următoarele componente:

    • Zmeură pi
    • LED
    • Rezistență de 220-ohm
    • Tablă de pâine și jumper

    Cablarea LED -ului:

    1. Conectați piciorul lung (anod) al LED -ului la pinul GPIO 17 prin rezistență.
    2. Conectați piciorul scurt (catod) al LED -ului la un pin de sol (GND) de pe zmeura pi.

    Acum, să scriem scriptul Python pentru a controla LED -ul.

    Clipesc un LED cu Python

    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
    

    Explicaţie:

    • import RPi.GPIO as GPIO: Importă biblioteca RPI.GPIO.
    • import time: Importă modulul de timp pentru funcționalitatea somnului.
    • GPIO.setmode(GPIO.BCM): Setează schema de numerotare a pinului GPIO la BCM (Broadcom Soc Channel).
    • GPIO.setup(LED_PIN, GPIO.OUT): Configurează pinul GPIO 17 ca pin de ieșire.
    • try Blocul conține o buclă infinită care pornește și oprită LED -ul în fiecare secundă.
    • GPIO.cleanup(): Curăță setările GPIO pentru a asigura o ieșire curată.

    Rulând scriptul tău

    Salvați -vă scriptul ca blink_led.py și rulați -o folosind următoarea comandă:

    python3 blink_led.py
    

    Ar trebui să vedeți LED -ul conectat la pinul GPIO 17 clipind și oprit în fiecare secundă. Pentru a opri scriptul, apăsați Ctrl + C.

    Extinderea proiectului

    După ce ați stăpânit clipirea unui LED, puteți explora proiecte mai complexe combinând diferiți senzori și actuatori. Iată câteva idei pentru a vă începe:

    • Interacțiune cu buton: Controlează LED -ul folosind un buton fizic. Aceasta implică configurarea unui pin GPIO ca intrare și citirea stării sale în scriptul dvs. Python.
    • Jurnal de date ale senzorului: Utilizați senzori precum detectoarele de temperatură sau de mișcare pentru a colecta date și a -l conecta pentru analiză.
    • Automatizare la domiciliu: Aparate de control de la distanță prin integrarea controlului GPIO cu interfețe web sau aplicații mobile.

    Controlul unui buton

    Să extindem exemplul nostru anterior adăugând un buton pentru a controla LED -ul. Veți avea nevoie:

    • Buton
    • Rezistență de 10k-ohm
    • Fire suplimentare de jumper

    Cablarea butonului:

    1. Conectați un picior al butonului la PIN -ul GPIO 27.
    2. Conectați celălalt picior la un pin la sol (GND) printr-un rezistor de 10k-ohm.

    Iată scriptul Python pentru a controla LED -ul cu butonul:

    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()
    

    Explicaţie:

    • Pinul GPIO 27 este configurat ca o intrare cu un rezistor de derulare pentru a asigura o stare stabilă atunci când butonul nu este apăsat.
    • Scriptul citește continuu starea butonului și pornește LED -ul când este apăsat butonul.

    Cele mai bune practici și sfaturi de siguranță

    Când lucrați cu pini GPIO, este crucial să respectați cele mai bune practici pentru a evita deteriorarea zmeurii PI sau a componentelor conectate:

    • Opriți -vă la conectarea hardware -ului: Opriți întotdeauna Raspberry Pi înainte de a conecta sau deconecta hardware pentru a preveni scurtcircuitele.
    • Utilizați rezistențe de limitare a curentului: Protejați -vă componentele folosind rezistențe adecvate, în special atunci când lucrați cu LED -uri.
    • Cablaj dublu-verificare: Asigurați -vă că toate conexiunile sunt corecte pentru a preveni deteriorarea accidentală a acelor GPIO.
    • Manevrați cu grijă: Evitați descărcarea statică prin manipularea cu atenție a zmeurii PI și a componentelor.

    Concluzie

    Controlul acelor GPIO cu Python pe un Raspberry Pi deschide o lume de posibilități pentru crearea de proiecte interactive și automatizate. De la sarcini simple, cum ar fi LED -urile de clipire până la sisteme mai complexe care implică mai mulți senzori și actuatoare, stăpânirea controlului GPIO este o abilitate fundamentală pentru orice pasionat de Raspberry PI. Urmărind pașii prezentate în acest ghid și respectând cele mai bune practici, veți fi bine pe drumul dvs. de a construi proiecte interesante și inovatoare.

    Tinkering fericit!

    Lasă un comentariu

    Notice an Issue? Have a Suggestion?
    If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.