De Raspberry Pi is een veelzijdige computer met één bord die een favoriet is geworden onder hobbyisten, opvoeders en professionals. Een van de krachtigste kenmerken is de mogelijkheid om met de fysieke wereld te communiceren via zijn algemene input/output (GPIO) -pennen. Door gebruik te maken van Python, een beginnersvriendelijke en krachtige programmeertaal, kunt u deze GPIO-pinnen bedienen om een breed scala aan projecten te bouwen, van eenvoudige LED-knipperingen tot complexe thuisautomatiseringssystemen. In deze blogpost zullen we u door de basis van het gebruik van Raspberry Pi leiden om GPIO met Python te besturen.
GPIO -pinnen begrijpen
GPIO -pinnen zijn veelzijdige interfaces op de Raspberry Pi waarmee u externe apparaten zoals LED's, sensoren, motoren en meer kunt verbinden en besturen. Afhankelijk van het model van Raspberry Pi, vindt u een variërend aantal GPIO -pins gerangschikt in een specifiek patroon. Deze pinnen kunnen worden geconfigureerd als ingangen of uitgangen:
- Invoer: Lees signalen van externe apparaten (bijv. Knoppen, sensoren).
- Uitvoer: Stuur signalen naar externe apparaten (bijv. LED's, relais).
Voordat je in het programmeeraspect duikt, is het essentieel om de pin -indeling van je Raspberry Pi te begrijpen. Raadpleeg het officiële Raspberry Pi GPIO Pinout -diagram voor nauwkeurige informatie die specifiek is voor uw model.
Uw Raspberry Pi opzetten
Zorg ervoor dat uw Raspberry Pi correct is ingesteld om GPIO -pinnen met Python te besturen:
- Installeer het nieuwste Raspberry Pi OS: Zorg ervoor dat uw Raspberry Pi de nieuwste versie van Raspberry Pi Os uitvoert. U kunt het downloaden van de officiële Raspberry PI -website en tools zoals Raspberry Pi Imager gebruiken om het op uw SD -kaart te laten flitsen.
- Update uw systeem: Open de terminal en voer de volgende opdrachten uit om uw systeempakketten bij te werken:
sudo apt update
sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Je eerste GPIO Python -script schrijven
Laten we beginnen met een eenvoudig project: knipperen een LED. Je hebt de volgende componenten nodig:
- Raspberry Pi
- Geleid
- 220-ohm weerstand
- Breadboard en jumper draden
De LED bedraden:
- Sluit het lange been (anode) van de LED aan met GPIO -pin 17 door de weerstand.
- Sluit de korte been (kathode) van de LED aan op een grond (GND) pin op de frambozen Pi.
Laten we nu het Python -script schrijven om de LED te besturen.
Knipperend een LED met 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
Uitleg:
-
import RPi.GPIO as GPIO
: Importeert de RPI.GPIO -bibliotheek. -
import time
: Importeert de tijdmodule voor slaapfunctionaliteit. -
GPIO.setmode(GPIO.BCM)
: Stelt het GPIO PIN -nummeringsschema in op BCM (Broadcom SOC -kanaal). -
GPIO.setup(LED_PIN, GPIO.OUT)
: Configureert GPIO Pin 17 als een uitvoerpen. - De
try
Block bevat een oneindige lus die de LED elke seconde in- en uitschakelt. -
GPIO.cleanup()
: Ruimt de GPIO -instellingen op om een schone uitgang te garanderen.
Uw script uitvoeren
Sla uw script op als blink_led.py
en voer het uit met de volgende opdracht:
python3 blink_led.py
Je zou de LED moeten zien verbonden met GPIO Pin 17 elke seconde aan en uit knipperen. Druk op om het script te stoppen Ctrl + C
.
Uw project uitbreiden
Als je eenmaal knippert met een LED, kun je meer complexe projecten verkennen door verschillende sensoren en actuatoren te combineren. Hier zijn een paar ideeën om u op weg te helpen:
- Knopinteractie: Controleer de LED met een fysieke knop. Dit omvat het opzetten van een GPIO -pin als invoer en het lezen van de status in je Python -script.
- Sensorgegevensregistratie: Gebruik sensoren zoals temperatuur- of bewegingsdetectoren om gegevens te verzamelen en te loggen voor analyse.
- Home Automatisering: Controle apparaten op afstand door GPIO -besturingselement te integreren met webinterfaces of mobiele apps.
Een knop besturen
Laten we ons vorige voorbeeld uitbreiden door een knop toe te voegen om de LED te bedienen. Je hebt nodig:
- Drukknop
- 10k-ohm weerstand
- Extra jumper draden
De knop bedraden:
- Sluit een deel van de knop aan op GPIO Pin 27.
- Sluit het andere been aan op een grond (GND) pin door een 10K-OHM-weerstand.
Hier is het Python -script om de LED met de knop te bedienen:
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()
Uitleg:
- GPIO Pin 27 is ingesteld als een ingang met een pull-down weerstand om een stabiele toestand te garanderen wanneer de knop niet wordt ingedrukt.
- Het script leest continu de status van de knop en zet de LED aan wanneer de knop wordt ingedrukt.
Best practices en veiligheidstips
Bij het werken met GPIO -pinnen is het cruciaal om zich te houden aan best practices om te voorkomen dat uw Raspberry Pi of verbonden componenten worden beschadigd:
- Uitschakelen bij het aansluiten van hardware: Schakel altijd uw Raspberry Pi uit voordat u hardware verbindt of loskoppelt om kort circuits te voorkomen.
- Gebruik weerstemmende weerstanden: Bescherm uw componenten door de juiste weerstanden te gebruiken, vooral bij het werken met LED's.
- Double-controle bedrading: Zorg ervoor dat alle verbindingen correct zijn om toevallige schade aan GPIO -pinnen te voorkomen.
- Hanteren met zorg: Vermijd statische ontlading door de Raspberry Pi en componenten zorgvuldig af te handelen.
Conclusie
Het besturen van GPIO -pinnen met Python op een Raspberry Pi opent een wereld van mogelijkheden voor het creëren van interactieve en geautomatiseerde projecten. Van eenvoudige taken zoals knipperende LED's tot complexere systemen met meerdere sensoren en actuatoren, het beheersen van GPIO -besturing is een fundamentele vaardigheid voor elke Raspberry PI -enthousiasteling. Door de stappen in deze gids te volgen en zich aan best practices te houden, bent u goed op weg naar het bouwen van spannende en innovatieve projecten.
Blij knutselen!