GPIO ย่อมาจาก General Purpose Input/Output เรียกเป็นภาษาไทยง่ายๆว่า พอร์ตเอนกประสงค์ คือเราสามารถควบคุม คอนโทรลให้เป็น ค่าต่างๆได้ และเรายังสามารถกำหนด GPIO เหล่านี้ให้เป็น INPUT หรือ OUTPUT ก็ได้
Raspberry Pi 3 Model B+ มี GPIO ทั้งหมด 40 Pin และที่ใช้สั่งควบคุมในการทำงานทั้งหมด 17 Pin (ที่เป็นวงกลมสีเขียว) ในการใช้งาน GPIO มีสิ่งที่ต้องพึงระมัดระวังให้มากเป็นพิเศษก็คือเรื่อง ในการต่อสาย เพราะหากมีการต่อผิดพลาด เช่น นำไฟ 5 โวลต์ มาต่อเข้ากับ Port GPIO ที่เป็นวงกลมสีเขียว อาจทำให้เกิดความเสียหายต่อ Raspberry Pi ทำให้ไม่สามารถใช้งานได้อีกต่อไป และไม่สามารถเปลี่ยน หรือ ซ่อมแซมได้ ดังนั้นก่อนต่อสายควรตรวจสอบความถูกต้อง ในการใช้งาน Pin ต่างๆ โดยสามารถดูการใช้งาน Pin ต่างๆ ได้ ตามภาพ GPIO Pinout ด้านล่าง
GPIO Pinout – Raspberry Pi 3 Model B+
การเขียนโค้ดคำสั่งในการกำหนดชื่อ ขาต่างๆนั้น มี 2 แบบ คือ Board Number และ BCM Number โดยจะเลือกใช้แบบ Board Number โดยจะอ้างอิง ชื่อขา ต่างๆจากภาพ GPIO Pinout ด้านบน (บริเวณที่อยู่ในกรอบสีแดง 1-40)
โดยใช้คำสั่ง
GPIO.setmode(GPIO.BOARD)
ในการส่งสัญญาณ ไฟ 3.3 โวลต์ ไปยัง ขา GPIO ในสถานะ ว่ามีไฟ หรือ ไม่มีไฟ นั้น มีอยู่ 3 แบบ โดยจะเลือกใช้ในรูปแบบ True และ False (True = มีไฟ , False = ไม่มีไฟ)
ตัวอย่างใช้คำสั่ง
ตัวอย่างใช้คำสั่ง
GPIO.output(7,True)
GPIO.output(7,False)
ขั้นตอนการทำงาน
1. การติดตั้ง Linux ให้กับ Raspberry โดยใช้ไฟล์ image
2. การใช้งาน GPIO ใน Raspberry Pi ด้วย Python
การเขียนโปรแกรมภาษาไพธอน ด้วย Python 3 (IDLE)
Python (ไพธอน) มี Editor สำหรับเขียนคำสั่ง มีชื่อว่า Python Shell โดยทั่วไปจะเรียกว่า IDLE ย่อมาจาก ("Integrated Development Environment") วิธีการเรียกใช้โปรแกรม IDLE มี 2 วิธี คือ
1. เรียกใช้โดย คำสั่งคอมมานไลน์ (Command Line)
เริ่มโดย เปิดโปรแกรม เทอมินอล (Root Terminal)
โปรแกรม เทอมินอล (Root Terminal)
sudo idle
-> กด Enter
โปรแกรม Python 3 (IDLE)
เขียนโปรแกรมแรก Hello World
ไปที่ File -> New File
จะมีหน้าต่างใหม่ปรากฏขึ้นมา (การเขียนโปรแกรมจะเริ่มที่หน้าต่างนี้)
เขียนโค้ดดังนี้
print ("Hello, World!")
ไปที่ File -> Save
ตั้งชื่อไฟล์ ในตัวอย่างเป็น hello_world แล้ว คลิก Save
ทดสอบการทำงานของโปรแกรม โดยไปที่ Run -> Run Module (หรือกด F5)
ผลลัพธ์การทำงานของโปรแกรม
ออกจากโปรแกรมโดย ไปที่ File -> Exit
เขียนโปรแกรม ควบคุม LED ด้วย GPIO
อุปกรณ์ที่ใช้
1. Breadboard 8.5CM x 5.5CM 400 holes
2. Jumper (F2M) 20cm Female to Male
3. Jumper (M2M) 10cm Male to Male
4. หลอดไฟ LED 5mm สีแดง
5. รีซิสเตอร์ 220 OHM 1/4W 5%
ประกอบวงจร 1 ตามรูปด้านล่าง
.
เปิดโปรแกรม Python 3 (IDLE) เขียนโค้ดดังนี้ ในตัวอย่าง ตั้งชื่อเป็น led_3
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)
for x in range(0,3):
GPIO.output(7,True)
time.sleep(1)
GPIO.output(7,False)
time.sleep(1)
GPIO.cleanup()
อธิบายการทํางานของโปรแกรม
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.OUT)
for x in range(0,7):
GPIO.output(7,True)
time.sleep(.5)
GPIO.output(7,False)
GPIO.output(11,True)
time.sleep(.5)
GPIO.output(11,False)
GPIO.output(13,True)
time.sleep(.5)
GPIO.output(13,False)
GPIO.cleanup()
ทดสอบการทำงานของโปรแกรม
ทดสอบการทำงานของโปรแกรม โดยไปที่ Run -> Run Module (หรือกด F5)
วีดีโอผลลัพธ์การทำงานของโปรแกรม # 2 (ไฟวิ่ง LED ด้วย GPIO Raspberry Pi)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น