วิธีใช้ Raspberry Pi เพื่อควบคุม GPIO ด้วย Python

Raspberry Pi เป็นคอมพิวเตอร์บอร์ดเดี่ยวที่หลากหลายซึ่งได้กลายเป็นที่ชื่นชอบในหมู่มือสมัครเล่นนักการศึกษาและมืออาชีพเหมือนกัน หนึ่งในคุณสมบัติที่ทรงพลังที่สุดคือความสามารถในการโต้ตอบกับโลกทางกายภาพผ่านพินอินพุต/เอาต์พุต (GPIO) วัตถุประสงค์ทั่วไป ด้วยการใช้ประโยชน์จาก Python ซึ่งเป็นภาษาการเขียนโปรแกรมที่เป็นมิตรและทรงพลังคุณสามารถควบคุมหมุด GPIO เหล่านี้เพื่อสร้างโครงการที่หลากหลายตั้งแต่ไฟกะพริบ LED อย่างง่ายไปจนถึงระบบอัตโนมัติในบ้านที่ซับซ้อน ในโพสต์บล็อกนี้เราจะนำคุณผ่านพื้นฐานของการใช้ Raspberry Pi เพื่อควบคุม GPIO ด้วย Python

ทำความเข้าใจกับหมุด GPIO

พิน GPIO เป็นอินเทอร์เฟซอเนกประสงค์บน Raspberry Pi ที่ช่วยให้คุณสามารถเชื่อมต่อและควบคุมอุปกรณ์ภายนอกเช่น LEDs เซ็นเซอร์มอเตอร์และอื่น ๆ ขึ้นอยู่กับรูปแบบของ Raspberry Pi คุณจะพบว่ามีหมุด GPIO จำนวนมากที่จัดเรียงในรูปแบบเฉพาะ พินเหล่านี้สามารถกำหนดค่าเป็นอินพุตหรือเอาต์พุต:

  • ป้อนข้อมูล: อ่านสัญญาณจากอุปกรณ์ภายนอก (เช่นปุ่ม, เซ็นเซอร์)
  • เอาท์พุท: ส่งสัญญาณไปยังอุปกรณ์ภายนอก (เช่นไฟ LED, รีเลย์)

ก่อนที่จะดำน้ำในด้านการเขียนโปรแกรมจำเป็นต้องเข้าใจเค้าโครงพินของ Raspberry Pi ของคุณ อ้างถึงแผนภาพ Raspberry Pi GPIO Pinout อย่างเป็นทางการสำหรับข้อมูลที่ถูกต้องเฉพาะสำหรับรุ่นของคุณ

การตั้งค่า Raspberry Pi ของคุณ

ในการเริ่มควบคุมพิน GPIO ด้วย Python ให้แน่ใจว่า Raspberry Pi ของคุณตั้งค่าอย่างถูกต้อง:

  1. ติดตั้ง Raspberry Pi OS ล่าสุด: ตรวจสอบให้แน่ใจว่า Raspberry Pi ของคุณใช้งาน Raspberry Pi OS เวอร์ชันล่าสุด คุณสามารถดาวน์โหลดได้จากเว็บไซต์ Raspberry Pi อย่างเป็นทางการและใช้เครื่องมือเช่น Raspberry Pi Imager เพื่อแฟลชลงในการ์ด SD ของคุณ
  2. อัปเดตระบบของคุณ: เปิดเทอร์มินัลและเรียกใช้คำสั่งต่อไปนี้เพื่ออัปเดตแพ็คเกจระบบของคุณ:
sudo apt update
sudo apt upgrade -y
  • ติดตั้งไลบรารี Python GPIO: ห้องสมุด RPI.GPIO เป็นตัวเลือกยอดนิยมสำหรับการโต้ตอบกับพิน GPIO ใน Python ติดตั้งโดยใช้ PIP:
  • sudo apt install python3-rpi.gpio
    

    การเขียนสคริปต์ GPIO Python แรกของคุณ

    เริ่มต้นด้วยโครงการง่าย ๆ : กระพริบ LED คุณจะต้องมีส่วนประกอบต่อไปนี้:

    • Raspberry Pi
    • นำ
    • ตัวต้านทาน 220-OHM
    • เครื่องหั่นขนมปังและสายจัมเปอร์

    สายไฟ LED:

    1. เชื่อมต่อขายาว (ขั้วบวก) ของ LED ไปยังพิน GPIO 17 ผ่านตัวต้านทาน
    2. เชื่อมต่อขาสั้น (แคโทด) ของ LED กับพินพื้น (GND) บน Raspberry Pi

    ตอนนี้เรามาเขียนสคริปต์ Python เพื่อควบคุม LED

    กระพริบ LED ด้วย 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
    

    คำอธิบาย:

    • import RPi.GPIO as GPIO: นำเข้าไลบรารี RPI.GPIO
    • import time: นำเข้าโมดูลเวลาสำหรับฟังก์ชั่นการนอนหลับ
    • GPIO.setmode(GPIO.BCM): ตั้งค่ารูปแบบการกำหนดหมายเลขพิน GPIO เป็น BCM (ช่อง Broadcom SoC)
    • GPIO.setup(LED_PIN, GPIO.OUT): กำหนดค่า gpio pin 17 เป็นพินเอาต์พุต
    • ที่ try บล็อกมีลูปที่ไม่มีที่สิ้นสุดที่เปิดและปิด LED ทุกวินาที
    • GPIO.cleanup(): ทำความสะอาดการตั้งค่า GPIO เพื่อให้แน่ใจว่าทางออกที่สะอาด

    เรียกใช้สคริปต์ของคุณ

    บันทึกสคริปต์ของคุณเป็น blink_led.py และเรียกใช้โดยใช้คำสั่งต่อไปนี้:

    python3 blink_led.py
    

    คุณควรเห็น LED ที่เชื่อมต่อกับ GPIO Pin 17 กระพริบเปิดและปิดทุกวินาที หากต้องการหยุดสคริปต์ให้กด Ctrl + C.

    ขยายโครงการของคุณ

    เมื่อคุณเชี่ยวชาญการกระพริบ LED คุณสามารถสำรวจโครงการที่ซับซ้อนมากขึ้นโดยการรวมเซ็นเซอร์และแอคทูเอเตอร์ที่แตกต่างกัน นี่คือแนวคิดบางประการที่คุณจะเริ่มต้น:

    • การโต้ตอบของปุ่ม: ควบคุม LED โดยใช้ปุ่มทางกายภาพ สิ่งนี้เกี่ยวข้องกับการตั้งค่าพิน GPIO เป็นอินพุตและอ่านสถานะในสคริปต์ Python ของคุณ
    • การบันทึกข้อมูลเซ็นเซอร์: ใช้เซ็นเซอร์เช่นอุณหภูมิหรือเครื่องตรวจจับการเคลื่อนไหวเพื่อรวบรวมข้อมูลและเข้าสู่ระบบเพื่อการวิเคราะห์
    • ระบบอัตโนมัติในบ้าน: เครื่องใช้ไฟฟ้าควบคุมจากระยะไกลโดยรวมการควบคุม GPIO กับเว็บอินเตอร์เฟสหรือแอพมือถือ

    การควบคุมปุ่ม

    มาขยายตัวอย่างก่อนหน้าของเราโดยการเพิ่มปุ่มเพื่อควบคุม LED คุณจะต้อง:

    • ปุ่มกด
    • ตัวต้านทาน 10k-Ohm
    • สายจัมเปอร์เพิ่มเติม

    สายไฟปุ่ม:

    1. เชื่อมต่อปุ่มหนึ่งขากับ GPIO Pin 27
    2. เชื่อมต่อขาอีกข้างเข้ากับกราวด์ (GND) พินผ่านตัวต้านทาน 10K-OHM

    นี่คือสคริปต์ Python เพื่อควบคุม LED ด้วยปุ่ม:

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

    คำอธิบาย:

    • GPIO PIN 27 ถูกตั้งค่าเป็นอินพุตที่มีตัวต้านทานแบบดึงลงเพื่อให้แน่ใจว่าสถานะที่มั่นคงเมื่อปุ่มไม่ถูกกด
    • สคริปต์อ่านสถานะของปุ่มอย่างต่อเนื่องและเปิด LED เมื่อกดปุ่ม

    แนวทางปฏิบัติที่ดีที่สุดและเคล็ดลับความปลอดภัย

    เมื่อทำงานกับหมุด GPIO สิ่งสำคัญคือต้องปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดเพื่อหลีกเลี่ยงการทำลาย Raspberry Pi หรือส่วนประกอบที่เชื่อมต่อ:

    • ปิดเครื่องเมื่อเชื่อมต่อฮาร์ดแวร์: ปิด Raspberry Pi ของคุณเสมอก่อนที่จะเชื่อมต่อหรือตัดการเชื่อมต่อฮาร์ดแวร์เพื่อป้องกันการลัดวงจร
    • ใช้ตัวต้านทาน จำกัด ปัจจุบัน: ปกป้องส่วนประกอบของคุณโดยใช้ตัวต้านทานที่เหมาะสมโดยเฉพาะอย่างยิ่งเมื่อทำงานกับ LED
    • สายตรวจสอบสองครั้ง: ตรวจสอบให้แน่ใจว่าการเชื่อมต่อทั้งหมดถูกต้องเพื่อป้องกันความเสียหายจากอุบัติเหตุจากหมุด GPIO
    • จัดการด้วยความระมัดระวัง: หลีกเลี่ยงการปล่อยแบบคงที่โดยการจัดการ Raspberry Pi และส่วนประกอบอย่างระมัดระวัง

    บทสรุป

    การควบคุมพิน GPIO ด้วย Python บน Raspberry Pi เปิดโลกแห่งความเป็นไปได้ในการสร้างโครงการแบบโต้ตอบและอัตโนมัติ จากงานง่าย ๆ เช่นไฟ LED กระพริบไปจนถึงระบบที่ซับซ้อนมากขึ้นที่เกี่ยวข้องกับเซ็นเซอร์และแอคทูเอเตอร์หลายตัวการควบคุม GPIO เป็นทักษะพื้นฐานสำหรับผู้ที่ชื่นชอบราสเบอร์รี่ Pi โดยทำตามขั้นตอนที่ระบุไว้ในคู่มือนี้และปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดคุณจะสามารถสร้างโครงการที่น่าตื่นเต้นและเป็นนวัตกรรมได้ดี

    มีความสุขในการซ่อมแซม!

    แสดงความคิดเห็น

    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.