การเขียนโปรแกรมเพื่อทำงานแบบ multitask อาจจะเป็นเรื่องยากไปซักหน่อย หากเราเขียนโปรแกรมโดยใช้ลักษณะการเขียนโปรแกรมแบบเดิมๆ (ภาพที่ 1) ซึ่งการเขียนโปรแกรมแบบนี้ หากเราต้องการที่จะเพิ่มฟังก์ชันการทำงานของโปรแกรม จะค่อนข้างทำได้ยาก เนื่องจากจำเป็นที่จะต้องรื้อโปรแกรมใหม่เพื่อแทรกหรือเพิ่มฟังก์ชันใหม่ที่ต้องการเข้าไปในโปรแกรม ซึ่งอาจส่งผลกระทบต่อฟังก์ชันการทำงานอื่นๆของโปรแกรมเก่าที่มีอยู่แล้วได้
การเลือกใช้งานลักษณะการเขียนโปรแกรมโดยใช้ Real Time Operating System (RTOS) (ภาพที่ 2) นั้นจะทำให้ผู้เขียนโปรแกรม สามารถจัดการทำงานของแต่ละงานได้ง่ายมากขึ้น เนื่องจากแต่ละโปรแกรมมีการทำงานแบบแยกส่วนกัน ทำให้การเพิ่มฟังก์ชันหรืองานเข้าไปในโปรแกรมสามารถทำได้อย่างยืดหยุ่น ไม่ส่งผลกระทบต่องานอื่นๆที่ไม่เกี่ยวข้อง
Real-time operating system หรือที่เรียกสั้นๆว่า RTOS คือซอฟต์แวร์ที่ทำหน้าที่คอยสลับการทำงานของแต่ละงานอย่างรวดเร็ว จนผู้ใช้งานรู้สึกว่าเหมือนทุกงานนั้นถูกทำไปพร้อมๆกัน (ภาพที่ 3) ซึ่งแตกต่างกับระบบที่มีหน่วยประมวลผลแบบมีหลายคอร์ (Multicore) จะสามารถทำงานแบบหลายงานพร้อมกันแบบจริงๆได้โดยอาศัยคอร์ที่มีมากกว่าหนึ่งคอร์ในการประมวลผล
RTOS จะมีประโยชน์มากสำหรับระบบที่ต้องการทำงานหลายๆงานพร้อมๆกันและถูกจำกัดด้วยระยะเวลาที่กำหนดไว้ ยกตัวอย่างเช่น รถ Rover สำรวจของ NASA ซึ่งใช้งาน RTOS (VxWorks) ในการทดสอบหรือใช้งานเครื่องมือทางวิทยาศาสตร์ที่อยู่กับตัวรบสำรวจแบบเรียลไทม์
RTOS นั้นช่วยเพิ่มความสะดวกสบายในการพัฒนาโปรเจ็กต์ ทำให้โปรเจ็กต์มีความยืดหยุ่น ดูแลรักษาง่าย ไม่กินทรัพยากร และมีความปลอดภัย ช่วยลดระยะเวลาและต้นทุนในการพัฒนา หากเปรียบเทียบกับการเขียนโปรแกรมแบบปกติให้สามารถทำงานแบบ multitask ได้นั้น จะสามารถทำได้ยาก มีความซับซ้อน ยากต่อการพัฒนาและต่อยอด ดูแลรักษายาก ความยืดหยุ่นน้อยกว่า เหมือนเชือกที่พันกันอยู่อย่างไม่เป็นระเบียบ
สำหรับภาษา CircuitPython
- ดาว์นโหลดโปรแกรม Mu Editor และทำการติดตั้งให้เรียบร้อย
- ดาว์นโหลด libraries สำหรับใช้งาน pyRTOS กับภาษา CircuitPython
- คัดลอกโฟลเดอร์ชื่อ pyRTOS จาก Example Code>CircuitPython แล้วนำไปวางในโฟลเดอร์ชื่อ lib ใน Maker Pi Pico
สำหรับภาษา MicroPython
- ดาว์นโหลดโปรแกรม Thonny และทำการติดตั้งให้เรียบร้อย
- ดาว์นโหลด libraries สำหรับใช้งาน pyRTOS กับภาษา MicroPython
- คัดลอกโฟลเดอร์ชื่อ pyRTOS จาก Example Code>MicroPython แล้วนำไปวางใน Maker Pi Pico ผ่านโปรแกรม Thonny (วิดีโอตัวอย่างด้านล่าง)
- Import libraries ที่ต้องการใช้งาน
import pyRTOS
import machine
2. กำหนด Task แต่ละ Task ที่เราต้องการให้ทำงาน
def task1(self):
ledpin1 = machine.Pin(0, machine.Pin.OUT) # กำหนด Task1
ledpin1.value(0)
yield
while True:
ledpin1.toggle() # Task1 loop
yield [pyRTOS.timeout(1)] # Delay 1 วินาที (เพื่อให้ task อื่นทำงาน)
3. เพิ่ม Task ที่เราสร้างเข้าสู่ระบบ
pyRTOS.add_task(pyRTOS.Task(task1))
4. เริ่มต้นการทำงานของ RTOS
pyRTOS.start()
วิดีโอตัวอย่างการใช้งาน RTOS ร่วมกับภาษา MicroPythonเป็นไงบ้างละครับ Multitasking กลายเป็นของกล้วยๆไปเลยเมื่อเจอ RTOS หากเพื่อนๆท่านใด สงสัย มีคำถาม สามารถทิ้งคำถามไว้ได้เลยนะครับ อยากตอบมากกกก
Comments
Please log in or sign up to comment.