การสั่งงานการเคลื่อนที่ของหุ่นยนต์โดยใช้การควบคุมผ่านระบบไอโอที

การสั่งงานการเคลื่อนที่ของหุ่นยนต์โดยใช้การควบคุมผ่านระบบไอโอที

ผู้จัดทำ

ณัฐกร บัณฑิตขจร 65340700404
อาทิตย์ ศักดิ์สิทธิพิทักษ์ 65340700407

ที่มาและความสำคัญ :

ปัจจุบันระบบไอโอทีมีการพัฒนาและเติบโตในการใช้งานเป็นไปด้วยความรวดเร็วและวงกว้าง ส่งผลให้เทคโนโลยีหลายๆ อย่างมีระบบไอโอทีเป็นส่วนประกอบ ดังนั้นทางทีมผู้จัดทำจึงมีความต้องการศึกษาการสื่อสารผ่านระบบไอโอทีเพื่อนำมาประยุกต์ใช้กับการควบคุมหุ่นยนต์ในการเคลื่อนที่และรับสัญญาณจากเซนเซอร์เพื่อมาแสดงผลผ่าน Dashboard

วัตถุประสงค์ :

1.ศึกษาการสื่อสารผ่านระบบไอโอทีเพื่อนำมาประยุกต์ใช้กับการควบคุมการเคลื่อนที่ของหุ่นยนต์

2.ศึกษาการรับค่าจาก sensor และส่งค่าผ่านระบบไอโอทีเพื่อนำมาสร้าง Dashboard ในการแสดงผล

Picture Ref: https://mqtt.org/assets/img/mqtt-publish-subscribe.png

หลักการทำงานของ MQTT จะประกอบไปด้วย 3 ส่วน

  1. MQTT Broker  ทำหน้าที่เป็นคนกลาง โดยรับข้อมูลว่าใครจะเป็น Publisher เพื่อส่งข้อมูลใดๆ หรือรับข้อมูลว่าใครจะเป็น Subscriber เพื่อสมัครรับข้อมูลใดๆ โดยตัว Broker จะ forward ข้อมูลไปให้อุปกรณ์ต่างๆ โดยตัว Broker สามารถเป็นได้ทั้ง Windows server, Linux server หรือ Raspberry Pi เป็นต้น
  2. Publisher เป็น Node ที่ส่งข้อมูล โดยหลักการจะมีการประกาศ Topic และแนบ Data ไปด้วย โดยข้อมูลชุดนี้จะส่งไปให้กับ Broker ในตัวอย่างนี้ Publisher ได้ส่งข้อมูลที่ Topic คือ temperature และได้แนบ 24 ํC ที่เป็น Data ไปด้วย ซึ่งการส่งข้อมูลมาที่ Broker นั้น สามารถเกิดจากการตั้งเวลา เหตุการณ์ หรือ User กดปุ่ม เป็นต้น
  3. Subscriber เป็น Node ที่รับข้อมูล โดยหลักการจะมีการ Subscribe Topic ที่สนใจเพื่อจะรับข้อมูล โดย Node นี้จะส่งความต้องการที่เป็น Subscribe นั้นมาที่ Broker หลังจากนั้น Broker จะเช็คว่า มีใคร Subscribe หัวข้อที่ตรงกันบ้าง ถ้ามีตรงกันก็จะส่งข้อมูลกลับไปให้กับ Node ที่เรียกร้องข้อมูลมา ซึ่งจากตัวอย่างจะเห็นว่า Subscribe topic temperature ที่ตรงกับ Publisher ดังนั้น ก็จะได้รับ Data คือ 24 ํC มา

ภาพรวมของการใช้ MQTT ในโปรเจคนี้



วงจรของหุ่นยนต์

ขาการเชื่อมต่อระหว่าง Controller และ Sensor/Actuator

Node-Red

Flow-based Programming ในการสร้าง Dashboard และการสื่อสารไปที่ MQTT Server โดยทำการสร้างผ่าน Node-Red  

การประกาศ Topic และการแนบ Data (payload) ที่จะส่งไปที่ Broker (server) เพื่อรอให้มีคนมา Subscribe Topic นี้ แล้วนำข้อมูลที่ Publish ไปใช้
การส่ง Subscribe Topic ไปที่ Broker เพื่อที่ Broker จะได้ส่ง Data ที่ทางเราได้ Subscribe ไว้ เพื่อไว้แสดงผลผ่าน Dashboard

MQTT Broker

การตั้งค่าตัวกลาง (Broker) เพื่อที่จะใช้ในการรับและส่งค่าระหว่าง Publisher และ Subscriber

Flow Chart และโปรแกรม ส่วนการเชื่อมต่อ MQTT Server 

Flow Chart และ โปรแกรมส่วนการรับค่า Subscribe Data จาก MQTT Server เพื่อสั่งงานการเคลื่อนที่ของหุ่นยนต์

Flow Chart และ โปรแกรมส่วนการรับค่า จาก Sensor Ultrasonic และส่งค่า Publish ไปที่ MQTT Server

ตัวอย่าง Code esp32

https://github.com/ipsunn/Node-Red_Control_esp32/blob/main/MQTT_Nodered_FRA641.ino

ผลการทดลอง

ภาพหุ่นยนต์แบบประกอบเสร็จสมบูรณ์

หน้า UI Dashboard มีปุ่มสำหรับควบคุม 5 ปุ่ม คือเดินหน้า ถอยหลัง เลี้ยวซ้าย เลี้ยวขวา หยุด และมีเกรดแสดงผลระยะห่างวัตถุที่ด้านหน้าของตัวหุ่นยนต์จาก sensor

ภาพ UI จาก Browser ใน Ipad
ภาพ UI จาก Browser ใน Desktop