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 ของคุณตั้งค่าอย่างถูกต้อง:
- ติดตั้ง Raspberry Pi OS ล่าสุด: ตรวจสอบให้แน่ใจว่า Raspberry Pi ของคุณใช้งาน Raspberry Pi OS เวอร์ชันล่าสุด คุณสามารถดาวน์โหลดได้จากเว็บไซต์ Raspberry Pi อย่างเป็นทางการและใช้เครื่องมือเช่น Raspberry Pi Imager เพื่อแฟลชลงในการ์ด SD ของคุณ
- อัปเดตระบบของคุณ: เปิดเทอร์มินัลและเรียกใช้คำสั่งต่อไปนี้เพื่ออัปเดตแพ็คเกจระบบของคุณ:
การเขียนสคริปต์ GPIO Python แรกของคุณ
เริ่มต้นด้วยโครงการง่าย ๆ : กระพริบ LED คุณจะต้องมีส่วนประกอบต่อไปนี้:
- Raspberry Pi
- นำ
- ตัวต้านทาน 220-OHM
- เครื่องหั่นขนมปังและสายจัมเปอร์
สายไฟ LED:
- เชื่อมต่อขายาว (ขั้วบวก) ของ LED ไปยังพิน GPIO 17 ผ่านตัวต้านทาน
- เชื่อมต่อขาสั้น (แคโทด) ของ LED กับพินพื้น (GND) บน Raspberry Pi
ตอนนี้เรามาเขียนสคริปต์ Python เพื่อควบคุม LED
กระพริบ LED ด้วย Python
คำอธิบาย:
-
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
และเรียกใช้โดยใช้คำสั่งต่อไปนี้:
คุณควรเห็น LED ที่เชื่อมต่อกับ GPIO Pin 17 กระพริบเปิดและปิดทุกวินาที หากต้องการหยุดสคริปต์ให้กด Ctrl + C
.
ขยายโครงการของคุณ
เมื่อคุณเชี่ยวชาญการกระพริบ LED คุณสามารถสำรวจโครงการที่ซับซ้อนมากขึ้นโดยการรวมเซ็นเซอร์และแอคทูเอเตอร์ที่แตกต่างกัน นี่คือแนวคิดบางประการที่คุณจะเริ่มต้น:
- การโต้ตอบของปุ่ม: ควบคุม LED โดยใช้ปุ่มทางกายภาพ สิ่งนี้เกี่ยวข้องกับการตั้งค่าพิน GPIO เป็นอินพุตและอ่านสถานะในสคริปต์ Python ของคุณ
- การบันทึกข้อมูลเซ็นเซอร์: ใช้เซ็นเซอร์เช่นอุณหภูมิหรือเครื่องตรวจจับการเคลื่อนไหวเพื่อรวบรวมข้อมูลและเข้าสู่ระบบเพื่อการวิเคราะห์
- ระบบอัตโนมัติในบ้าน: เครื่องใช้ไฟฟ้าควบคุมจากระยะไกลโดยรวมการควบคุม GPIO กับเว็บอินเตอร์เฟสหรือแอพมือถือ
การควบคุมปุ่ม
มาขยายตัวอย่างก่อนหน้าของเราโดยการเพิ่มปุ่มเพื่อควบคุม LED คุณจะต้อง:
- ปุ่มกด
- ตัวต้านทาน 10k-Ohm
- สายจัมเปอร์เพิ่มเติม
สายไฟปุ่ม:
- เชื่อมต่อปุ่มหนึ่งขากับ GPIO Pin 27
- เชื่อมต่อขาอีกข้างเข้ากับกราวด์ (GND) พินผ่านตัวต้านทาน 10K-OHM
นี่คือสคริปต์ Python เพื่อควบคุม LED ด้วยปุ่ม:
คำอธิบาย:
- GPIO PIN 27 ถูกตั้งค่าเป็นอินพุตที่มีตัวต้านทานแบบดึงลงเพื่อให้แน่ใจว่าสถานะที่มั่นคงเมื่อปุ่มไม่ถูกกด
- สคริปต์อ่านสถานะของปุ่มอย่างต่อเนื่องและเปิด LED เมื่อกดปุ่ม
แนวทางปฏิบัติที่ดีที่สุดและเคล็ดลับความปลอดภัย
เมื่อทำงานกับหมุด GPIO สิ่งสำคัญคือต้องปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดเพื่อหลีกเลี่ยงการทำลาย Raspberry Pi หรือส่วนประกอบที่เชื่อมต่อ:
- ปิดเครื่องเมื่อเชื่อมต่อฮาร์ดแวร์: ปิด Raspberry Pi ของคุณเสมอก่อนที่จะเชื่อมต่อหรือตัดการเชื่อมต่อฮาร์ดแวร์เพื่อป้องกันการลัดวงจร
- ใช้ตัวต้านทาน จำกัด ปัจจุบัน: ปกป้องส่วนประกอบของคุณโดยใช้ตัวต้านทานที่เหมาะสมโดยเฉพาะอย่างยิ่งเมื่อทำงานกับ LED
- สายตรวจสอบสองครั้ง: ตรวจสอบให้แน่ใจว่าการเชื่อมต่อทั้งหมดถูกต้องเพื่อป้องกันความเสียหายจากอุบัติเหตุจากหมุด GPIO
- จัดการด้วยความระมัดระวัง: หลีกเลี่ยงการปล่อยแบบคงที่โดยการจัดการ Raspberry Pi และส่วนประกอบอย่างระมัดระวัง
บทสรุป
การควบคุมพิน GPIO ด้วย Python บน Raspberry Pi เปิดโลกแห่งความเป็นไปได้ในการสร้างโครงการแบบโต้ตอบและอัตโนมัติ จากงานง่าย ๆ เช่นไฟ LED กระพริบไปจนถึงระบบที่ซับซ้อนมากขึ้นที่เกี่ยวข้องกับเซ็นเซอร์และแอคทูเอเตอร์หลายตัวการควบคุม GPIO เป็นทักษะพื้นฐานสำหรับผู้ที่ชื่นชอบราสเบอร์รี่ Pi โดยทำตามขั้นตอนที่ระบุไว้ในคู่มือนี้และปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดคุณจะสามารถสร้างโครงการที่น่าตื่นเต้นและเป็นนวัตกรรมได้ดี
มีความสุขในการซ่อมแซม!