วันจันทร์ที่ ๒๐ มิถุนายน พ.ศ. ๒๕๕๙

Internet of Things (IoT) ตอนที่ 3

ในระหว่างที่รอบอร์ด MCU ของ arduino เพื่อไม่ให้เสียเวลา ตอนนี้เรามาดูการเขียนโปรแกรมกับบอร์ดของ Raspberry Pi 2 Model B กันก่อนครับ

มาดูหน้าตาของ raspberry Pi 2 Model B กันก่อน




การต่อสาย power, keyboard, mouse, HDMI และสายต่าง ๆ จะไม่ขอกล่าวในที่นี้ เพราะคนที่จะทำตามนี้ได้ ต้องมีพื้นฐานด้านคอมพิวเตอร์มาบ้างแล้ว

ในส่วนของการติดตั้ง OS Respbian ก็ขอให้ศึกษาได้จาก web ของผู้ผลิตได้เลย ตามลิงค์ด้านล่างนี้

https://www.raspberrypi.org/documentation/installation/installing-images/README.md

ในขั้นต้นสมมุติว่า ได้ติดตั้ง OS Respbian เรียบร้อยแล้ว (ซึ่งมันก็คือ linux นั่นเอง)

ต่อไปเป็นการเตรียมความพร้อมที่จะใช้ภาษา python และ ติดตั้ง library ของ GPIO ตามขั้นตอนดังนี้

1. $ sudo apt-get update
2. $ sudo apt-get upgrade

ทั้ง 2 คำสั่งนี้เพื่อทำซอฟต์แวร์ OS และที่เกี่ยวข้องให้เป็นปัจจุบัน

เนื่องจาก ภาษา python นั้น Raspberry Pi ได้ติดมาแล้ว จึงสามารถใช้ได้เลย

และคาดว่า library GPIO จะได้ติดมาแล้วกับการติดตั้งหรือ upgrade OS

ต่อไปเป็นการทดสอบ import GPIO module ของ python

เริ่มด้วย  Menu --> เขียนโปรแกรม --> Python 2 (IDLE)




พิมพ์คำสั่งนี้ แล้วกด Enter

>> import  RPi.GPIO as GPIO

ถ้าหากไม่แสดงผล error ออกมาแสดงว่า Raspberry Pi ของเรามี library GPIO เรียบร้อยแล้ว

ถัดจากนั้นให้สร้างไฟล์เพื่อเขียนโปรแกรมกันเลย

โดยการเลือกรายการ File --> New File

จากนั้นลงมือเขียนโปรแกรมทดสอบการทำงานของ GPIO ก่อน


#source code: blink.py
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(18,GPIO.OUT)
while 1:
     GPIO.output(18,GPIO.HIGH)
     time.sleep(1)
     GPIO.output(18,GPIO.LOW)
     time.sleep(1)

-----------------------------------------------------------


Save file ตั้งชื่อว่า blink.py

มาดูการต่อวงจร LED เพื่อทดสอบการทำงานของคำสั่งข้างบนกัน



เนื่องจากเพื่อความสะดวกจึงใช้  GPIO Extension Board มาเสียบเข้ากับ Breadboard
แล้วเชื่อมสายแพ (flat cable) เข้ากับ raspberry Pi อีกทีหนึ่ง จึงขอนำแบบวงจรมาให้ดูกันเพื่อให้เห็นรายละเอียดของวงจร ดังนี้






ขาที่ 3 นับจากบนขวา เป็นขา Ground หรือขา GND ต่อเข้ากับตัวต้านทาน แล้วต่อกับขาลบของ LED
ขาที่ 6 นับจากบนขวา (จริง ๆ คือ ขา GPIO18 ซึ่งใช้อ้างอิงในการเขียนโปรแกรม) แล้วต่อไปยังขาบวกของ LED

เมื่อต่อวงจรเรียบร้อยแล้ว ก็ลงมือสั่งให้โปรแกรมรัน หรือ execute โดยใช้คำสั่งที่ terminal


$ sudo python blink.py

ดูว่า LED ทำงานกระพริบหรือเปล่า

โปรแกรมนี้เป็นการทำงานแบบ loop ไม่รู้จบ จึงหยุดการทำงานโดยการกดปุ่ม Ctrl+C


สรุป

การเขียนโปรแกรมเพื่อทดสอบการทำงานของ Raspberry Pi เป็นการทดสอบ Hardware ในขั้นต้นก่อนว่าจะสามารถใช้งานในระดับที่ซับซ้อนได้หรือไม่ อย่างไรบ้าง

การเขียนโปรแกรมเพื่องาน IoT นั้นจะต้องสัมพันธ์กันระหว่าง Hardware และ Software
กล่าวคือ ถ้าเราเขียนคำสั่งให้ข้อมูลส่งสัญญาณ ดิจิทัลให้ขา GPIO หมายเลข 18 เป็น 1 หรือ 0 เราต้องเสียบสัญญาณที่ขา GPIO18 เท่านั้น หากไม่เป็นไปตามนี้ เราจะไม่สามารถเห็นผลลัพธ์ของการทำงานได้

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

ลองพิจารณาดูกันนะครับ

ไม่มีความคิดเห็น: