01 ตุลาคม 2552

ภาพรวมของโปรแกรม





ภาพรวมของโปรแกรม
โปรแกรมแบ่งออกเป็น 2 ส่วนใหญ่ๆคือโปรแกรมบนรถ ที่เขียนด้วยภาษาซีสำหรับบอร์ดอาร์ดูโน(Arduino Board)
ส่วนโปรแกรมอีกส่วนคือโปรแกรมบนคอมพิวเตอร์ที่ใช้สร้างแผนที่(Map Generator)นอกจากนี้ยังหาเส้นทางที่สั้นที่สุดอีกด้วย

ผังงานโปรแกรมบนรถ

เมื่อโปรแกรมเริ่มทำงาน จะทำการตั้งค่าพอร์ตต่างๆด้วยฟังก์ชัน Setup Port และ
โปรโตคอลSPI ด้วยฟังก์ชัน Setup SPI และตัวรถจะรถการส่งการจากคอมพิวเตอร์
ว่าจะเลือกโหมดใดให้รถทำงานแบ่งได้เป็น 2 mode คือ
  1. Explore คือให้รถเดินสำรวจเพื่อสร้างแผนที่ โดยรถจะพยายามเดินให้ทั่วพื้นที่
  2. GetAnswer เมื่ือสร้างแผนที่เสร็จ คอมพิวเตอร์จะประมวลผลเส้นที่ที่สั้นที่สุดในการออกจากเขาวงกต

แผนผังคลาสโปรแกรมบนคอมพิวเตอร์


เนื่องจากโปรแกรมเป็นแบบ Event-Drive จึงไม่เหมาะที่จะแสดงด้วยผังงาน เนื่องจากการทำงานจะไม่ชัดเจน
ขึ้นอยู่กับ เหตุการณ์ที่เกิดขึ้นบนฟอร์ม ดังนั้นจึงแสดงด้วยแผนผังความสัมพันธ์ของคลาส ซึ่งประกอบด้วย 4 คลาสดังนี้
  1. คลาสเขาวงกต(Maze Class) เป็นคลาสหลักของโปรแกรมภายในประกอบด้วยอัลกอริทึม จำนวนมากดังนี้
    1. mapGenerator สร้างแผนที่จากค่าการเดินของตัวรถ
    2. solveMaze หาเส้นทางเดินทุกทางที่เป็นไปได้ในการออกจากเขาวงกตจากแผนที่
    3. solveMaze Shortest Path หาเส้นทางเดินที่สั้นที่สุดจากเส้นทางทั้งหมดที่เป็นไปได้
    4. sendAnswer แปลงคำตอบจาก พิกัดระนาบ เป็นทิศทาง และแปลงอีกครั้งเป็นทิศทางแบบสัมพัทธ์กับตัวหุ่น
    5. sendAnswerToBluetooth ส่งค่าทิศทางแบบสัมพัทธ์ ผ่านบลูทูธ โดยมีการจัดการกับสัญญาณรบกวนที่เกิดขึ้น
  2. คลาส จุด (Point Class) เป็นที่เก็บพิกัด (X,Y) ในระนาบ 2 มิติ
  3. คลาสบลูทูธ จัดการการรับส่ง การเปิดปิดพอร์ต สืบทอดคุณสมบัติมากจากคลาสอนุกรม


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