Python dành riêng cho robot#

Giới thiệu#

Robot anh hùng Dex bao gồm hai tùy chọn động cơ, một cảm biến thị giác AI, một cảm biến quang học và một 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 25-26 Push Back 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 các động cơ của robot.

  • Hành động

    • spin — Quay động cơ tiến hoặc lùi mãi mãi.

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

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

    • stop — Dừng động cơ quay.

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

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

    • set_velocity — Cho động cơ biết tốc độ quay.

    • set_timeout — Đặt khoảng thời gian mà động 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 động cơ đã ngừng chuyển động hay chưa.

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

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

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

Công nghệ Thị giác AI - Thu thập và phân tích đối tượng bằng cảm biến thị giác AI.

  • Người đạt giải

    • take_snapshot – Trả về một bộ các đối tượng được phát hiện cho một chữ ký cụ thể.

  • Của cải

    • width – Chiều rộng của đối tượng được phát hiện tính bằng pixel.

    • height – Chiều cao của đối tượng được phát hiện tính bằng pixel.

    • centerX – Vị trí X của tâm đối tượng tính bằng pixel.

    • centerY – Vị trí Y của tâm đối tượng tính bằng pixel.

    • originX – Vị trí X của góc trên bên trái của đối tượng tính bằng pixel.

    • originY – Vị trí Y của góc trên bên trái của đối tượng tính bằng pixel.

    • id – Phân loại hoặc ID thẻ của đối tượng.

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

Dex sử dụng động cơ hút để kéo các khối vào robot. Động cơ băng tải di chuyển các khối từ bộ phận hút lên đỉnh robot để chúng có thể được đẩy vào mục tiêu.

Mỗi động cơ có cách vận hành hướng riêng. Phần mô tả hướng giải thích cách mỗi hướng di chuyển động cơ đó trên Dex.

Hành động#

quay#

spin sẽ làm cho động cơ quay tiến hoặc lùi liên tục. Độ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.

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.spin(direction) — Động cơ hút khí

conveyor_motor

conveyor_motor.spin(direction) — Động cơ băng tải

Thông số

Sự miêu tả

direction

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

  • FORWARD — Quay động cơ băng tải lên hoặc quay động cơ hút theo hướng hút.
  • REVERSE — Quay động cơ băng tải xuống hoặc quay động cơ hút theo hướng đẩy.

def main():
    # Pick up a second Block
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 350, MM)

# VR threads — Do not delete
vr_thread(main)

quay cho#

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

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.spin_for(direction, distance, units, wait) — Động cơ hút khí

conveyor_motor

conveyor_motor.spin_for(direction, distance, units, wait) — Động cơ băng tải

Thông số

Sự miêu tả

direction

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

  • FORWARD — Quay động cơ băng tải lên hoặc quay động cơ hút theo hướng hút.
  • REVERSE — Quay động cơ băng tải xuống hoặc quay động cơ hút theo hướng đẩy.

distance

Quãng đường quay của độ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ị 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ờ đến khi độ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 được thực thi ngay lập tức.

def main():
    # Pick up a second Block
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 350, MM)

# VR threads — Do not delete
vr_thread(main)

quay đến vị trí#

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

Vị trí của độ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 động cơ được đặt thành 0 độ. Vị trí của độ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 động cơ.

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

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.spin_to_position(angle, units, wait=True) — Động cơ hút

conveyor_motor

conveyor_motor.spin_to_position(angle, units, wait=True) — Động cơ băng tải

Thông số

Sự miêu tả

angle

Giá trị vị trí 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ờ đến khi độ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 được thực thi ngay lập tức.

def main():
    # Pick up a second Block
    conveyor_motor.spin_to_position(150, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 350, MM)

# VR threads — Do not delete
vr_thread(main)

dừng lại#

stop dừng động cơ quay.

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.stop() — Động cơ hút khí

conveyor_motor

conveyor_motor.stop() — Động cơ băng tải

Thông số

Sự miêu tả

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

def main():
    # Pick up a second Block
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 350, MM)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

Biến đổi#

đặt vị trí#

Vị trí của độ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 động cơ thành một giá trị mới.

Ví dụ, nếu một độ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 đó, động cơ có thể quay đến các vị trí dựa trên giá trị mới đó.

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.set_position(position, units) — Động cơ hút

conveyor_motor

conveyor_motor.set_position(position, units) — Động cơ băng tải

Thông số

Sự miêu tả

position

Giá trị vị trí cần thiết lập cho độ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():
    # Pick up a second Block
    conveyor_motor.set_position(-150, DEGREES)
    conveyor_motor.spin_to_position(0, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 350, MM)

# 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 động cơ. Tỷ lệ phần trăm càng cao thì động cơ càng quay nhanh, và tỷ lệ phần trăm càng thấp thì động cơ càng quay chậm.

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

Lưu ý: Tốc độ cao hơn làm cho độ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 động cơ quay chậm hơn, nhưng có thể chính xác hơn.

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.set_velocity(velocity, units) — Động cơ hút khí

conveyor_motor

conveyor_motor.set_velocity(velocity, units) — Động cơ băng tải

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():
    # Pick up a second Block
    conveyor_motor.set_velocity(90, PERCENT)
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 400, MM)

# VR threads — Do not delete
vr_thread(main)

đặt thời gian chờ#

set_timeout thiết lập khoảng thời gian tối đa mà động cơ sẽ cố gắng hoàn thành một chuyển động. Nếu độ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 động cơ bị kẹt ở một chuyển động nào đó.

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.set_timeout(value, units) — Động cơ hút

conveyor_motor

conveyor_motor.set_timeout(value, units) — Động cơ băng tải

Thông số

Sự miêu tả

value

The amount of time the motor 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():
    # Pick up a second Block
    conveyor_motor.set_timeout(0.5, SECONDS)
    conveyor_motor.spin_to_position(1000, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 400, MM)

# VR threads — Do not delete
vr_thread(main)

Người nhận#

đã xong#

is_done trả về giá trị Boolean cho biết động cơ đã ngừng chuyển động hay chưa. 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 động cơ.

  • True — Động cơ đã ngừng chuyển động.

  • False — Động 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.

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.is_done() — Động cơ hút khí

conveyor_motor

conveyor_motor.is_done() — Động cơ băng tải

Thông số

Sự miêu tả

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

def main():
    # Pick up a second Block
    conveyor_motor.spin_to_position(300, DEGREES, wait=False)
    wait(0.1, SECONDS)
    while not conveyor_motor.is_done():
        drivetrain.drive(FORWARD)
        intake_motor.spin(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

đang quay#

is_spinning trả về giá trị Boolean cho biết độ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 động cơ.

  • True — Động cơ đang quay.

  • False — Độ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.

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.is_spinning() — Động cơ hút khí

conveyor_motor

conveyor_motor.is_spinning() — Động cơ băng tải

Thông số

Sự miêu tả

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

def main():
    # Pick up a second Block
    conveyor_motor.spin_to_position(300, DEGREES, wait=False)
    wait(0.1, SECONDS)
    while conveyor_motor.is_spinning():
        drivetrain.drive_for(FORWARD, 200, MM)
        intake_motor.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

chức vụ#

Vị trí của động cơ được xác định bằng số vòng 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 động cơ.

Khi bắt đầu dự án, vị trí của động cơ được đặt ở 0 độ. Nếu độ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 động cơ quay theo hướng ngược lại, vị trí sẽ là số âm.

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.position(units) — Động cơ hút khí

conveyor_motor

conveyor_motor.position(units) — Động cơ băng tải

Thông số

Sự miêu tả

units

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

def main():
    # Pick up a second Block
    while conveyor_motor.position(DEGREES) < 150:
        conveyor_motor.spin(FORWARD)
        wait(2, MSEC)
    conveyor_motor.stop()
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 400, MM)

# VR threads — Do not delete
vr_thread(main)

vận tốc#

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

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

Cách sử dụng:
Một trong hai đối tượng động cơ có sẵn có thể được sử dụng với phương pháp này, như minh họa bên dưới:

động cơ

Yêu cầu

intake_motor

intake_motor.velocity(units) — Động cơ hút

conveyor_motor

conveyor_motor.velocity(units) — Động cơ băng tải

Thông số

Sự miêu tả

units

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

def main():
    # Pick up a second block
    conveyor_motor.set_velocity(100, PERCENT)
    conveyor_motor.spin_to_position(300, DEGREES, wait=False)
    wait(0.2, SECONDS)
    brain.screen.print(conveyor_motor.velocity(PERCENT))
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 400, MM)

# VR threads — Do not delete
vr_thread(main)

Tầm nhìn AI#

Người nhận#

chụp ảnh#

take_snapshot lọc dữ liệu từ khung hình của Cảm biến Thị giác AI thành một chữ ký duy nhất — một mô tả đã lưu về thứ mà cảm biến có thể nhận ra, chẳng hạn như một yếu tố trò chơi trên sân — và trả về một bộ dữ liệu.

The tuple stores objects ordered from largest to smallest by width, starting at index 0. Each object’s properties can be accessed using its index. An empty tuple is returned if no matching objects are detected.

Usage:
ai_vision.take_snapshot(signature)

Thông số

Sự miêu tả

signature

Lọc tập dữ liệu chỉ bao gồm dữ liệu có chữ ký đã cho. Các chữ ký có sẵn là:

  • AiVision.ALL_AIOBJS - Phát hiện các khối màu đỏ và xanh lam.

def main():
    # If an object is detected, pick it up
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            intake_motor.spin(FORWARD)
            drivetrain.drive(FORWARD)
            while not bumper.pressing():
                wait(2, MSEC)
            drivetrain.stop()
            break

# VR threads — Do not delete
vr_thread(main)

Của cải#

Có bảy thuộc tính được bao gồm trong mỗi đối tượng được lưu trữ trong một tuple sau khi take_snapshot được sử dụng.

Tất cả các giá trị thuộc tính ngoại trừ .id mô tả vị trí và kích thước của đối tượng được phát hiện trong tầm nhìn của Cảm biến Thị giác AI tại thời điểm take_snapshot được sử dụng. Các giá trị này được đo bằng pixel, dựa trên độ phân giải 320 x 240 pixel của cảm biến.

.chiều rộng#

.width trả về chiều rộng của đối tượng được phát hiện tính bằng pixel, là một số nguyên nằm giữa 1 và 320.

def main():
    # If an object is detected, approach and pick it up
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].width > 65:
                drivetrain.stop()
                break
            else:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.chiều cao#

.height trả về chiều cao của đối tượng được phát hiện tính bằng pixel, là một số nguyên nằm giữa 1 và 240.

def main():
    # If an object is detected, approach and pick it up
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].height > 55:
                drivetrain.stop()
                break
            else:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.centerX#

.centerX trả về tọa độ x của tâm đối tượng được phát hiện tính bằng pixel, là một số nguyên nằm giữa 0 và 320.

def main():
    # Pick up a Block from the top left group
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    drivetrain.turn_for(LEFT, 80, DEGREES)
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn(LEFT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if 140 < ai_objects[0].centerX < 180:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)
                while not bumper.pressing():
                    wait(2, MSEC)
                drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

.centerY#

.centerY trả về tọa độ y của tâm đối tượng được phát hiện tính bằng pixel, là một số nguyên nằm giữa 0 và 240.

def main():
    # If an object is detected, approach and pick it up
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].centerY > 140:
                drivetrain.stop()
                break
            else:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.originX#

.originX trả về tọa độ x của góc trên bên trái của khung bao quanh đối tượng được phát hiện tính bằng pixel, là một số nguyên nằm giữa 0 và 320.

def main():
    # Pick up a Block from the top left group
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    drivetrain.turn_for(LEFT, 80, DEGREES)
    drivetrain.drive_for(FORWARD, 300, MM)
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn(RIGHT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if 100 < ai_objects[0].originX < 140:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)
                while not bumper.pressing():
                    wait(2, MSEC)
                drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

.originY#

.originY trả về tọa độ y của góc trên bên trái của khung bao quanh đối tượng được phát hiện tính bằng pixel, là một số nguyên nằm giữa 0 và 240.

def main():
    # If an object is detected, approach and pick it up
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].originY > 120:
                drivetrain.stop()
                break
            else:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.nhận dạng#

.id trả về ID của Phân loại AI được phát hiện dưới dạng số nguyên.

Phân loại AI

nhận dạng

Chữ ký

Khối Xanh

1

GameElements.BLUE_BLOCK

Khối Đỏ

2

GameElements.RED_BLOCK

def main():
    # Pick up a Red Block from the top left group
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    drivetrain.turn_for(LEFT, 80, DEGREES)
    drivetrain.drive_for(FORWARD, 300, MM)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            drivetrain.drive(FORWARD)
            if (ai_objects[0].id) == 2:
                intake_motor.spin(FORWARD)
                while not bumper.pressing():
                    wait(2, MSEC)
                drivetrain.stop()
                break

# VR threads — Do not delete
vr_thread(main)

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#

monitor_variable#

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#

Lệnh 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
  • Pusher Motor
    • pusher_motor.is_done
    • pusher_motor.is_spinning
    • pusher_motor.position
    • pusher_motor.velocity
  • Arm Motor
    • arm_motor.is_done
    • arm_motor.is_spinning
    • arm_motor.position
    • arm_motor.velocity
  • Front Distance Sensor
    • front_distance.is_object_detected
    • front_distance.object_distance_mm
    • front_distance.object_distance_inches
  • Front Optical Sensor
    • front_optical.is_near_object
    • front_optical.color
    • front_optical.brightness
    • front_optical.hue
  • GPS Sensor
    • gps.position_mm
    • gps.position_inches
    • gps.heading
  • Pusher Rotation Sensor
    • pusher_rotation.angle
    • pusher_rotation.position
  • AI Vision Sensor
    • ai_vision.object_count
    • ai_vision.height
    • ai_vision.width
    • ai_vision.centerX
    • ai_vision.centerY
    • ai_vision.originX
    • ai_vision.originY
    • ai_vision.id

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:
optical.is_near_object()

Thông số

Sự miêu tả

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

def main():
    # Move the preloaded Block to the top of the Conveyor
    conveyor_motor.spin(FORWARD)
    while not optical.is_near_object():
        wait(2, MSEC)
    conveyor_motor.stop()

# VR threads — Do not delete
vr_thread(main)

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:
optical.color()

Thông số

Sự miêu tả

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

def main():
    # Pick up and move a Blue Block to the top of the Conveyor
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 360, MM)
    conveyor_motor.spin(FORWARD)
    while not optical.color() == BLUE:
        wait(2, MSEC)
    conveyor_motor.stop()

# VR threads — Do not delete
vr_thread(main)

độ 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:
optical.brightness()

Thông số

Sự miêu tả

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

def main():
    # Move the preloaded Block to the top of the Conveyor
    conveyor_motor.spin(FORWARD)
    while not 0 < optical.brightness():
        wait(2, MSEC)
    conveyor_motor.stop()

# VR threads — Do not delete
vr_thread(main)

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:
optical.hue()

Thông số

Sự miêu tả

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

def main():
    # Pick up and move a Blue Block to the top of the Conveyor
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 360, MM)
    conveyor_motor.spin(FORWARD)
    while not 220 < optical.hue() < 260:
        wait(2, MSEC)
    conveyor_motor.stop()

# VR threads — Do not delete
vr_thread(main)

đố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:
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.

def ready_block():
  # Stop the conveyor when Block is at the Sensor
  conveyor_motor.stop()

def main():
  # Move the preloaded Block near the top of the Conveyor
  conveyor_motor.spin(FORWARD)
  optical.object_detected(ready_block)

# VR threads — Do not delete
vr_thread(main)

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:
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.

def ready_block():
  # Stop the conveyor when Block is at the top
  conveyor_motor.stop()

def main():
  # Move the preloaded Block to the top of the Conveyor
  conveyor_motor.spin(FORWARD)
  optical.object_lost(ready_block)

# VR threads — Do not delete
vr_thread(main)

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

def main():
    # Pick up a second Block
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive(FORWARD)
    while not gps.x_position(MM) > -795:
        wait(2, MSEC)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

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

def main():
    # Pick up a second Block
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive(FORWARD)
    while not -450 > gps.y_position(MM):
        wait(2, MSEC)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

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ố.

def main():
    # Score the preloaded Block into a Center Goal
    drivetrain.set_turn_velocity(30, PERCENT)
    drivetrain.turn(LEFT)
    while not 40 > gps.heading():
        wait(2, MSEC)
    drivetrain.drive_for(FORWARD, 1000, MM)
    drivetrain.turn(RIGHT)
    while not gps.heading() > 310:
        wait(2, MSEC)
    drivetrain.drive_for(REVERSE, 400, MM)
    conveyor_motor.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)