Sumo-BOT ATX2+ ระบบควบคุมมือ

          ในบทความนี่้ เราจะกล่าวถึงหุ่นยนต์ Sumo-BOT ในระบบควบคุมมือ ซึ่งในระบบควบคุมมือนี้ ชิ้นส่วนตั่างๆที่ใช้ในหุ่นยนต์คือ DC motor 4 ตัว และ Sensor ZX-03 2 ตัว และอุปกรณ์เสริมที่นำเข้ามาเพื่อใช้ควบคุมระบบบังคับมือ คือ รีโมทควบคุม Wireless-X และตัวรับสัญญาณ

การเชื่อมต่อชิ้นส่วนต่างๆเข้ากับตัวหุ่นยนต์
1) DC motor 4 ตัว -> ตัวซ้ายหน้าต่อเข้ากับ port 1 -> ตัวขวาหน้าต่อเข้ากับ port 2 -> ตัวซ้ายหลังต่อเข้ากับ port 3 -> ตัวขวาหลังต่อเข้ากับ port 4
2) Sensor ZX-03 2 ตัว -> ตัวซ้ายต่อเข้ากับ port Analog 2 -> ตัวขวาต่อเข้ากับ port Analog 4
3) ตัวรับสัญญาณจาก Wireless-X -> ต่อเข้ากับ port RXD1

 

 

ตัวอย่างโค้ดที่ใช้งานได้จริงจากการทดสอบ
#include <ATX2.h> // กำหนดบอร์ดที่ใช้ว่าเป็น ATX2+
int x;

void setup() {
    XIO(); // ATX2+ เริ่มทำงาน
}

void loop() {
    while (uart1_ready() > 0) {
        x = uart1_read(); // กำหนดให้ตัวแปล x มีค่าเท่ากับปุ่มที่เรากดที่ตัว Wireless-X
    }
    if (x == 0x08) { // เมื่อกดปุ่ม 3 คือปุ่มฝั่งขวาบน จะทำการเดินหน้า
        motor(1,32);
        motor(2,30);
        motor(3,32);
        motor(4,30);
    }
    else if (x == 0x01) { // เมื่อกดปุ่ม 0 คือปุ่มฝฝั่งขวาล่าง จะทำการเดินถอยหลัง
        motor(1,-32);
        motor(2,-30);
        motor(3,-32);
        motor(4,-30);
    }
    else if (x == 0x02) { // เมื่อกดปุ่ม 1 คือปุ่มขวาฝั่งขวา จะทำการเลี้ยวขวา
        motor(1,32);
        motor(2,-30);
        motor(3,32);
        motor(4,-30);
    }
    else if (x == 0x04) { // เมื่อกดปุ่ม 2 คือปุ่มซ้ายฝั่งขวา จะทำการเลี้ยวซ้าย
        motor(1,-32);
        motor(2,30);
        motor(3,-32);
        motor(4,30);
  }
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – * ในส่วนของโปรแกรมที่อยู่ระหว่างเส้นประสีแดงนี้ ไม่ใช่ส่วนที่จำเป็นจะต้องมี แต่ทางเราใส่เข้ามา เพื่อเพิ่มเป็น option เพื่อใช้ในการควบคุมหุ่นยนต์เพิ่มเติมเท่านั้น

    else if (x == 0x80) { // เมื่อกดปุ่ม 7 คือปุ่มบนฝั่งซ้าย จะทำการเดินหน้าอย่างแรง
        motor(1,82);
        motor(2,80);
        motor(3,82);
        motor(4,80);
    }
    else if (x == 0x10) { // เมื่อกดปุ่ม 4 คือปุ่มล่างฝั่งซ้าย จะทำการเดินถอยหลังอย่างแรง
        motor(1,-82);
        motor(2,-80);
        motor(3,-82);
        motor(4,-80);
    }
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – 
    else if (x == 0xFF) { // เมื่อกดปุ่มกลางสุด จะทำการหยุดเคลือนที่
        motor_stop(ALL);
    }
}

Facebook Comments