Jak używać Raspberry Pi do kontrolowania GPIO z Pythonem

Raspberry Pi to wszechstronny komputer jednorazowy, który stał się ulubieńcem zarówno hobbystów, nauczycieli i profesjonalistów. Jedną z jego najpotężniejszych cech jest zdolność do interakcji ze światem fizycznym poprzez jego ogólne styki wejściowe/wyjściowe (GPIO). Wykorzystując Python, przyjazny dla początkujących i potężny język programowania, możesz kontrolować te piny GPIO w celu zbudowania szerokiej gamy projektów, od prostych mrugnięć LED po złożone systemy automatyki domowej. W tym poście na blogu przeprowadzimy Cię przez podstawy używania Raspberry Pi do kontrolowania GPIO z Pythonem.

Zrozumienie pinów GPIO

Piny GPIO to wszechstronne interfejsy na Raspberry Pi, które pozwalają łączyć i kontrolować urządzenia zewnętrzne, takie jak diody LED, czujniki, silniki i wiele innych. W zależności od modelu Raspberry Pi znajdziesz różną liczbę pinów GPIO ułożonych w określonym wzorze. Te piny można skonfigurować jako dane wejściowe lub wyjścia:

  • Wejście: Odczytaj sygnały z urządzeń zewnętrznych (np. Przyciski, czujniki).
  • Wyjście: Wyślij sygnały do ​​urządzeń zewnętrznych (np. LED, przekaźniki).

Przed zanurzeniem się w aspekcie programowania konieczne jest zrozumienie układu pinu Raspberry Pi. Dokładne informacje specyficzne dla twojego modelu można znaleźć w oficjalnym schemacie pinout Raspberry PI GPIO.

Konfigurowanie Raspberry Pi

Aby rozpocząć kontrolowanie pinów GPIO z Pythonem, upewnij się, że Raspberry Pi jest prawidłowo skonfigurowany:

  1. Zainstaluj najnowszy system Raspberry Pi: Upewnij się, że Raspberry Pi działa najnowsza wersja Raspberry Pi OS. Możesz pobrać go z oficjalnej witryny Raspberry Pi i użyć narzędzi takich jak Raspberry Pi Imager, aby sflashować go na karcie SD.
  2. Zaktualizuj swój system: Otwórz terminal i uruchom następujące polecenia, aby zaktualizować pakiety systemowe:
sudo apt update
sudo apt upgrade -y
  • Zainstaluj bibliotekę Python GPIO: Biblioteka RPI.GPIO jest popularnym wyborem do interakcji z szpilkami GPIO w Python. Zainstaluj go za pomocą PIP:
  • sudo apt install python3-rpi.gpio
    

    Pisanie pierwszego skryptu GPIO Python

    Zacznijmy od prostego projektu: migania diody LED. Będziesz potrzebować następujących elementów:

    • Raspberry Pi
    • PROWADZONY
    • Rezystor 220-OHM
    • Druty chleba i skorupy

    Okablowanie diody LED:

    1. Podłącz długą nogę (anodę) LED do pinu GPIO 17 przez rezystor.
    2. Podłącz krótką nogę (katodę) diody LED do gruntu (GND) na Raspberry Pi.

    Teraz napiszmy skrypt Pythona, aby kontrolować diodę LED.

    Mruganie diody LED z Pythonem

    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
    

    Wyjaśnienie:

    • import RPi.GPIO as GPIO: Importuje bibliotekę RPI.GPIO.
    • import time: Importuje moduł czasowy dla funkcji snu.
    • GPIO.setmode(GPIO.BCM): Ustawia schemat numeracji pinów GPIO na BCM (kanał Broadcom SOC).
    • GPIO.setup(LED_PIN, GPIO.OUT): Konfiguruje pin GPIO 17 jako pin wyjściowy.
    • . try Block zawiera nieskończoną pętlę, która włącza i wyłącza diodę LED co sekundę.
    • GPIO.cleanup(): Oczyszcza ustawienia GPIO, aby zapewnić czyste wyjście.

    Uruchamianie twojego skryptu

    Zapisz swój skrypt jako blink_led.py i uruchom go za pomocą następującego polecenia:

    python3 blink_led.py
    

    Powinieneś zobaczyć diodę LED podłączoną do GPIO PIN 17 migającą i wyłączoną co sekundę. Aby zatrzymać skrypt, naciśnij Ctrl + C.

    Rozszerzanie projektu

    Po opanowaniu migania diody LED możesz odkrywać bardziej złożone projekty, łącząc różne czujniki i siłowniki. Oto kilka pomysłów na początek:

    • Interakcja przycisku: Kontroluj diodę LED za pomocą przycisku fizycznego. Obejmuje to konfigurowanie styku GPIO jako wejścia i odczyt jego stanu w skrypcie Python.
    • Rejestrowanie danych czujnika: Użyj czujników takich jak wykrywacze temperatury lub ruchu, aby zbierać dane i zalogować je do analizy.
    • Automatyzacja domu: Urządzenia kontrolne zdalnie poprzez integrację sterowania GPIO z interfejsami internetowymi lub aplikacjami mobilnymi.

    Kontrolowanie przycisku

    Rozszerzmy nasz poprzedni przykład, dodając przycisk do kontrolowania diody LED. Będziesz potrzebować:

    • Przycisk
    • Rezystor 10K-OHM
    • Dodatkowe przewody zworki

    Okablowanie przycisku:

    1. Podłącz jedną nogę przycisku do pinu GPIO 27.
    2. Podłącz drugą nogę do naziemnego (GND) szpilką przez rezystor 10k-ohm.

    Oto skrypt Python do kontrolowania diody LED przyciskiem:

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

    Wyjaśnienie:

    • GPIO Pin 27 jest konfigurowany jako wejście z rezystorem rozciągniętym, aby zapewnić stabilny stan, gdy przycisk nie zostanie naciśnięty.
    • Skrypt w sposób ciągły odczytuje stan przycisku i włącza LED po naciśnięciu przycisku.

    Najlepsze praktyki i wskazówki dotyczące bezpieczeństwa

    Podczas pracy z szpilkami GPIO kluczowe jest przestrzeganie najlepszych praktyk, aby uniknąć uszkodzenia Raspberry Pi lub połączonych komponentów:

    • Wyłącz podczas łączenia sprzętu: Zawsze wyłącz swoje Raspberry Pi przed podłączeniem lub odłączeniem sprzętu, aby zapobiec krótkim obwodom.
    • Użyj rezystorów ograniczających prąd: Chroń swoje komponenty za pomocą odpowiednich rezystorów, szczególnie podczas pracy z diodami LED.
    • Okablowanie dwukrotnie: Upewnij się, że wszystkie połączenia są prawidłowe, aby zapobiec przypadkowemu uszkodzeniu pinów GPIO.
    • Radzenie sobie z ostrożnością: Unikaj statycznego rozładowania poprzez ostrożne obsługę Raspberry Pi i komponentów.

    Wniosek

    Kontrolowanie pinów GPIO z Pythonem na Raspberry Pi otwiera świat możliwości tworzenia interaktywnych i zautomatyzowanych projektów. Od prostych zadań, takich jak miganie diod LED po bardziej złożone systemy obejmujące wiele czujników i siłowników, opanowanie GPIO Control jest podstawową umiejętnością dla każdego entuzjasty Raspberry PI. Postępując zgodnie z krokami przedstawionymi w tym przewodniku i przestrzegając najlepszych praktyk, będziesz na dobrej drodze do budowania ekscytujących i innowacyjnych projektów.

    Szczęśliwy majsterkowanie!

    Zostaw komentarz

    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.