Python dành riêng cho robot#

Giới thiệu#

Robot anh hùng Disco bao gồm một nhóm động cơ, bộ dò đường, cảm biến quang học và cảm biến hệ thống định vị trong game (GPS).

Tất cả các phương pháp VEXcode VR tiêu chuẩn đều có sẵn để sử dụng trong V5 22-23 Spin Up Playground.

Dưới đây là danh sách tất cả các phương pháp dành riêng cho Robot:

Hệ thống truyền động – Giúp robot di chuyển và xoay.

  • Hành động

    • drive — Di chuyển robot tiến hoặc lùi mãi mãi.

    • drive_for — Di chuyển robot tiến hoặc lùi một khoảng cách cụ thể.

    • turn — Xoay robot sang trái hoặc phải mãi mãi.

    • turn_for — Xoay robot sang trái hoặc phải một số độ cụ thể.

    • turn_to_heading — Xoay robot để hướng về một hướng cụ thể từ -359 đến 359 độ.

    • turn_to_rotation — Xoay robot theo hướng cụ thể.

    • stop — Dừng chuyển động của robot.

  • Các sinh vật đột biến

    • set_heading — Thay đổi hướng hiện tại của robot thành một hướng mới.

    • set_rotation — Thay đổi hướng quay hiện tại của robot thành hướng quay mới.

    • set_timeout — Đặt khoảng thời gian robot sẽ cố gắng hoàn thành một chuyển động.

    • set_drive_velocity — Cho robot biết tốc độ lái xe.

    • set_turn_velocity — Cho robot biết tốc độ quay.

  • Người đạt giải

    • heading — Trả về hướng hiện tại của robot từ 0 đến 359,99 độ.

    • rotation — Trả về góc xoay hiện tại của robot.

    • is_done — Trả về giá trị Boolean cho biết robot đã hoàn thành việc di chuyển hay chưa.

    • is_moving — Trả về giá trị Boolean cho biết robot có đang di chuyển hay không.

    • velocity — Trả về tốc độ di chuyển của robot.

Chuyển động – Di chuyển và theo dõi nhóm động cơ của robot.

  • Hành động

    • spin — Quay một nhóm động cơ về phía trước hoặc phía sau mãi mãi.

    • spin_for — Quay một nhóm động cơ trong một khoảng cách cụ thể.

    • spin_to_position — Xoay một nhóm động cơ đến một vị trí cụ thể.

    • stop — Dừng một nhóm động cơ quay.

  • Các sinh vật đột biến

    • set_position — Thay đổi vị trí hiện tại của nhóm động cơ thành một giá trị mới.

    • set_velocity — Cho biết nhóm động cơ quay nhanh như thế nào.

    • set_timeout — Đặt khoảng thời gian mà một nhóm cơ sẽ cố gắng hoàn thành một chuyển động.

  • Người đạt giải

    • is_done — Trả về giá trị Boolean cho biết nhóm động cơ đã hoàn thành việc di chuyển hay chưa.

    • is_spinning — Trả về giá trị Boolean cho biết nhóm động cơ có đang quay hay không.

    • position — Trả về vị trí hiện tại của nhóm động cơ.

    • velocity — Trả về tốc độ quay của nhóm động cơ.

Bảng điều khiển – In ra bảng điều khiển và theo dõi các giá trị.

  • In

  • Màn hình

    • monitor_variable — Thêm một hoặc nhiều biến được xác định trước vào tab Giám sát.

    • monitor_sensor — Thêm một hoặc nhiều giá trị cảm biến vào tab Giám sát.

Cảm biến - Sử dụng các cảm biến khác nhau của robot.

  • Quang học

    • is_near_object – Trả về liệu Cảm biến quang có phát hiện vật thể trong phạm vi hay không.

    • color – Trả về màu được phát hiện bởi Cảm biến quang học.

    • brightness – Trả về lượng ánh sáng phản xạ từ vật thể.

    • hue – Trả về sắc độ được phát hiện bởi Cảm biến quang học.

    • object_detected – Đăng ký một hàm sẽ được gọi khi Cảm biến quang học phát hiện một vật thể.

    • object_lost – Đăng ký một hàm sẽ được gọi khi Cảm biến quang học mất một vật thể.

  • Hệ thống định vị GPS

    • x_position – Trả về tọa độ x hiện tại của Cảm biến GPS trên thực địa.

    • y_position – Trả về tọa độ y hiện tại của Cảm biến GPS trên thực địa.

    • heading – Trả về hướng mà robot hiện đang đối mặt dựa trên các giá trị đọc của Cảm biến GPS từ 0 đến 359 độ.

  • Công cụ theo dõi đường dây

    • reflectivity – Trả về lượng ánh sáng phản xạ từ bề mặt.

Các ví dụ trên trang này sử dụng vị trí bắt đầu mặc định của Playground.

Hệ thống truyền động#

Hệ thống truyền động điều khiển cách robot VR di chuyển và xoay hướng. Hệ thống truyền động có thể tiến hoặc lùi, rẽ trái hoặc phải, xoay theo hướng mong muốn và theo dõi chuyển động quay của nó.

Hành động#

lái xe#

Phím drive cho phép robot di chuyển tiến hoặc lùi liên tục. Robot sẽ tiếp tục di chuyển cho đến khi nhận được lệnh khác, chẳng hạn như rẽ hoặc dừng lại.

Usage:
drivetrain.drive(direction)

Thông số

Sự miêu tả

direction

Hướng di chuyển của robot: FORWARD hoặc REVERSE.

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

ổ đĩa cho#

Lệnh drive_for di chuyển robot tiến hoặc lùi một khoảng cách cụ thể. Chương trình sẽ đợi cho đến khi robot hoàn thành việc di chuyển trước khi dòng mã tiếp theo được thực thi.

Usage:
drivetrain.drive_for(direction, distance, units, wait)

Thông số

Sự miêu tả

direction

Hướng di chuyển của robot: FORWARD hoặc REVERSE.

distance

Quãng đường robot di chuyển. Giá trị này có thể là số nguyên integer hoặc số thập phân (float).

units

Tùy chọn. Đơn vị khoảng cách: INCHES (mặc định) hoặc MM (milimet).

wait

Tùy chọn. wait=True (mặc định) khiến dự án chờ cho đến khi robot hoàn thành chuyển động trước khi dòng mã tiếp theo được thực thi. wait=False khiến dòng mã tiếp theo được thực thi ngay lập tức.

def main():
    # Drive forward and backward
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.drive_for(REVERSE, 200, MM)

# VR threads — Do not delete
vr_thread(main)

xoay#

turn sẽ khiến robot quay sang trái hoặc phải liên tục. Robot sẽ tiếp tục quay cho đến khi nhận được lệnh thực hiện hành động khác, chẳng hạn như lái xe hoặc dừng lại.

Usage:
drivetrain.turn(direction)

Thông số

Sự miêu tả

direction

Hướng quay của robot: LEFT hoặc RIGHT.

def main():
    # Turn right and left, then stop
    drivetrain.turn(RIGHT)
    wait(2, SECONDS)
    drivetrain.turn(LEFT)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

lượt cho#

Lệnh turn_for cho phép robot quay sang trái hoặc phải một số độ nhất định. Góc quay được tính tương đối so với vị trí hiện tại của robot. Chương trình sẽ chờ cho đến khi robot quay xong trước khi thực thi dòng mã tiếp theo.

Usage:
drivetrain.turn_for(direction, angle, units, wait)

Thông số

Sự miêu tả

direction

Hướng quay của robot: LEFT hoặc RIGHT.

angle

Số độ mà robot quay. Giá trị này có thể là số nguyên integer hoặc số thập phân (float).

units

Tùy chọn. Đơn vị xoay: DEGREES (mặc định).

wait

Tùy chọn. wait=True (mặc định) khiến dự án chờ cho đến khi robot quay xong trước khi dòng mã tiếp theo được thực thi. wait=False khiến dòng mã tiếp theo được thực thi ngay lập tức.

def main():
    # Turn the robot right and left
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_for(LEFT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

quay_đến_hướng#

Hướng quay là hướng mà robot đang đối mặt, được đo bằng độ. Lệnh turn_to_heading sẽ xoay robot để quay về một hướng cụ thể từ -359 đến 359 độ. Robot sẽ quay theo hướng ngắn nhất để đạt được hướng mục tiêu.

Hướng di chuyển ban đầu của robot là 0 độ.

Dự án sẽ chờ cho đến khi robot hoàn thành việc quay trước khi dòng mã tiếp theo được thực thi.

Usage:
drivetrain.turn_to_heading(angle, units, wait)

Thông số

Sự miêu tả

angle

Hướng mà robot nên đối mặt, tính bằng độ. Giá trị này có thể là số nguyên integer hoặc số thập phân (float) từ -359 đến 359.

units

Tùy chọn. Đơn vị xoay: DEGREES (mặc định).

wait

Tùy chọn. wait=True (mặc định) khiến dự án chờ cho đến khi robot quay xong trước khi dòng mã tiếp theo được thực thi. wait=False khiến dòng mã tiếp theo được thực thi ngay lập tức.

def main():
    # Turn to face the cardinal directions
    drivetrain.turn_to_heading(90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(180, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(270, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

xoay tới#

turn_to_rotation xoay robot theo một hướng cụ thể.

Góc quay là mức độ robot đã quay, được đo bằng độ. Khi bắt đầu một dự án, giá trị góc quay được đặt là 0 độ. Góc quay cũng có thể được đặt bằng phương pháp set_rotation.

Các giá trị xoay là tuyệt đối. Điều này có nghĩa là hướng quay phụ thuộc vào góc xoay hiện tại của robot. Xoay sang phải sẽ làm tăng góc xoay, và xoay sang trái sẽ làm giảm góc xoay.

Ví dụ, nếu robot bắt đầu ở 0 độ và bạn xoay nó một góc 720 độ, nó sẽ quay sang phải hai lần. Nếu sau đó bạn xoay nó một góc 360 độ, nó sẽ quay sang trái một lần, vì 360 nhỏ hơn 720.

Dự án sẽ chờ cho đến khi robot hoàn thành việc quay trước khi dòng mã tiếp theo được thực thi.

Usage:
drivetrain.turn_to_rotation(angle, units, wait)

Thông số

Sự miêu tả

angle

Giá trị góc quay, tính bằng độ, mà robot sẽ quay tới. Giá trị này có thể là số nguyên integer hoặc số thập phân (float).

units

Tùy chọn. Đơn vị xoay: DEGREES (mặc định).

wait

Tùy chọn. wait=True (mặc định) khiến dự án chờ cho đến khi robot quay xong trước khi dòng mã tiếp theo được thực thi. wait=False khiến dòng mã tiếp theo được thực thi ngay lập tức.

def main():
    # Turn left, then spin in a circle
    # clockwise and face right
    drivetrain.turn_to_rotation(-90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_rotation(450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

dừng lại#

stop dừng chuyển động của robot.

Usage:
drivetrain.stop()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

Biến đổi#

đặt tiêu đề#

Hướng di chuyển là hướng mà robot đang đối mặt, được đo bằng độ. Lệnh set_heading thay đổi hướng di chuyển hiện tại của robot thành một giá trị hướng di chuyển mới.

Ví dụ, nếu robot đã quay mặt sang phải, việc đặt hướng quay về 0 độ sẽ biến vị trí quay mặt sang phải đó thành 0 độ mới. Sau đó, robot có thể quay đến các vị trí khác dựa trên hướng quay mới đó.

Usage:
drivetrain.set_heading(heading, units)

Thông số

Sự miêu tả

heading

Giá trị hướng, tính bằng độ, cần thiết lập cho robot. Giá trị này có thể là số nguyên integer hoặc số thập phân (float).

units

Tùy chọn. Đơn vị hướng: DEGREES (mặc định).

def main():
    # Face the new 0 degrees
    drivetrain.set_heading(90, DEGREES)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

đặt_xoay#

Góc quay là mức độ robot đã xoay, được đo bằng độ. Khi bắt đầu một dự án, giá trị góc quay được đặt là 0 độ. Lệnh set_rotation thay đổi góc quay hiện tại của robot thành một giá trị mới.

Ví dụ, nếu robot đã quay hai vòng hoàn chỉnh sang phải, giá trị góc quay của nó sẽ là 720 độ. Việc đặt góc quay về 0 độ sẽ thiết lập lại góc quay từ 720 độ về 0 độ. Sau đó, robot có thể quay theo các hướng dựa trên giá trị mới đó.

Usage:
drivetrain.set_rotation(rotation, units)

Thông số

Sự miêu tả

rotation

Giá trị xoay, tính bằng độ, cần thiết lập cho robot. Giá trị này có thể là số nguyên integer hoặc số thập phân (float).

units

Tùy chọn. Đơn vị xoay: DEGREES (mặc định).

def main():
    # Spin counterclockwise two times
    drivetrain.set_rotation(720, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

đặt thời gian chờ#

set_timeout thiết lập khoảng thời gian robot sẽ cố gắng hoàn thành một chuyển động. Nếu robot không thể hoàn thành trong thời gian đó, nó sẽ ngừng cố gắng và chuyển sang dòng mã tiếp theo. Điều này giúp robot không bị kẹt ở một chuyển động nào đó.

Usage:
drivetrain.set_timeout(value, units)

Thông số

Sự miêu tả

value

The amount of time the robot can try to finish a movement. This can be a positive integer or decimal (float).

units

Đơn vị thời gian: SECONDS hoặc MSEC (mili giây).

def main():
    # Turn right after driving forward
    drivetrain.set_timeout(1, SECONDS)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    drivetrain.turn_for(RIGHT, 90)

# VR threads — Do not delete
vr_thread(main)

đặt_vận_độ_lực_lái#

set_drive_velocity cho robot biết tốc độ di chuyển. Tỷ lệ phần trăm càng cao thì robot càng di chuyển nhanh hơn và tỷ lệ phần trăm càng thấp thì robot càng di chuyển chậm hơn.

Mỗi dự án đều bắt đầu với việc robot di chuyển ở tốc độ mặc định là 50%.

Lưu ý: Vận tốc cao hơn giúp robot di chuyển nhanh hơn, nhưng có thể kém chính xác hơn. Vận tốc thấp hơn giúp robot di chuyển chậm hơn, nhưng có thể chính xác hơn.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Thông số

Sự miêu tả

velocity

Tốc độ lái xe từ 0% đến 100%. Giá trị này có thể là số nguyên integer hoặc số thập phân (float).

units

Tùy chọn. Đơn vị vận tốc: PERCENT (mặc định).

def main():
    # Drive forward at different velocities
    # Default velocity
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive slower
    drivetrain.set_drive_velocity(20, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive faster
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

đặt_vận_độ_quay#

set_turn_velocity cho robot biết tốc độ quay. Tỷ lệ phần trăm càng cao thì robot quay càng nhanh, tỷ lệ phần trăm càng thấp thì robot quay càng chậm.

Mỗi dự án đều bắt đầu với việc robot quay ở tốc độ 50% theo mặc định.

Lưu ý: Vận tốc cao hơn làm cho robot quay nhanh hơn, nhưng có thể kém chính xác hơn. Vận tốc thấp hơn làm cho robot quay chậm hơn, nhưng có thể chính xác hơn.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Thông số

Sự miêu tả

velocity

Tốc độ quay từ 0% đến 100%. Giá trị này có thể là số nguyên integer hoặc số thập phân (float).

units

Tùy chọn. Đơn vị vận tốc: PERCENT (mặc định).

def main():
    # Turn at different velocities
    # Default velocity
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn slower
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Người nhận#

tiêu đề#

Hướng di chuyển là hướng mà robot đang đối mặt, được đo bằng độ. Lệnh heading trả về hướng di chuyển hiện tại của robot từ 0 đến 359,99 độ.

Hướng di chuyển ban đầu của robot là 0 độ.

Usage:
drivetrain.heading(units)

Thông số

Sự miêu tả

units

Tùy chọn. Đơn vị hướng: DEGREES (mặc định).

def main():
    # Display the heading after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain.heading(DEGREES))

# VR threads — Do not delete
vr_thread(main)

xoay#

Góc quay là mức độ robot đã xoay, được đo bằng độ. Khi bắt đầu một dự án, giá trị góc quay được đặt là 0 độ. Lệnh rotation trả về góc quay hiện tại của robot.

Xoay sang phải sẽ làm tăng góc quay, và xoay sang trái sẽ làm giảm góc quay. Ví dụ, xoay hai vòng sang phải sẽ tạo ra góc quay 720 độ.

Usage:
drivetrain.rotation(units)

Thông số

Sự miêu tả

units

Tùy chọn. Đơn vị xoay: DEGREES (mặc định).

def main():
    # Display the rotation after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Rotation: ")
    brain.screen.print(drivetrain.rotation(DEGREES))

# VR threads — Do not delete
vr_thread(main)

đã xong#

is_done trả về giá trị Boolean cho biết robot đã di chuyển xong hay chưa. Điều này có thể được sử dụng để điều khiển thời gian của các hành vi khác dựa trên chuyển động của robot.

  • True — Robot đã di chuyển xong.

  • False — Robot vẫn đang di chuyển.

Phương pháp này hoạt động cùng với các phương pháp Drivetrain sau có tham số wait : drive_for, turn_for, turn_to_heading, và turn_to_rotation.

Usage:
drivetrain.is_done()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

đang di chuyển#

is_moving trả về trạng thái di chuyển của robot, dưới dạng giá trị Boolean. Điều này có thể được sử dụng để điều khiển thời gian thực hiện các hành vi khác dựa trên chuyển động của robot.

  • True — Robot đang di chuyển.

  • False — Robot không di chuyển.

Usage:
drivetrain.is_moving()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

vận tốc#

Giá trị velocity trả về tốc độ di chuyển của robot, được biểu thị bằng phần trăm từ -100% đến 100%.

Usage:
drivetrain.velocity(units)

Thông số

Sự miêu tả

units

Tùy chọn. Đơn vị vận tốc: PERCENT (mặc định).

Ví dụ

def main():
    # Display the velocity after driving
    drivetrain.drive_for(FORWARD, 150, MM)
    brain.screen.print("Velocity: ")
    brain.screen.print(drivetrain.velocity(PERCENT))

Cử động#

Disco sử dụng nhóm động cơ hút để quay các bánh xe hút, nhờ đó các đĩa có thể được thu gom và phân loại. Các bánh xe này cũng có thể quay các con lăn trên đồng ruộng khi chúng tiếp xúc với nhau.

Phần mô tả hướng chuyển động giải thích cách mỗi hướng di chuyển cụm mô tơ hút gió trên Disco.

Hành động#

quay#

spin sẽ quay một nhóm động cơ tiến hoặc lùi liên tục. Nhóm động cơ sẽ tiếp tục quay cho đến khi nhận được một lệnh khác, chẳng hạn như quay theo hướng khác hoặc dừng lại.

Usage:
intake_motor_group.spin(direction)

Thông số

Sự miêu tả

direction

Hướng quay của nhóm động cơ:

  • FORWARD — Quay theo hướng hút khí.
  • REVERSE — Quay theo hướng xả khí.

def main():
    # Spin the intake forward then stop
    intake_motor_group.spin(FORWARD)
    wait(0.5, SECONDS)
    intake_motor_group.stop()

# VR threads — Do not delete
vr_thread(main)

quay cho#

Lệnh spin_for quay một nhóm động cơ một khoảng cách cụ thể. Khoảng cách quay này tương đối so với vị trí hiện tại của nhóm động cơ. Chương trình sẽ chờ cho đến khi nhóm động cơ quay xong trước khi dòng mã tiếp theo được thực thi.

Usage:
intake_motor_group.spin_for(direction, distance, units, wait)

Thông số

Sự miêu tả

direction

Hướng quay của nhóm động cơ:

  • FORWARD — Quay theo hướng hút khí.
  • REVERSE — Quay theo hướng xả khí.

distance

Khoảng cách mà nhóm động cơ quay. DEGREES sử dụng số nguyên. TURNS có thể sử dụng số nguyên hoặc số thập phân.

units

Tùy chọn. Đơn vị khoảng cách: DEGREES (mặc định) hoặc TURNS.

wait

Tùy chọn.

  • wait=True (mặc định) — Cho phép dự án chờ cho đến khi nhóm động cơ quay xong trước khi dòng mã tiếp theo được thực thi.
  • wait=False — Cho phép dòng mã tiếp theo chạy ngay lập tức.

def main():
    # Spin the intake forward then stop
    intake_motor_group.spin_for(FORWARD, 360, DEGREES)

# VR threads — Do not delete
vr_thread(main)

quay đến vị trí#

spin_to_position xoay một nhóm động cơ đến một vị trí cụ thể.

Vị trí của một nhóm động cơ là khoảng cách nó đã quay, được đo bằng DEGREES hoặc TURNSMột vòng quay bằng 360 độ. Khi bắt đầu một dự án, vị trí của nhóm động cơ được đặt thành 0 độ. Vị trí của nhóm động cơ cũng có thể được đặt bằng phương pháp set_position.

Các giá trị vị trí là tuyệt đối. Điều này có nghĩa là hướng quay phụ thuộc vào vị trí hiện tại của nhóm động cơ.

Ví dụ, nếu nhóm động cơ bắt đầu ở 0 độ và quay đến vị trí 720 độ, nó sẽ quay về phía trước hai vòng. Nếu sau đó nó quay đến vị trí 360 độ, nó sẽ quay ngược lại một vòng, vì 360 nhỏ hơn 720.

Usage:
intake_motor_group.spin_to_position(angle, units, wait)

Thông số

Sự miêu tả

angle

Giá trị vị trí mà nhóm động cơ sẽ quay tới. DEGREES sử dụng số nguyên. TURNS có thể sử dụng số nguyên hoặc số thập phân.

units

Tùy chọn. Đơn vị vị trí: DEGREES (mặc định) hoặc TURNS.

wait

Tùy chọn.

  • wait=True (mặc định) — Cho phép dự án chờ cho đến khi nhóm động cơ quay xong trước khi dòng mã tiếp theo được thực thi.
  • wait=False — Cho phép dòng mã tiếp theo chạy ngay lập tức.

def main():
    # Spin the intake forward then stop
    intake_motor_group.spin_to_position(55, DEGREES)

# VR threads — Do not delete
vr_thread(main)

dừng lại#

stop dừng nhóm động cơ quay.

Usage:
intake_motor_group.stop()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

def main():
    # Spin the intake forward then stop
    intake_motor_group.spin(FORWARD)
    wait(0.5, SECONDS)
    intake_motor_group.stop()

# VR threads — Do not delete
vr_thread(main)

Biến đổi#

đặt vị trí#

Vị trí của một nhóm động cơ được xác định bằng khoảng cách quay, tính bằng DEGREES hoặc TURNSMột vòng quay tương đương với 360 độ. set_position thay đổi vị trí hiện tại của nhóm động cơ thành một giá trị mới.

Ví dụ, nếu một nhóm động cơ đã quay đến 180 độ, việc đặt vị trí về 0 độ sẽ thiết lập lại vị trí đó từ 180 độ về 0 độ. Sau đó, nhóm động cơ có thể quay đến các vị trí dựa trên giá trị mới đó.

Usage:
intake_motor_group.set_position(position, units)

Thông số

Sự miêu tả

position

Giá trị vị trí cần thiết lập cho nhóm động cơ. DEGREES sử dụng số nguyên. TURNS có thể sử dụng số nguyên hoặc số thập phân.

units

Tùy chọn. Đơn vị vị trí: DEGREES (mặc định) hoặc TURNS.

def main():
    # Spin the intake forward then stop
    intake_motor_group.set_position(90, DEGREES)
    intake_motor_group.spin_to_position(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

đặt vận tốc#

Tham số set_velocity cho biết tốc độ quay của nhóm động cơ. Tỷ lệ phần trăm càng cao thì nhóm động cơ càng quay nhanh hơn, và tỷ lệ phần trăm càng thấp thì nhóm động cơ càng quay chậm hơn.

Mỗi dự án đều bắt đầu với mỗi nhóm động cơ quay ở tốc độ 50% theo mặc định.

Lưu ý: Tốc độ cao hơn làm cho nhóm động cơ quay nhanh hơn, nhưng có thể kém chính xác hơn. Tốc độ thấp hơn làm cho nhóm động cơ quay chậm hơn, nhưng có thể chính xác hơn.

Usage:
intake_motor_group.set_velocity(velocity, units)

Thông số

Sự miêu tả

velocity

Tốc độ quay từ 0% đến 100%. Giá trị này có thể là số nguyên integer hoặc số thập phân (float).

units

Đơn vị vận tốc: PERCENT.

def main():
    # Spin the intake forward then stop
    intake_motor_group.set_velocity(75, PERCENT)
    intake_motor_group.spin_to_position(180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

đặt thời gian chờ#

set_timeout thiết lập khoảng thời gian mà một nhóm động cơ sẽ cố gắng hoàn thành một chuyển động. Nếu nhóm động cơ không thể hoàn thành trong thời gian đó, nó sẽ ngừng cố gắng và chuyển sang dòng mã tiếp theo. Điều này giúp ngăn nhóm động cơ bị kẹt trong một chuyển động.

Usage:
intake_motor_group.set_timeout(value, units)

Thông số

Sự miêu tả

value

Khoảng thời gian mà nhóm vận động có thể cố gắng hoàn thành một chuyển động. Giá trị này có thể là số nguyên dương integerfloat).

units

Đơn vị thời gian: SECONDS hoặc MSEC (mili giây).

def main():
    # Spin the intake forward then stop
    intake_motor_group.set_timeout(2, SECONDS)
    intake_motor_group.spin_to_position(270, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Người nhận#

đã xong#

is_done trả về giá trị Boolean cho biết nhóm vận động đã hoàn thành chuyển động hay chưa. Điều này có thể được sử dụng để kiểm soát thời gian của các hành vi khác dựa trên chuyển động của nhóm vận động.

  • True — Nhóm động cơ đã hoàn thành việc di chuyển.

  • False — Nhóm cơ vẫn đang hoạt động.

Phương pháp này hoạt động cùng với các phương pháp Chuyển động sau có tham số wait : spin_for và spin_to_position.

Usage:
intake_motor_group.is_done()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

đang quay#

is_spinning trả về giá trị Boolean cho biết nhóm động cơ có đang quay hay không. Giá trị này có thể được sử dụng để điều khiển thời gian của các hành vi khác dựa trên chuyển động của nhóm động cơ.

  • True — Nhóm động cơ đang quay.

  • False — Nhóm động cơ không quay.

Phương pháp này hoạt động cùng với các phương pháp Chuyển động sau có tham số wait : spin_for và spin_to_position.

Usage:
intake_motor_group.is_spinning()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

chức vụ#

Vị trí của một nhóm động cơ được xác định bằng khoảng cách quay, tính bằng DEGREES hoặc TURNSMột vòng quay tương đương với 360 độ. Vị trí position trả về vị trí hiện tại của nhóm động cơ.

Khi bắt đầu dự án, vị trí của nhóm động cơ được đặt ở 0 độ. Nếu nhóm động cơ quay một vòng hoàn chỉnh về phía trước, vị trí sẽ là 360 độ hoặc 1 vòng. Nếu nhóm động cơ quay theo hướng ngược lại, vị trí sẽ là số âm.

Usage:
intake_motor_group.position(units)

Thông số

Sự miêu tả

units

Bộ phận đưa nhóm động cơ trở lại vị trí ban đầu: DEGREES hoặc TURNS.

vận tốc#

velocity trả về tốc độ quay của nhóm động cơ.

Giá trị dương có nghĩa là nhóm động cơ đang quay thuận chiều. Giá trị âm có nghĩa là nhóm động cơ đang quay ngược chiều.

Usage:
intake_motor_group.velocity(units)

Thông số

Sự miêu tả

units

Đơn vị vận tốc cần trả về: PERCENT.

Bảng điều khiển#

Cửa sổ Console hiển thị văn bản, số và giá trị biến trong khi dự án đang chạy. Các phương thức của Console cũng có thể di chuyển con trỏ đến hàng mới, xóa nội dung Console và thêm biến hoặc giá trị cảm biến vào tab Monitor.

In#

não.màn hình.in#

brain.screen.print hiển thị văn bản, số hoặc giá trị biến trong Console bằng cách sử dụng vị trí con trỏ hiện tại.

Sử dụng brain.screen.next_row khi bạn muốn giá trị được in tiếp theo bắt đầu trên một hàng mới.

Usage:
brain.screen.print(value)

Thông số

Sự miêu tả

value

Văn bản, số hoặc giá trị biến cần hiển thị trong Console.

def main():
    # Display a message in the Console
    brain.screen.print("Hello, robot!")

# VR threads — Do not delete
vr_thread(main)

Bảng điều khiển VEXcode, hiển thị Bảng điều khiển và văn bản "Xin chào, robot!" được hiển thị.

não.màn hình.hàng tiếp theo#

Lệnh brain.screen.next_row di chuyển con trỏ đến cột 1 trên hàng tiếp theo trong Console. Giá trị tiếp theo được in sẽ xuất hiện trên hàng đó.

Usage:
brain.screen.next_row()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

def main():
    # Print on two rows
    brain.screen.print("Row 1")
    brain.screen.next_row()
    brain.screen.print("Row 2")

# VR threads — Do not delete
vr_thread(main)

Bảng điều khiển VEXcode, hiển thị Bảng điều khiển và văn bản "Hàng 1" được hiển thị trên dòng đầu tiên và "Hàng 2" trên dòng thứ hai.

brain.screen.clear_screen#

brain.screen.clear_screen xóa tất cả các hàng khỏi Console và di chuyển con trỏ trở lại Hàng 1.

Usage:
brain.screen.clear_screen()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

def main():
    # Display text, then clear it after two seconds
    brain.screen.print("This will disappear...")
    wait(2, SECONDS)
    brain.screen.clear_screen()

# VR threads — Do not delete
vr_thread(main)

Màn hình#

biến giám sát#

Lệnh monitor_variable thêm một hoặc nhiều biến được định nghĩa trước vào tab Monitor trong VEXcode. Điều này cho phép bạn theo dõi sự thay đổi giá trị của một biến trong khi dự án đang chạy.

Các biến phải là biến toàn cục để lệnh monitor_variable có thể giám sát chúng thành công. Cung cấp tên của mỗi biến dưới dạng chuỗi.

Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)

Thông số

Sự miêu tả

variable

Tên của một biến toàn cục được định nghĩa trước để theo dõi, được cung cấp dưới dạng chuỗi ký tự. Để theo dõi nhiều hơn một biến, hãy phân tách tên của mỗi biến bằng dấu phẩy.

def main():
    # Monitor the amount of loops
    global loops
    monitor_variable("loops")

    # Drive in a square 3 times
    for loops in range(12):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

cảm biến giám sát#

monitor_sensor thêm một hoặc nhiều giá trị cảm biến vào tab Monitor trong VEXcode. Điều này cho phép bạn theo dõi sự thay đổi của các giá trị cảm biến trong khi dự án đang chạy.

Cung cấp giá trị của từng cảm biến dưới dạng chuỗi ký tự.

Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)

Thông số

Sự miêu tả

sensor

The sensor value to monitor, given as a string. To monitor more than one sensor value, separate each sensor value with a comma. Supported sensor identifiers include:

  • Brain
    • brain.timer.time
  • Drivetrain
    • drivetrain.is_done
    • drivetrain.is_moving
    • drivetrain.heading
    • drivetrain.rotation
    • drivetrain.velocity_rpm
    • drivetrain.velocity_percent
  • Intake Motor Group
    • intake_motor_group.is_done
    • intake_motor_group.is_spinning
    • intake_motor_group.position_degrees
    • intake_motor_group.position_turns
    • intake_motor_group.velocity_rpm
    • intake_motor_group.velocity_percent
  • Fork Motor Group
    • fork_motor_group.is_done
    • fork_motor_group.is_spinning
    • fork_motor_group.position_degrees
    • fork_motor_group.position_turns
    • fork_motor_group.velocity_rpm
    • fork_motor_group.velocity_percent
  • Bottom Distance Sensor
    • bottom_distance.is_object_detected
    • bottom_distance.object_distance_mm
    • bottom_distance.object_distance_inches
  • Left Distance Sensor
    • left_distance.is_object_detected
    • left_distance.object_distance_mm
    • left_distance.object_distance_inches
  • Center Distance Sensor
    • center_distance.is_object_detected
    • center_distance.object_distance_mm
    • center_distance.object_distance_inches
  • Right Distance Sensor
    • right_distance.is_object_detected
    • right_distance.object_distance_mm
    • right_distance.object_distance_inches
  • Line Trackers
    • bottom_line_tracker.reflectivity
    • middle_line_tracker.reflectivity
    • top_line_tracker.reflectivity
  • Roller Optical Sensor
    • roller_optical.is_near_object
    • roller_optical.color
    • roller_optical.brightness
    • roller_optical.hue
  • Optical Sensor
    • optical.is_near_object
    • optical.color
    • optical.brightness
    • optical.hue
  • GPS Sensor
    • gps.position_mm
    • gps.position_inches
    • gps.heading
  • Rotation Sensor
    • rotation.angle
    • rotation.position

def main():
    # Monitor the robot's heading
    monitor_sensor("drivetrain.heading")
    drivetrain.turn_for(RIGHT, 450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Cảm biến#

Quang học#

là_vật_thể_gần#

is_near_object trả về giá trị Boolean cho biết liệu Cảm biến quang học có phát hiện vật thể trong phạm vi hay không.

  • True – Cảm biến quang học phát hiện vật thể.

  • False – Cảm biến quang học không phát hiện vật thể.

Usage:
roller_optical.is_near_object()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

màu sắc#

color trả về một thể hiện của lớp Color , dựa trên giá trị sắc độ được phát hiện. Chúng có thể được so sánh với các đối tượng Color được định nghĩa trước để tạo ra các câu lệnh điều kiện.

Các màu sắc có thể là:

  • NONE

  • RED - Giá trị màu sắc nằm giữa 340° - 20°

  • GREEN - Giá trị màu sắc nằm trong khoảng 80° - 140°

  • BLUE - Giá trị màu sắc nằm trong khoảng 200° - 240°

  • YELLOW - Giá trị màu sắc nằm trong khoảng 40° - 60°

  • ORANGE - Giá trị màu sắc nằm trong khoảng 20° - 40°

  • PURPLE - Giá trị màu sắc nằm trong khoảng 240° - 280°

  • CYAN - Giá trị màu sắc nằm trong khoảng 140° - 200°

Lưu ý: Cảm biến quang học đang tìm kiếm các dải màu phù hợp với màu được chỉ định. Để phát hiện các dải màu cụ thể, hãy xem hue.

Usage:
roller_optical.color()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

độ sáng#

brightness trả về lượng ánh sáng phản xạ từ vật thể dưới dạng số thập phân (float) biểu thị phần trăm.

Tỷ lệ phần trăm càng cao nghĩa là càng nhiều ánh sáng được phản xạ trở lại cảm biến quang học. Tỷ lệ phần trăm càng thấp nghĩa là càng ít ánh sáng được phản xạ trở lại.

Usage:
roller_optical.brightness()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

sắc độ#

hue trả về giá trị sắc độ của màu được phát hiện dưới dạng số thập phân (float) từ 0 đến 359.

Sắc độ là một cách để mô tả màu sắc bằng các con số xung quanh vòng tròn màu.

Một vòng tròn màu hiển thị toàn bộ quang phổ màu được dán nhãn bằng các giá trị độ xung quanh chu vi, tăng dần theo từng bước 30 độ từ 0° ở trên cùng đến 360°.

Usage:
roller_optical.hue()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

đối tượng được phát hiện#

object_detected đăng ký một hàm sẽ được gọi bất cứ khi nào Cảm biến quang học phát hiện một vật thể mới.

Usage:
roller_optical.object_detected(callback, arg)

Thông số

Sự miêu tả

callback

Một hàm được định nghĩa trước đó sẽ được thực thi khi Cảm biến quang học phát hiện một vật thể mới.

arg

Tùy chọn. Một tuple chứa các đối số để truyền cho hàm gọi lại. Xem Sử dụng hàm có tham số để biết thêm thông tin.

vật thể bị mất#

object_lost đăng ký một hàm sẽ được gọi bất cứ khi nào Cảm biến quang học mất dấu vật thể được phát hiện.

Usage:
roller_optical.object_lost(callback, arg)

Thông số

Sự miêu tả

callback

Một hàm được định nghĩa trước đó sẽ thực thi khi Cảm biến quang học mất một đối tượng được phát hiện.

arg

Tùy chọn. Một tuple chứa các đối số để truyền cho hàm gọi lại. Xem Sử dụng hàm có tham số để biết thêm thông tin.

GPS#

vị trí x#

x_position trả về tọa độ x hiện tại của cảm biến GPS (Game Positioning System™) trên sân.

Usage:
gps.x_position(units)

Thông số

Sự miêu tả

đơn vị

Đơn vị của giá trị bù: INCHES hoặc MM

vị trí y#

y_position trả về tọa độ y hiện tại của cảm biến GPS (Game Positioning System™) trên sân.

Usage:
gps.y_position(units)

Thông số

Sự miêu tả

đơn vị

Đơn vị của giá trị bù: INCHES hoặc MM

tiêu đề#

heading trả về hướng mà robot hiện đang đối mặt dựa trên các giá trị đọc từ cảm biến GPS (Game Positioning System™) trong khoảng từ 0 đến 359 độ.

Usage:
gps.heading()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

Công cụ theo dõi đường dây#

độ phản xạ#

reflectivity trả về một số nguyên biểu thị lượng ánh sáng phản xạ từ bề mặt dưới dạng phần trăm.

  • Độ phản xạ 0% có nghĩa là vật thể rất tối.

  • Độ phản xạ 100% có nghĩa là vật thể rất sáng.

Cách sử dụng:
Một trong ba đối tượng line_tracker có sẵn có thể được sử dụng với phương thức này, như được hiển thị bên dưới:

bộ theo dõi đường thẳng

Yêu cầu

top_line_tracker

top_line_tracker.reflectivity(units) — Top Line Tracker

middle_line_tracker

middle_line_tracker.reflectivity(units) — Middle Line Tracker

bottom_line_tracker

bottom_line_tracker.reflectivity(units) — Bottom Line Tracker

Tham số

Sự miêu tả

đơn vị

Tùy chọn. Đơn vị để trả về hệ số phản xạ:

  • PERCENT (mặc định)