มาโคร#

การแนะนำ#

มาโคร Python ของ VEX AIM คือบล็อกโค้ดสำเร็จรูปที่สามารถลากเข้าไปในโปรเจ็กต์ Python ได้ แต่ละมาโครประกอบด้วยกลุ่มคำสั่ง Python ที่ทำงานร่วมกันเพื่อให้หุ่นยนต์ทำพฤติกรรมที่ใหญ่ขึ้นได้สำเร็จ

นี่ไม่ใช่เมธอดเดี่ยวๆ ที่เรียกใช้จากโค้ด แต่ละมาโครจะถูกแทรกเป็นลำดับโค้ดสำเร็จรูปที่สามารถใช้งานได้ทันที หรือแก้ไขเพิ่มเติมหลังจากเพิ่มลงในโปรเจ็กต์แล้ว

ในหน้านี้ บล็อกโค้ด Python แต่ละบล็อกจะแสดงลำดับโค้ดจริงที่จะถูกแทรกเมื่อมีการใช้งานมาโครนั้น

ด้านล่างนี้คือรายการมาโครทั้งหมด:

อารมณ์ — ทำให้หุ่นยนต์แสดงอารมณ์ออกมาได้

  • act happy — ทำให้หุ่นยนต์ทำท่าทางมีความสุข

  • act sad — ทำให้หุ่นยนต์ทำหน้าเศร้า

  • act silly — ทำให้หุ่นยนต์ทำท่าทางงี่เง่า

  • act angry — ทำให้หุ่นยนต์แสดงอาการโกรธ

  • act excited — ทำให้หุ่นยนต์แสดงอาการตื่นเต้น

AI Vision (ลูกบอลกีฬา) — หันไปหาหรือเก็บลูกบอลกีฬา

  • turn right until sports ball — เลี้ยวขวาจนกว่าจะตรวจพบลูกบอลกีฬา

  • turn left until sports ball — เลี้ยวซ้ายจนกว่าจะตรวจพบลูกบอลกีฬา

  • get sports ball — เคลื่อนหุ่นยนต์เพื่อเก็บลูกบอลกีฬา

AI Vision (ถังสีส้ม) — หันไปทางหรือเก็บถังสีส้ม

  • turn right until orange barrel — เลี้ยวขวาจนกว่าจะตรวจพบถังสีส้ม

  • turn left until orange barrel — เลี้ยวซ้ายจนกว่าจะตรวจพบถังสีส้ม

  • get orange barrel — เคลื่อนหุ่นยนต์เพื่อเก็บถังสีส้ม

AI Vision (ถังสีฟ้า) — หันไปทางหรือเก็บถังสีฟ้า

  • turn right until blue barrel — เลี้ยวขวาจนกว่าจะตรวจพบถังสีน้ำเงิน

  • turn left until blue barrel — เลี้ยวซ้ายจนกว่าจะตรวจพบถังสีน้ำเงิน

  • get blue barrel — เคลื่อนหุ่นยนต์เพื่อเก็บถังสีน้ำเงิน

ระบบ AI Vision (หุ่นยนต์ AIM) — หันเข้าหาหรือเคลื่อนที่เข้าหาหุ่นยนต์ AIM ตัวอื่น

  • turn right until AIM robot — เลี้ยวขวาจนกว่าจะตรวจพบหุ่นยนต์ AIM อีกตัว

  • turn left until AIM robot — เลี้ยวซ้ายจนกว่าจะตรวจพบหุ่นยนต์ AIM ตัวอื่น

  • move to AIM robot — เคลื่อนที่ไปยังหุ่นยนต์ AIM อีกตัวหนึ่ง

AI Vision (AprilTag) — หันเข้าหาหรือเคลื่อนที่เข้าหา AprilTags

อารมณ์#

act happy#

มาโครนี้จะทำให้หุ่นยนต์แสดงอาการมีความสุขโดยการแสดงสีหน้ายิ้มแย้ม เล่นเสียงเพลงที่มีความสุข เปลี่ยนไฟ LED และเคลื่อนที่ไปมา ใช้มาโครนี้เมื่อต้องการให้หุ่นยนต์ตอบสนองในลักษณะที่ร่าเริงหรือในเชิงบวก

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# act happy
robot.screen.show_emoji(HAPPY)
wait(.5,SECONDS)
robot.sound.play(ACT_HAPPY)
wait(115, MSEC)

robot.screen.show_emoji(HAPPY, LOOK_RIGHT)
robot.led.on(ALL_LEDS, YELLOW)
robot.turn_for(RIGHT, 4, 100)
robot.led.on(ALL_LEDS, WHITE)
robot.screen.show_emoji(HAPPY, LOOK_LEFT)
robot.turn_for(RIGHT, -8, 100)
robot.led.on(ALL_LEDS, YELLOW)
robot.screen.show_emoji(HAPPY, LOOK_RIGHT)
robot.turn_for(RIGHT, 4, 100)

wait(100,MSEC)
for i in range(3):
    robot.screen.show_emoji(QUIET)
    robot.led.on(ALL_LEDS, WHITE)
    robot.move_for(1,-90)
    robot.screen.show_emoji(HAPPY)
    robot.led.on(ALL_LEDS, YELLOW)
    robot.move_for(1,90)

robot.stop_all_movement()
robot.led.off(ALL_LEDS)
wait(.5,SECONDS)

act sad#

มาโครนี้จะทำให้หุ่นยนต์แสดงอาการเศร้า โดยการแสดงสีหน้าเศร้า เล่นเสียงเศร้า ลดแสงไฟ LED และเคลื่อนที่ช้าๆ ไปในทิศทางต่างๆ ใช้มาโครนี้เมื่อต้องการให้หุ่นยนต์แสดงอาการผิดหวังหรือหมดแรง

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# act sad
robot.screen.show_emoji(SAD)
wait(.5,SECONDS)
robot.sound.play(ACT_SAD)
wait(115, MSEC)

robot.led.on(ALL_LEDS, Color(0, 0, 250))
robot.screen.show_emoji(SAD, LOOK_RIGHT)
robot.move_for(11, 135, 70)
robot.led.on(ALL_LEDS, Color(0, 0, 100))
robot.screen.show_emoji(SAD, LOOK_FORWARD)
robot.move_for(11, 315, 70)
robot.led.on(ALL_LEDS, Color(0, 0, 50))
robot.screen.show_emoji(SAD, LOOK_LEFT)
robot.move_for(11, 225, 70)
robot.led.on(ALL_LEDS, Color(0, 0, 10))
robot.screen.show_emoji(SAD, LOOK_FORWARD)
robot.move_for(11, 45, 70)
wait(.5,SECONDS)
robot.led.off(ALL_LEDS)

act silly#

มาโครนี้จะทำให้หุ่นยนต์แสดงท่าทางตลกๆ เช่น หมุนตัว เปลี่ยนสีหน้า และกระพริบไฟ LED สีต่างๆ ใช้มาโครนี้เมื่อต้องการให้หุ่นยนต์แสดงปฏิกิริยาที่สนุกสนานหรือน่าประหลาดใจ

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# act silly
robot.screen.show_emoji(SILLY)
wait(.5,SECONDS)
robot.sound.play(ACT_SILLY)
wait(115,MSEC)

robot.turn_for(RIGHT, 360, 100, wait=False)
face_list = [SILLY, HAPPY, EXCITED, PROUD, THRILLED, LAUGHING]
colors = [BLUE, CYAN, GREEN, ORANGE, PURPLE, RED, WHITE, YELLOW]

while robot.is_turn_active():
    robot.screen.show_emoji(SILLY)
    robot.led.on(ALL_LEDS, random.choice(colors))
    wait(110,MSEC)
    robot.screen.show_emoji(random.choice(face_list))
    wait(110,MSEC)

robot.screen.show_emoji(SILLY)
robot.led.off(ALL_LEDS)
wait(.5,SECONDS)

act angry#

มาโครนี้จะทำให้หุ่นยนต์แสดงอาการโกรธโดยการแสดงสีหน้าโกรธ ส่งเสียงแสดงความโกรธ เปลี่ยนไฟ LED เป็นสีแดง และเคลื่อนไหวอย่างรวดเร็ว ใช้มาโครนี้เมื่อหุ่นยนต์ควรแสดงปฏิกิริยาที่แสดงความไม่พอใจหรือเป็นการเตือน

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# act angry
robot.screen.show_emoji(ANGRY)
wait(.5,SECONDS)
robot.sound.play(ACT_ANGRY)
wait(115,MSEC)

robot.led.on(ALL_LEDS, RED)
robot.move_for(25, 0, 50)
wait(50,MSEC)

for i in range(5):
    robot.screen.show_emoji(ANNOYED)
    robot.move_for(5, 180, 50)
    robot.screen.show_emoji(ANGRY)
    wait(50,MSEC)

wait(.5,SECONDS)
robot.led.off(ALL_LEDS)

act excited#

มาโครนี้จะทำให้หุ่นยนต์แสดงอาการตื่นเต้น โดยการทำหน้าตาดีใจ ส่งเสียงแสดงความตื่นเต้น ขยับตัวไปมาอย่างรวดเร็ว และกระพริบไฟ LED สีส้ม ใช้มาโครนี้เมื่อหุ่นยนต์ควรแสดงความดีใจหรือตอบสนองด้วยพลังงานสูง

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# act excited
robot.screen.show_emoji(EXCITED)
wait(.5,SECONDS)
robot.sound.play(ACT_EXCITED)
wait(115, MSEC)

for angle in [3,-3,2,-2,2,-2,2,-2,1,-1]:
    if angle > 0:
        robot.screen.show_emoji(EXCITED, LOOK_RIGHT)
        robot.led.on(LED4, ORANGE)
        robot.led.on(LED5, ORANGE)
        robot.led.on(LED6, ORANGE)
        robot.led.off(LED1)
    else:
        robot.screen.show_emoji(EXCITED, LOOK_LEFT)
        robot.led.on(LED1, ORANGE)
        robot.led.on(LED2, ORANGE)
        robot.led.on(LED3, ORANGE)
        robot.led.off(LED6)
    robot.turn_for(RIGHT, angle)
    robot.led.off(ALL_LEDS)

robot.screen.show_emoji(EXCITED, LOOK_FORWARD)
wait(.5,SECONDS)

AI Vision (ลูกบอลกีฬา)#

turn right until sports ball#

มาโครนี้จะหมุนหุ่นยนต์ไปทางขวาจนกว่าเซ็นเซอร์ตรวจจับภาพ AI จะตรวจพบลูกบอลกีฬา จากนั้นจึงหมุนไปยังวัตถุที่ตรวจพบ ใช้มาโครนี้เมื่อหุ่นยนต์ต้องการค้นหาลูกบอลกีฬา ก่อนที่จะเคลื่อนที่ไปหาหรือเก็บลูกบอลนั้น

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเลี้ยวของหุ่นยนต์ด้วย set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Turn right until sports ball is detected
robot.turn(RIGHT)
while True:
    vision_data = robot.vision.get_data(SPORTS_BALL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

turn left until sports ball#

มาโครนี้จะหมุนหุ่นยนต์ไปทางซ้ายจนกว่าเซ็นเซอร์ตรวจจับภาพ AI จะตรวจพบลูกบอลกีฬา จากนั้นจึงหมุนไปยังวัตถุที่ตรวจพบ ใช้มาโครนี้เมื่อหุ่นยนต์ต้องการค้นหาลูกบอลกีฬา ก่อนที่จะเคลื่อนที่ไปหาหรือเก็บลูกบอลนั้น

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเลี้ยวของหุ่นยนต์ด้วย set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Turn left until sports ball is detected
robot.turn(LEFT)
while True:
    vision_data = robot.vision.get_data(SPORTS_BALL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

get sports ball#

มาโครนี้จะเคลื่อนหุ่นยนต์ไปยังลูกบอลกีฬาที่ตรวจพบ จนกว่าหุ่นยนต์จะเก็บลูกบอลได้ ใช้มาโครนี้หลังจากที่หุ่นยนต์สามารถมองเห็นลูกบอลกีฬาได้ หรือหลังจากใช้มาโคร “เลี้ยวจนกว่าจะเจอลูกบอลกีฬา” เพื่อค้นหาลูกบอลแล้ว

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเคลื่อนที่และการหมุนของหุ่นยนต์ด้วย set_move_velocity และ set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Get sports ball
while True:
    vision_data = robot.vision.get_data(SPORTS_BALL)

    if vision_data[0].exists:
        if robot.has_sports_ball():
            robot.stop_all_movement()
            break
        else:
            robot.move_at(vision_data[0].bearing)
    else:
        robot.move_at(0)
    wait(20, MSEC)

AI Vision (ถังสีส้ม)#

turn right until orange barrel#

มาโครนี้จะหมุนหุ่นยนต์ไปทางขวาจนกว่าเซ็นเซอร์ตรวจจับภาพ AI จะตรวจพบถังสีส้ม จากนั้นจึงหมุนไปยังวัตถุที่ตรวจพบ ใช้มาโครนี้เมื่อหุ่นยนต์ต้องการค้นหาถังสีส้มก่อนที่จะเคลื่อนที่ไปหาหรือเก็บมัน

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเลี้ยวของหุ่นยนต์ด้วย set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Turn right until orange barrel is detected
robot.turn(RIGHT)
while True:
    vision_data = robot.vision.get_data(ORANGE_BARREL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

turn left until orange barrel#

มาโครนี้จะหมุนหุ่นยนต์ไปทางซ้ายจนกว่าเซ็นเซอร์ตรวจจับภาพ AI จะตรวจพบถังสีส้ม จากนั้นจึงหมุนไปยังวัตถุที่ตรวจพบ ใช้มาโครนี้เมื่อหุ่นยนต์ต้องการค้นหาถังสีส้มก่อนที่จะเคลื่อนที่ไปหาหรือเก็บมัน

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเลี้ยวของหุ่นยนต์ด้วย set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Turn left until orange barrel is detected
robot.turn(LEFT)
while True:
    vision_data = robot.vision.get_data(ORANGE_BARREL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

get orange barrel#

มาโครนี้จะเคลื่อนหุ่นยนต์ไปยังถังสีส้มที่ตรวจพบ จนกว่าหุ่นยนต์จะเก็บถังนั้นได้ ใช้มาโครนี้หลังจากที่หุ่นยนต์สามารถมองเห็นถังสีส้มได้ หรือหลังจากใช้มาโคร “เลี้ยวจนกว่าจะเจอถังสีส้ม” เพื่อค้นหาถังแล้ว

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเคลื่อนที่และการหมุนของหุ่นยนต์ด้วย set_move_velocity และ set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Get orange barrel
while True:
    vision_data = robot.vision.get_data(ORANGE_BARREL)

    if vision_data[0].exists:
        if robot.has_orange_barrel():
            robot.stop_all_movement()
            break
        else:
            robot.move_at(vision_data[0].bearing)
    else:
        robot.move_at(0)
    wait(20, MSEC)

AI Vision (ถังสีฟ้า)#

turn right until blue barrel#

มาโครนี้จะหมุนหุ่นยนต์ไปทางขวาจนกว่าเซ็นเซอร์ตรวจจับภาพ AI จะตรวจพบถังสีฟ้า จากนั้นจึงหมุนไปยังวัตถุที่ตรวจพบ ใช้มาโครนี้เมื่อหุ่นยนต์ต้องการค้นหาถังสีฟ้าก่อนที่จะเคลื่อนที่ไปหาหรือเก็บมัน

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเลี้ยวของหุ่นยนต์ด้วย set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Turn right until blue barrel is detected
robot.turn(RIGHT)
while True:
    vision_data = robot.vision.get_data(BLUE_BARREL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

turn left until blue barrel#

มาโครนี้จะหมุนหุ่นยนต์ไปทางซ้ายจนกว่าเซ็นเซอร์ตรวจจับภาพ AI จะตรวจพบถังสีฟ้า จากนั้นจึงหมุนไปยังวัตถุที่ตรวจพบ ใช้มาโครนี้เมื่อหุ่นยนต์ต้องการค้นหาถังสีฟ้าก่อนที่จะเคลื่อนที่ไปหาหรือเก็บมัน

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเลี้ยวของหุ่นยนต์ด้วย set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Turn left until blue barrel is detected
robot.turn(LEFT)
while True:
    vision_data = robot.vision.get_data(BLUE_BARREL)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

get blue barrel#

มาโครนี้จะเคลื่อนหุ่นยนต์ไปยังถังสีฟ้าที่ตรวจพบ จนกว่าหุ่นยนต์จะเก็บถังนั้นได้ ใช้มาโครนี้หลังจากที่หุ่นยนต์สามารถมองเห็นถังสีฟ้าได้ หรือหลังจากใช้มาโคร “เลี้ยวจนกว่าจะเจอถังสีฟ้า” เพื่อค้นหาถังแล้ว

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเคลื่อนที่และการหมุนของหุ่นยนต์ด้วย set_move_velocity และ set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Get blue barrel
while True:
    vision_data = robot.vision.get_data(BLUE_BARREL)

    if vision_data[0].exists:
        if robot.has_blue_barrel():
            robot.stop_all_movement()
            break
        else:
            robot.move_at(vision_data[0].bearing)
    else:
        robot.move_at(0)
    wait(20, MSEC)

AI Vision (หุ่นยนต์ AIM)#

turn right until AIM robot#

มาโครนี้จะหมุนหุ่นยนต์ไปทางขวาจนกว่าเซ็นเซอร์ตรวจจับภาพ AI จะตรวจพบหุ่นยนต์ VEX AIM Coding Robot ตัวอื่น จากนั้นจึงจะหมุนเข้าหาหุ่นยนต์ตัวนั้น ใช้มาโครนี้เมื่อหุ่นยนต์จำเป็นต้องค้นหาหุ่นยนต์ตัวอื่นก่อนที่จะเคลื่อนที่เข้าหา

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเลี้ยวของหุ่นยนต์ด้วย set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Turn right until AIM robot is detected
robot.turn(RIGHT)
while True:
    vision_data = robot.vision.get_data(AIM_ROBOT)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

turn left until AIM robot#

มาโครนี้จะหมุนหุ่นยนต์ไปทางซ้ายจนกว่าเซ็นเซอร์ตรวจจับภาพ AI จะตรวจพบหุ่นยนต์ VEX AIM Coding Robot ตัวอื่น จากนั้นจึงหมุนเข้าหาหุ่นยนต์ตัวนั้น ใช้มาโครนี้เมื่อหุ่นยนต์จำเป็นต้องค้นหาหุ่นยนต์ตัวอื่นก่อนที่จะเคลื่อนที่เข้าหา

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเลี้ยวของหุ่นยนต์ด้วย set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Turn left until AIM robot is detected
robot.turn(LEFT)
while True:
    vision_data = robot.vision.get_data(AIM_ROBOT)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

move to AIM robot#

มาโครนี้จะเคลื่อนหุ่นยนต์เข้าหาหุ่นยนต์ VEX AIM Coding Robot อีกตัวหนึ่ง จนกว่าจะอยู่ใกล้พอที่จะหยุดได้ ใช้มาโครนี้หลังจากที่หุ่นยนต์สามารถมองเห็นหุ่นยนต์ตัวอื่นได้ หรือหลังจากใช้มาโคร turn-until-AIM-robot เพื่อค้นหาหุ่นยนต์แล้ว

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเคลื่อนที่และการหมุนของหุ่นยนต์ด้วย set_move_velocity และ set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Move to AIM robot
while True:
    vision_data = robot.vision.get_data(AIM_ROBOT)

    if vision_data[0].exists:
        if vision_data[0].width >= 140:
            robot.stop_all_movement()
            break
        else:
            robot.move_at(vision_data[0].bearing)
    else:
        robot.move_at(0)
    wait(20, MSEC)

AI Vision (AprilTag)#

turn right until AprilTag#

มาโครนี้จะหมุนหุ่นยนต์ไปทางขวาจนกว่าเซ็นเซอร์ AI Vision จะตรวจพบ AprilTag ID 0 จากนั้นจึงหมุนไปทาง AprilTag ที่ตรวจพบ ใช้เมื่อหุ่นยนต์ต้องการค้นหา AprilTag ก่อนที่จะเคลื่อนที่ไปหา หากต้องการเปลี่ยน AprilTag ที่หุ่นยนต์จะหมุนไป ให้แทนที่ 0 ใน TAG0 ด้วยตัวเลขใดก็ได้ตั้งแต่ 0 ถึง 37 (สามารถใช้ AprilTag หมายเลข 5 ถึง 37 กับ AprilTag ที่พิมพ์จาก AIM Printables)

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเลี้ยวของหุ่นยนต์ด้วย set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Turn right until AprilTag ID 0 is detected
robot.turn(RIGHT)
while True:
    vision_data = robot.vision.get_data(TAG0)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

turn left until AprilTag#

มาโครนี้จะหมุนหุ่นยนต์ไปทางซ้ายจนกว่าเซ็นเซอร์ AI Vision จะตรวจพบ AprilTag ID 0 จากนั้นจึงหมุนไปทาง AprilTag ที่ตรวจพบ ใช้เมื่อหุ่นยนต์ต้องการค้นหา AprilTag ก่อนที่จะเคลื่อนที่ไปหา หากต้องการเปลี่ยน AprilTag ที่หุ่นยนต์จะหมุนไป ให้แทนที่ 0 ใน TAG0 ด้วยตัวเลขใดก็ได้ตั้งแต่ 0 ถึง 37 (สามารถใช้ AprilTag หมายเลข 5 ถึง 37 กับ AprilTag ที่พิมพ์จาก AIM Printables)

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเลี้ยวของหุ่นยนต์ด้วย set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Turn left until AprilTag ID 0 is detected
robot.turn(LEFT)
while True:
    vision_data = robot.vision.get_data(TAG0)

    if vision_data[0].exists:
        # Turn to the object by adding your current heading and the vision bearing offset
        robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
        break
    wait(20, MSEC)

move to AprilTag#

มาโครนี้จะเคลื่อนหุ่นยนต์ไปยัง AprilTag ID 0 จนกว่าจะอยู่ใกล้พอที่จะหยุดได้ ใช้มาโครนี้หลังจากที่หุ่นยนต์สามารถมองเห็น AprilTag หรือหลังจากใช้มาโคร turn-until-AprilTag เพื่อค้นหา AprilTag แล้ว หากต้องการเปลี่ยน AprilTag ที่หุ่นยนต์จะเคลื่อนไป ให้แทนที่ 0 ใน TAG0 ด้วยตัวเลขใดก็ได้ตั้งแต่ 0 ถึง 37 (AprilTags 5 ถึง 37 สามารถใช้กับ AprilTags ที่พิมพ์จาก AIM Printables)

หมายเหตุ: หากหุ่นยนต์มีปัญหาในการตรวจจับวัตถุ ให้ลองลดความเร็วในการเคลื่อนที่และการหมุนของหุ่นยนต์ด้วย set_move_velocity และ set_turn_velocity

โค้ดด้านล่างแสดงลำดับคำสั่ง Python ที่จะถูกเพิ่มลงในโปรเจ็กต์ของคุณเมื่อลากมาโครนี้จากกล่องเครื่องมือ คุณสามารถใช้ลำดับคำสั่งนี้ได้เลย หรือจะแก้ไขหลังจากเพิ่มเข้าไปแล้วก็ได้

# Move to AprilTag ID 0
while True:
    vision_data = robot.vision.get_data(TAG0)

    if vision_data[0].exists:
        if vision_data[0].width >= 60:
            robot.stop_all_movement()
            break
        else:
            robot.move_at(vision_data[0].bearing)
    else:
        robot.move_at(0)
    wait(20, MSEC)