วันอังคารที่ 25 พฤศจิกายน พ.ศ. 2557

การออกเเเบบ Protocol สำหรับการใช้งาน Portable Ground Station Part II




จากคราวก่อนที่ได้พูดถึงการออกเเบบ Protocol ไปเเละทดลองใช้งานดูทำให้ผู้เขียนพบปัญหาที่เกิดขึ้นจากการออกเเบบ Protocol ตามด้านบน คือ
  • Overhead ยังคงเยอะอยู่ หากสังเกตุดูให้ดีมา Overhead อยู่ถึง 2 Byte ต่อการส่งข้อมูลหนึ่งตัว
  • ข้อมูลของ Mavlink มีลักษณะเป็นกลุ่มข้อมูลเเต่ Protocol ที่ออกเเบบมานั้นเอื่อสำหรับการส่งข้อมูลเพียงทีละข้อมูลเท่านั้น จึงทำให้ Protocol เเบบนี้ไม่เหมาะเเก่การนำมาใช้งานจริง

ตัวอย่างรูปเเบบของ MAVlink protocol

กลุ่มข้อมูล GPS_RAW_INT 


กลุ่มข้อมูล System Status 

กลุ่มข้อมูล IMU 

จากกลุ่มข้อมูลข้างต้นถ้าเราสังเกตุดูให้ดีจะเห็นได้ว่าข้อมูลนั้นอยู่รวมกันเป็นกลุ่ม นั้นจึงทำให้ผู้เขียนได้ลองออกเเบบ Protocol ใหม่ เพื่อให้รองรับการส่งข้อมูลมาเป็นกลุ่มเเละเสีย Overhead น้อยที่สุดได้ได้ Protocol ออกมาใหม่ดังนี้ 





โดยที่ 
  • STX : Start byte use constant as 0XFE (same as Mavlink protocol)
  • CDM : command byte that Mavlink gateway tell us (Like a #)
  • PAYLOAD : DATA  

เเละในบทความถัดไปจะจำเสนอเรื่องของ Protocol ว่าในเเต่ละ Payload นั้นมีอะไรบ้างเเละทำไมถึงต้องออกเเบบให้ Payload มีลักษณะดังนี้ครับ 











วันเสาร์ที่ 15 พฤศจิกายน พ.ศ. 2557

การออกเเเบบ Protocol สำหรับการใช้งาน Portable Ground Station Part I

          เนื่องจากโปรเจ็คที่ผู้เขียนกำลังทำอยู่นั้นจำเป็นต้องไปเชื่อมต่อกับ MAVlink Gateway (http://mavlink-gateway.blogspot.com/ ) เพื่อนำค่ามาเเสดงผลดังนั้นจึงต้องมีการออกเเบบ Protocol เพื่อการสื่อสารกับระหว่าง MAVlink MCU เเละ Protable Ground Station MCU โดยที่หลักการออกเเบบ Protocol ของผู้เขียนนั้นจะคำนึงถึงสิ่งต่างๆต่อไปนี้

  • หลีกเลี่ยงความยุ่งยาก
  • ออกเเบบให้ผู้รับเเละผู้ส่งเข้าใจกันง่าย 
  • ประสิทธิภาพของ Protocol 
  • การใช้งานจริง
ดังนั้นเพื่อให้การใช้ออกเเบบ Protocol เป็นไปดังข้อมูลที่ต้องการข้างบนผู้เขียนจึงได้ออกเเบบ Protocol ให้เป็น Binary Protocol เพื่อลด Overhead ของการส่งข้อมูลเเละออกเเบบ Protocol มาดังนี้


โดยที่ 
MSG TYPE is message type of protocol have 4 type  are 
  • Receive Status from MAVLINK Gateway 
  • Receive Parameter form MAVLINK Gateway
  • Send Parameter to MAVLINK Gateway 
  • Send Command to MAVLINK Gateway 

We separate ID into two part 
  • First is Status there has approximately    200 value 
  • Second is Parameter has approximately  300 value 

There are 5 type of parameter that send from MAVLINK Gateway
  • Float_32 
  • INT_32
  • INT_16 
  • Int_8
  • CHAR 16 BYTE  (Use in parameter only)

MSG has 4 type of length depend on type of protocol 
  • Integer  8 – bit
  • Integer  16 –bit
  • Integer , float 32 –bit
  • Char 16 byte  

จึงได้ออกมาเป็น Protocol ที่กว่ามาข้างต้นเเต่ทว่า Protocol ที่ออกเเบบมาข้างต้นนั้นยังมีปัญหาอยู่ศซึ่งจะเเสดงถึงปัญหาเเละวิธีเเก้ใน Blog ต่อไปครับ :D