<< Go Back

การเขียนโปรแกรมสำหรับผู้เริ่มต้นใช้งานบอร์ด RPI พื้นฐานที่สำคัญ ก็คือ การฝึกหัดควบคุม Input – Output ของขา GPIO บนบอร์ด Raspberry Pi ซึ่งจะทำให้เราเรียนรู้และทราบถึงหน้าที่ของขา GPIO ในแต่ละขาบนบอร์ด RPI “มีหน้าที่อะไรบ้างและมีคุณสมบัติใดบ้าง” โดยขา GPIO บนบอร์ด Raspberry Pi จะมีทั้งหมด 40 ขา 20 คู่ ซึ่งจะมีหน้าที่และคุณสมบัติที่แตกต่างกันดังนี้ - 1 และ 17 คือ ขาแรงดันไฟฟ้า 3.3 V - 2 และ 4 คือ ขาแรงดันไฟฟ้า 5 V - 6, 9, 14, 20, 25, 30, 34, และ 39 คือขา Ground - 3, 5, 7, 8, 10, 11, 12, 13, 15, 16, 18, 19, 21, 22, 23, 26, 27, 28, 29, 31, 32, 33, 35, 36, 37, 38 และ 40 คือขา GPIO เป็นหมายเลข และสมบัติอื่นๆ ได้ดังนี้

ขา 3 คือ GPIO2 และเป็น (I Square C)
ขา 5 คือ GPIO3 และเป็น (I Square C)
ขา 7 คือ GPIO4
ขา 8 คือ GPIO14 และเป็น (Serial Port)
ขา 10 คือ GPIO15 และเป็น (Serial Port)
ขา 11 คือ GPIO17
ขา 13 คือ GPIO27
ขา 15 คือ GPIO22
ขา 16 คือ GPIO23
ขา 18 คือ GPIO24
ขา 19 คือ GPIO10 และเป็น (SPI)
ขา 21 คือ GPIO9 และเป็น (SPI)
ขา 22 คือ GPIO25
ขา 23 คือ GPIO11 และเป็น (SPI)
ขา 24 คือ GPIO8 และเป็น (SPI)
ขา 26 คือ GPIO7 และเป็น (SPI)
ขา 27 คือ GPIO, ID_SD (SDA.1 – SCL.1)
ขา 28 คือ GPIO, ID_SD (SDA.0 – SCL.0)
ขา 29 คือ GPIO5
ขา 31 คือ GPIO6
ขา 32 คือ GPIO12
ขา 33 คือ GPIO13
ขา 35 คือ GPIO19
ขา 36 คือ GPIO16
ขา 37 คือ GPIO26
ขา 38 คือ GPIO20
ขา 40 คือ GPIO21

สำหรับการเชื่อมต่อใช้งานขา GPIO จะใช้ Jumper Wires Cable “Female Cable” สวมเข้ากับขา GPIO เพื่อส่งและรับสัญญาณ Digital เช่นนั้น จะต้องมีการเขียนโปรแกรมเพื่อควบคุมขา GPIO เพื่อส่งและรับสัญญาณในคำสั่งต่าง ๆ โดยการเขียนโปรแกรมนั้น สำหรับผู้เริ่มเขียนโปรแกรม ควรใช้โปรแกรมที่ใช้งานง่ายไม่ซับซ้อน เพื่อฝึกหัดควบคุมขา GPIO บนบอร์ด RPI ซึ่งโปรแกรมการสร้างโปรแกรมควบคุมขา GPIO ก็คือโปรแกรม Python ที่มากับระบบปฏิบัติการ Raspbian

ตัวอย่างการเขียนโปรแกรมเบื้องต้นเพื่อควบคุม Input – Output ของขา GPIO ด้วยภาษา Python
1. เขียนโปรแกรมควบคุมไฟกระพริบ
อุปกรณ์

1. บอร์ด Raspberry Pi 2. บอร์ดทดลอง (Breadboard)
3. ไดโอดเปล่งแสง (Diode LED) 4. ตัวต้านทาน (Resistor) 330 โอห์ม
5. สาย Jumper  
 

ขั้นตอนการต่อวงจร
1. เสียบขา LED (ไดโอดเปล่งแสง) ก่อนอื่นจะต้องหาขาขั้วบวก (+) ของ LED โดยการหาว่าขา LED ข้างใดยาวกว่า ขานั้น คือ ขั้วบวก (+) ส่วนขา LED ที่สั้นกว่า คือ ขั้วลบ (-)

2. นำตัวต้านทาน (Resistor) 330 โอห์ม เสียบเข้ากับขาบวก (+) ของ LED

3. ต่อ Ground ให้กับวงจรไฟกะพริบ โดยใช้ Male Cable (หัวเสียบ) ต่อเข้ากับขาลบ (-) ของ LED

4. นำ Female Cable (หัวสวม) เสียบเข้าที่ขา PIN6 (GROUND) ของขา GPIO

5. ป้อนสัญญาณ Output (สัญญาณดิจิตอล ค่า 0 หรือ 1) โดยใช้ Female Cable สวมเข้ากับขา PIN3 (GPIO2)

6. เสียบ Male Cable ที่เชื่อมต่อขา PIN3 (GPIO2) ต่อเข้ากับขาตัวต้านทาน 330 โอห์ม ถือว่าครบวงจรไฟกะพริบ

ขั้นตอนการเขียนโปรแกรมด้วยภาษา Python
เมื่อเปิดระบบปฏิบัติการ Raspbian ของบอร์ด Raspberry Pi แล้ว ให้คลิกที่ Pi --> Programming --> Thonny Python IDE ซึ่งเป็นโปรแกรมสำหรับเขียนโค้ดคำสั่งด้วยภาษา Python

ระบบจะเปิดหน้าต่าง Thonny Python IDE ขึ้นมาให้เราป้อนคำสั่งหรือพิมพ์ Code เพื่อสร้างโปรแกรมควบคุมวงจร

เริ่มต้นเขียนโปรแกรมเพื่อควบคุมขา GPIO โดยจะต้องทำการเรียกใช้ Library GPIO ก่อน โดยพิมพ์คำสั่ง import RPi.GPIO as GPIO

จากนั้นให้เรียกใช้ Library time เพื่อใช้ในการหน่วงเวลา โดยให้พิมพ์คำสั่ง import time

ตั้งค่าโหมดสำหรับการเรียกใช้งาน PIN ของ GPIO โดยสามารถเรียกใช้งานตามลำดับของขา (PIN) ที่อยู่ในบอร์ด RPI (GPIO.BOARD) หรือเรียกใช้งานตามชื่อของเขานั้นๆ (GPIO.BCM) แต่ในที่นี้จะเรียกใช้งานตามลำดับของขา GPIO (GPIO.BOARD) ซึ่งเป็นวิธีที่ง่ายกว่าและเหมาะสมกับผู้เริ่มต้นใช้งานอีกด้วย โดยพิมพ์คำสั่ง GPIO.setmode(GPIO.BOARD) แต่ถ้าจะใช้วิธีเรียกใช้ตามชื่อของขา GPIO ก็เพียงเปลี่ยนจากคำว่า BOARD เป็น BCM  

ขั้นตอนต่อไปเป็นการเลือกขาที่จะใช้เป็น Digital Output โดยพิมพ์คำสั่ง GPIO.setup(3GPIO.OUT)
            โดย 3 หมายถึง ขา PIN3 ที่เราได้เชื่อมต่อกับตัวต้านทาน (Resistor) และ GPIO.OUT หมายถึง ให้ขา PIN3 ทำหน้าที่เป็น Digital Output เพื่อส่งสัญญาณดิจิตอลไปยังวงจรไฟกะพริบ

หากต้องการให้วงจรไฟกะพริบทำงานในลักษณะติดและดับวนไปเรื่อยๆ   จะต้องป้อนคำสั่งในการวนลูปไปเรื่อยๆ โดยพิมพ์คำสั่ง while(1) :  หรือ while 1 : หรือ while True :

ภายในคำสั่ง while จะพิมพ์คำสั่งว่า GPIO.output(3,GPIO.HIGH) เพื่อสั่งให้ไฟ LED ติด

จากนั้นพิมพ์คำสั่งหน่วงเวลาเพื่อให้ไฟติดเป็นระยะเวลากี่วินาที โดยพิมพ์คำสั่งว่า time.sleep(1) ตัวเลขในวงเล็บ คือจำนวนวินาทีที่หน่วงเวลา

ต่อไปจะพิมพ์คำสั่งให้ไฟดับ โดยพิมพ์คำสั่งว่า GPIO.output (3,GPIO.LOW)

และหน่วงเวลาให้ไฟดับกี่วินาที โดยพิมพ์คำสั่งว่า time.sleep(1) ให้หน่วงเวลา 1 วินาที

เมื่อพิมพ์คำสั่งเสร็จแล้วให้ทำการ Save โดยเลือกที่ File --> Save แล้วทำการตั้งชื่อไฟล์ในช่อง File Name :  จากนั้นคลิกปุ่ม Save โดยไฟล์ที่บันทึกจะอยู่ในโฟลเดอร์ /home/pi

เมื่อการเขียนโปรแกรมเสร็จเรียบร้อยแล้ว ต่อไปจะเป็นการ Run โปรแกรมเพื่อควบคุมการทำงานวงจรไฟกระพริบ โดยคลิกปุ่ม Run

ผลลัพธ์ที่ได้
ไดโอดเปล่งแสง LED จะติดเป็นเวลา 1 วินาที และดับเป็นเวลา 1 วินาที สลับกันไปเรื่อย ๆ จะเห็นได้ว่าอุปกรณ์ OUTPUT ในที่นี้คือหลอดไฟ LED ซึ่งจะส่งค่า HIGH (ไฟติด) และ LOW (ไฟดับ)

2. โปรแกรมเปิดและปิดหลอดไฟ LED ด้วยปุ่ม Push Button
อุปกรณ์

1. บอร์ด Raspberry Pi 2. บอร์ดทดลอง (Breadboard)
3. ไดโอดเปล่งแสง (Diode LED) 4. ตัวต้านทาน (Resistor) 330 โอห์ม
5. สาย Jumper 6. Push Button

การต่อวงจร
1. เสียบ LED บน Breadboard
2. ขา – (สั้น) ของหลอดไฟ LED เสียบเข้ากับช่อง PIN6 (GROUND) ของขา GPIO
3. ขา + ของ LED ต่อเข้ากับตัวต้านทาน 330 โอห์ม
4. ขาอีกข้างของตัวต้านทาน 330 โอห์มเสียบเข้ากับช่อง PIN7 (GPIO4) ของขา GPIO

2. เสียบ Pushbutton บน Breadboard

3. เสียบสาย Jumper ที่ขาข้างหนึ่งของ Pushbutton ต่อเข้ากับขา PIN14 (GROUND) ของขา GPIO
4. เสียบสาย Jumper ที่ขาอีกข้างหนึ่งของ Pushbutton ต่อเข้ากับขา PIN11 (GPIO17) ของขา GPIO

การเขียนโค้ดคำสั่ง

ผลลัพธ์
เมื่อกดปุ่ม Pushbutton ไฟ LED จะติด (HIGH) แต่ถ้าไม่กดปุ่ม Pushbutton ไฟ LED จะดับ (LOW) ซึ่งอุปกรณ์ที่เป็น INPUT คือ  Pushbutton และอุปกรณ์ที่เป็น OUTPUT คือ หลอดไฟ LED

<< Go Back