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:
- 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.
- Zaktualizuj swój system: Otwórz terminal i uruchom następujące polecenia, aby zaktualizować pakiety systemowe:
sudo apt update
sudo apt upgrade -y
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:
- Podłącz długą nogę (anodę) LED do pinu GPIO 17 przez rezystor.
- 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:
- Podłącz jedną nogę przycisku do pinu GPIO 27.
- 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!