Paano gamitin ang Raspberry Pi upang makontrol ang GPIO sa Python

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:

  1. 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.
  2. 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
  • I -install ang Python GPIO Library: Ang library ng RPI.GPIO ay isang tanyag na pagpipilian para sa pakikipag -ugnay sa GPIO pin sa Python. I -install ito gamit ang PIP:
  • 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:

    1. Ikonekta ang mahabang binti (anode) ng LED sa GPIO pin 17 sa pamamagitan ng risistor.
    2. 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:

    1. Ikonekta ang isang binti ng pindutan sa GPIO pin 27.
    2. 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!

    Mag -iwan ng komento

    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.