Ang Raspberry Pi ay isang maraming nalalaman solong-board computer na naging paborito sa mga hobbyist, tagapagturo, at mga propesyonal na magkamukha. Ang isa sa mga pinakamalakas na tampok nito ay ang kakayahang makipag -ugnay sa pisikal na mundo sa pamamagitan ng pangkalahatang layunin ng input/output (GPIO). Sa pamamagitan ng pag-agaw sa Python, isang nagsisimula-friendly at malakas na wika ng programming, maaari mong kontrolin ang mga GPIO pin na ito upang makabuo ng isang malawak na hanay ng mga proyekto, mula sa mga simpleng LED blinker hanggang sa kumplikadong mga sistema ng automation ng bahay. Sa post na ito ng blog, lalakad ka namin sa mga pangunahing kaalaman sa paggamit ng Raspberry Pi upang makontrol ang GPIO kay Python.
Pag -unawa sa GPIO Pins
Ang mga GPIO pin ay maraming nalalaman interface sa Raspberry Pi na nagbibigay -daan sa iyo upang kumonekta at makontrol ang mga panlabas na aparato tulad ng mga LED, sensor, motor, at marami pa. Depende sa modelo ng Raspberry Pi, makakahanap ka ng isang iba't ibang bilang ng mga GPIO pin na nakaayos sa isang tiyak na pattern. Ang mga pin na ito ay maaaring mai -configure bilang alinman sa mga input o output:
- Input: Basahin ang mga signal mula sa mga panlabas na aparato (hal., Mga pindutan, sensor).
- Output: Magpadala ng mga signal sa mga panlabas na aparato (hal., LEDs, relay).
Bago sumisid sa aspeto ng programming, mahalagang maunawaan ang layout ng pin ng iyong Raspberry Pi. Sumangguni sa opisyal na Raspberry Pi GPIO pinout diagram para sa tumpak na impormasyon na tiyak sa iyong modelo.
Pag -set up ng iyong Raspberry Pi
Upang simulan ang pagkontrol ng mga pin ng GPIO na may Python, tiyakin na ang iyong Raspberry Pi ay naka -set up nang tama:
- I -install ang pinakabagong Raspberry Pi OS: Siguraduhin na ang iyong Raspberry Pi ay nagpapatakbo ng pinakabagong bersyon ng Raspberry Pi OS. Maaari mo itong i -download mula sa opisyal na website ng Raspberry Pi at gumamit ng mga tool tulad ng Raspberry Pi Imager upang i -flash ito sa iyong SD card.
- I -update ang iyong system: Buksan ang terminal at patakbuhin ang mga sumusunod na utos upang mai -update ang iyong mga pakete ng system:
sudo apt update
sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Sinusulat ang iyong unang script ng GPIO Python
Magsimula tayo sa isang simpleng proyekto: kumikislap ng isang LED. Kakailanganin mo ang mga sumusunod na sangkap:
- Raspberry Pi
- Pinangunahan
- 220-ohm risistor
- Mga wire ng tinapay at jumper
Ang mga kable ng LED:
- Ikonekta ang mahabang binti (anode) ng LED sa GPIO pin 17 sa pamamagitan ng risistor.
- Ikonekta ang maikling binti (katod) ng LED sa isang ground (GND) pin sa Raspberry Pi.
Ngayon, isulat natin ang script ng Python upang makontrol ang LED.
Kumikislap ng isang LED na may 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
Paliwanag:
-
import RPi.GPIO as GPIO
: Import ang library ng RPI.GPIO. -
import time
: I -import ang module ng oras para sa pag -andar ng pagtulog. -
GPIO.setmode(GPIO.BCM)
: Itinatakda ang scheme ng gpio pin numbering sa BCM (Broadcom SOC channel). -
GPIO.setup(LED_PIN, GPIO.OUT)
: I -configure ang gpio pin 17 bilang isang output pin. - Ang
try
Ang bloke ay naglalaman ng isang walang katapusang loop na lumiliko ang LED at off bawat segundo. -
GPIO.cleanup()
: Linisin ang mga setting ng GPIO upang matiyak ang isang malinis na exit.
Pagpapatakbo ng iyong script
I -save ang iyong script bilang blink_led.py
at patakbuhin ito gamit ang sumusunod na utos:
python3 blink_led.py
Dapat mong makita ang LED na konektado sa GPIO pin 17 na kumikislap sa bawat segundo. Upang ihinto ang script, pindutin Ctrl + C
.
Pagpapalawak ng iyong proyekto
Kapag pinagkadalubhasaan mo ang isang LED, maaari mong galugarin ang mas kumplikadong mga proyekto sa pamamagitan ng pagsasama ng iba't ibang mga sensor at actuators. Narito ang ilang mga ideya upang makapagsimula ka:
- Pakikipag -ugnay sa Button: Kontrolin ang LED gamit ang isang pisikal na pindutan. Ito ay nagsasangkot ng pag -set up ng isang GPIO pin bilang isang input at pagbabasa ng estado nito sa iyong script ng Python.
- Pag -log ng data ng sensor: Gumamit ng mga sensor tulad ng temperatura o detektor ng paggalaw upang mangolekta ng data at mag -log ito para sa pagsusuri.
- Home Automation: Kontrolin ang mga kasangkapan sa pamamagitan ng pagsasama ng kontrol ng GPIO sa mga web interface o mobile app.
Pagkontrol ng isang pindutan
Palawakin natin ang aming nakaraang halimbawa sa pamamagitan ng pagdaragdag ng isang pindutan upang makontrol ang LED. Kakailanganin mo:
- Pushbutton
- 10k-ohm risistor
- Karagdagang mga wire ng jumper
Ang mga kable ng pindutan:
- Ikonekta ang isang binti ng pindutan sa GPIO pin 27.
- Ikonekta ang iba pang binti sa isang ground (GND) pin sa pamamagitan ng isang 10K-OHM risistor.
Narito ang script ng Python upang makontrol ang LED gamit ang pindutan:
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()
Paliwanag:
- Ang GPIO pin 27 ay naka-set up bilang isang input na may isang pull-down risistor upang matiyak ang isang matatag na estado kapag ang pindutan ay hindi pinindot.
- Patuloy na binabasa ng script ang estado ng pindutan at lumiliko ang LED kapag pinindot ang pindutan.
Pinakamahusay na kasanayan at mga tip sa kaligtasan
Kapag nagtatrabaho sa GPIO pin, mahalaga na sumunod sa pinakamahusay na kasanayan upang maiwasan ang pagsira sa iyong Raspberry Pi o mga konektadong sangkap:
- Power off kapag kumokonekta sa hardware: Laging patayin ang iyong Raspberry Pi bago kumonekta o mag -disconnect ng hardware upang maiwasan ang mga maikling circuit.
- Gumamit ng mga kasalukuyang naglilimita sa mga resistors: Protektahan ang iyong mga sangkap sa pamamagitan ng paggamit ng naaangkop na resistors, lalo na kapag nagtatrabaho sa mga LED.
- Double-check wiring: Tiyakin na ang lahat ng mga koneksyon ay tama upang maiwasan ang hindi sinasadyang pinsala sa mga pin ng GPIO.
- Pangasiwaan nang may pag -aalaga: Iwasan ang static na paglabas sa pamamagitan ng paghawak ng raspberry Pi at mga sangkap nang maingat.
Konklusyon
Ang pagkontrol sa mga pin ng GPIO na may Python sa isang Raspberry Pi ay nagbubukas ng isang mundo ng mga posibilidad para sa paglikha ng mga interactive at awtomatikong proyekto. Mula sa mga simpleng gawain tulad ng kumikislap na mga LED sa mas kumplikadong mga sistema na kinasasangkutan ng maraming mga sensor at actuators, ang mastering control ng GPIO ay isang pangunahing kasanayan para sa anumang mahilig sa Raspberry Pi. Sa pamamagitan ng pagsunod sa mga hakbang na nakabalangkas sa gabay na ito at pagsunod sa mga pinakamahusay na kasanayan, magiging maayos ka sa iyong paraan sa pagbuo ng mga kapana -panabik at makabagong mga proyekto.
Maligayang pag -ikot!