Makro#

Perkenalan#

Makro Python VEX AIM adalah blok kode yang sudah dibuat sebelumnya yang dapat diseret ke dalam proyek Python. Setiap makro adalah sekelompok perintah Python yang bekerja sama untuk membuat robot menyelesaikan perilaku yang lebih besar.

Ini bukan metode tunggal yang dipanggil dari kode. Sebaliknya, setiap makro disisipkan sebagai urutan kode siap pakai yang dapat digunakan apa adanya atau diedit setelah ditambahkan ke proyek.

Pada halaman ini, setiap blok kode Python menunjukkan urutan kode sebenarnya yang disisipkan saat makro tersebut digunakan.

Berikut adalah daftar semua makro:

Emosi — Buat robot bertindak secara ekspresif.

  • act happy — Membuat robot bertindak bahagia.

  • act sad — Membuat robot bertindak sedih.

  • act silly — Membuat robot bertindak konyol.

  • act angry — Membuat robot bertindak marah.

  • act excited — Membuat robot bertindak bersemangat.

Penglihatan AI (Bola Olahraga) — Berputar ke arah atau mengambil bola olahraga.

Penglihatan AI (Tong Oranye) — Berputar ke arah atau kumpulkan tong oranye.

Penglihatan AI (Tong Biru) — Berputar ke arah atau kumpulkan tong biru.

Penglihatan AI (Robot AIM) — Berputar atau bergerak mendekati Robot AIM lainnya.

Penglihatan AI (AprilTag) — Berputar atau bergerak mendekati AprilTag.

Emosi#

act happy#

Makro ini membuat robot bertingkah gembira dengan menampilkan wajah-wajah bahagia, memainkan suara gembira, mengubah warna LED, dan bergerak maju mundur. Gunakan makro ini ketika robot perlu merespons dengan cara yang ceria atau positif.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini membuat robot bertingkah sedih dengan menampilkan wajah sedih, memutar suara sedih, meredupkan LED, dan bergerak perlahan ke berbagai arah. Gunakan makro ini ketika robot perlu menunjukkan reaksi kecewa atau lesu.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini membuat robot bertingkah konyol dengan berputar, mengubah wajah, dan menyalakan berbagai warna LED. Gunakan makro ini ketika robot perlu memberikan reaksi yang lucu atau mengejutkan.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini membuat robot bertingkah marah dengan menampilkan ekspresi wajah marah, memutar suara marah, menyalakan LED menjadi merah, dan bergerak dengan cepat. Gunakan makro ini ketika robot perlu menunjukkan reaksi frustrasi atau peringatan.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini membuat robot bertingkah gembira dengan menampilkan ekspresi wajah gembira, mengeluarkan suara gembira, bergerak cepat dari sisi ke sisi, dan menyalakan LED oranye. Gunakan makro ini ketika robot perlu merayakan atau bereaksi dengan penuh energi.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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)

Visi AI (Bola Olahraga)#

turn right until sports ball#

Makro ini memutar robot ke kanan hingga Sensor Penglihatan AI mendeteksi bola olahraga, lalu berputar ke arah objek yang terdeteksi. Gunakan makro ini ketika robot perlu mencari bola olahraga sebelum bergerak ke arahnya atau mengambilnya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan putar robot dengan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini memutar robot ke kiri hingga Sensor Penglihatan AI mendeteksi bola olahraga, lalu berputar ke arah objek yang terdeteksi. Gunakan makro ini ketika robot perlu mencari bola olahraga sebelum bergerak ke arahnya atau mengambilnya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan putar robot dengan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini menggerakkan robot menuju bola olahraga yang terdeteksi hingga robot berhasil mengumpulkannya. Gunakan ini setelah robot dapat melihat bola olahraga, atau setelah menggunakan makro “berputar hingga bola olahraga” untuk menemukannya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan gerak dan putar robot dengan set_move_velocity dan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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)

Visi AI (Tong Oranye)#

turn right until orange barrel#

Makro ini memutar robot ke kanan hingga Sensor Penglihatan AI mendeteksi tong oranye, lalu berputar ke arah objek yang terdeteksi. Gunakan makro ini ketika robot perlu mencari tong oranye sebelum bergerak ke arahnya atau mengambilnya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan putar robot dengan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini memutar robot ke kiri hingga Sensor Penglihatan AI mendeteksi tong oranye, lalu berputar ke arah objek yang terdeteksi. Gunakan makro ini ketika robot perlu mencari tong oranye sebelum bergerak ke arahnya atau mengambilnya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan putar robot dengan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini menggerakkan robot menuju tong oranye yang terdeteksi hingga robot mengambilnya. Gunakan ini setelah robot dapat melihat tong oranye, atau setelah menggunakan makro putar-hingga-tong-oranye untuk menemukannya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan gerak dan putar robot dengan set_move_velocity dan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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)

Visi AI (Blue Barrel)#

turn right until blue barrel#

Makro ini memutar robot ke kanan hingga Sensor Penglihatan AI mendeteksi tong biru, lalu berputar ke arah objek yang terdeteksi. Gunakan makro ini ketika robot perlu mencari tong biru sebelum bergerak ke arahnya atau mengambilnya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan putar robot dengan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini memutar robot ke kiri hingga Sensor Penglihatan AI mendeteksi tong biru, lalu berputar ke arah objek yang terdeteksi. Gunakan makro ini ketika robot perlu mencari tong biru sebelum bergerak ke arahnya atau mengambilnya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan putar robot dengan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini menggerakkan robot menuju tong biru yang terdeteksi hingga robot mengambilnya. Gunakan ini setelah robot dapat melihat tong biru, atau setelah menggunakan makro “berputar hingga tong biru” untuk menemukannya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan gerak dan putar robot dengan set_move_velocity dan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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)

Visi AI (Robot AIM)#

turn right until AIM robot#

Makro ini memutar robot ke kanan hingga Sensor Penglihatan AI mendeteksi Robot Pemrograman VEX AIM lainnya, lalu berputar ke arahnya. Gunakan makro ini ketika robot perlu mencari robot lain sebelum bergerak ke arahnya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan putar robot dengan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini memutar robot ke kiri hingga Sensor Penglihatan AI mendeteksi Robot Pemrograman VEX AIM lainnya, lalu berputar ke arahnya. Gunakan makro ini ketika robot perlu mencari robot lain sebelum bergerak ke arahnya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan putar robot dengan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini menggerakkan robot menuju Robot Pemrograman VEX AIM lainnya hingga cukup dekat untuk berhenti. Gunakan ini setelah robot dapat melihat robot lain, atau setelah menggunakan makro putar-hingga-robot-AIM untuk menemukannya.

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan gerak dan putar robot dengan set_move_velocity dan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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)

Visi AI (AprilTag)#

turn right until AprilTag#

Makro ini memutar robot ke kanan hingga Sensor Penglihatan AI mendeteksi AprilTag ID 0, lalu berputar ke arah AprilTag yang terdeteksi. Gunakan ini ketika robot perlu mencari AprilTag sebelum bergerak ke arahnya. Untuk mengubah AprilTag mana yang akan dituju robot, ganti 0 di TAG0 dengan angka apa pun dari 0 hingga 37 (AprilTag 5 hingga 37 dapat digunakan dengan AprilTag yang dicetak dari AIM Printables.)

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan putar robot dengan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini memutar robot ke kiri hingga Sensor Penglihatan AI mendeteksi AprilTag ID 0, lalu berputar ke arah AprilTag yang terdeteksi. Gunakan ini ketika robot perlu mencari AprilTag sebelum bergerak ke arahnya. Untuk mengubah AprilTag mana yang akan dituju robot, ganti 0 di TAG0 dengan angka apa pun dari 0 hingga 37 (AprilTag 5 hingga 37 dapat digunakan dengan AprilTag yang dicetak dari AIM Printables.)

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan putar robot dengan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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#

Makro ini menggerakkan robot menuju AprilTag ID 0 hingga cukup dekat untuk berhenti. Gunakan ini setelah robot dapat melihat AprilTag, atau setelah menggunakan makro putar-hingga-AprilTag untuk menemukannya. Untuk mengubah AprilTag mana yang akan dituju robot, ganti 0 di TAG0 dengan angka apa pun dari 0 hingga 37 (AprilTag 5 hingga 37 dapat digunakan dengan AprilTag yang dicetak dari AIM Printables.)

Catatan: Jika robot mengalami kesulitan mendeteksi objek, coba turunkan kecepatan gerak dan putar robot dengan set_move_velocity dan set_turn_velocity.

Kode di bawah ini menunjukkan urutan Python yang ditambahkan ke proyek Anda saat makro ini diseret dari Toolbox. Anda dapat menggunakan urutan tersebut apa adanya atau mengeditnya setelah menambahkannya.

# 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)