Python dành riêng cho robot#
Giới thiệu#
Robot anh hùng Flex bao gồm một động cơ gắp, một động cơ tay, một cảm biến thị giác AI, một cảm biến khoảng cách và một cảm biến hệ thống định vị trong game (GPS).
Tất cả các phương thức VR tiêu chuẩn của VEXcode đều có sẵn để sử dụng trong V5 26-27 Override 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– ID phân loại của đối tượng được phát hiện.
Bảng điều khiển – In ra bảng điều khiển và theo dõi các giá trị.
In
brain.screen.print— Hiển thị văn bản, số hoặc giá trị biến trong Console.brain.screen.next_row— Di chuyển con trỏ Console đến đầu hàng tiếp theo.brain.screen.clear_screen— Xóa tất cả các hàng khỏi Bảng điều khiển.
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.
Khoảng cách
found_object– Trả về liệu Cảm biến khoảng cách có phát hiện vật thể trong phạm vi hay không.object_distance– Trả về khoảng cách giữa Cảm biến khoảng cách và vật thể được phát hiện gần nhất.
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ảm biến GPS.
Các ví dụ trên trang này sử dụng Vị trí Bắt đầu C từ danh sách kiểm tra Trước trận đấu của Sân chơi.
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ả |
|---|---|
|
Hướng di chuyển của robot: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
wait(0.5, SECONDS)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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ả |
|---|---|
|
Hướng di chuyển của robot: |
|
Quãng đường robot di chuyển. Giá trị này có thể là số nguyên |
|
Tùy chọn. Đơn vị khoảng cách: |
|
Tùy chọn. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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ả |
|---|---|
|
Hướng quay của robot: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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ả |
|---|---|
|
Hướng quay của robot: |
|
Số độ mà robot quay. Giá trị này có thể là số nguyên |
|
Tùy chọn. Đơn vị góc: |
|
Tùy chọn. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, 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 ban đầu là 0 độ.
Usage:
drivetrain.turn_to_heading(heading, units, wait)
Thông số |
Sự miêu tả |
|---|---|
|
Hướng mà robot nên quay, từ -359 đến 359 độ. |
|
Tùy chọn. Đơn vị góc: |
|
Tùy chọn. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_heading(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, 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 xoay, được đo bằng độ. Khi bắt đầu một dự án, giá trị góc quay được đặt là 0 độ. Quay sang phải sẽ làm tăng góc quay, và quay sang trái sẽ làm giảm góc quay.
Ví dụ, nếu robot bắt đầu ở 0 độ và quay một góc 720 độ, nó sẽ quay sang phải hai lần. Nếu sau đó nó quay một góc 360 độ, nó sẽ quay sang trái một lần, vì 360 nhỏ hơn 720.
Usage:
drivetrain.turn_to_rotation(rotation, units, wait)
Thông số |
Sự miêu tả |
|---|---|
|
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 |
|
Tùy chọn. Đơn vị góc: |
|
Tùy chọn. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_rotation(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, 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():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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ả |
|---|---|
|
Giá trị hướng, tính bằng độ, cần thiết lập cho robot. |
|
Tùy chọn. Đơn vị góc: |
def main():
# Make facing the Neutral Goal the new heading
drivetrain.set_heading(110, 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 độ. Lệnh set_rotation thay đổi góc quay hiện tại của robot thành một giá trị mới.
Usage:
drivetrain.set_rotation(rotation, units)
Thông số |
Sự miêu tả |
|---|---|
|
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 |
|
Tùy chọn. Đơn vị góc: |
def main():
# Make facing the Neutral Goal the new rotation
drivetrain.set_rotation(110, 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 số giây mà 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(time, units)
Thông số |
Sự miêu tả |
|---|---|
|
The number of seconds the robot can try to finish a movement. This can be a positive |
|
Tùy chọn. Đơn vị thời gian: |
def main():
# Turn to face the Neutral Goal
drivetrain.set_timeout(0.8, SECONDS)
drivetrain.turn_for(LEFT, 180, DEGREES)
# 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ả |
|---|---|
|
Tốc độ lái xe từ 0% đến 100%. Giá trị này có thể là số nguyên |
|
Tùy chọn. Đơn vị vận tốc: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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ả |
|---|---|
|
Tốc độ quay từ 0% đến 100%. Giá trị này có thể là số nguyên |
|
Tùy chọn. Đơn vị vận tốc: |
def main():
# Turn to face the Neutral Goal faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(LEFT, 110, 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ả |
|---|---|
|
Tùy chọn. Đơn vị hướng: |
def main():
# Turn to the Goal, then show heading
drivetrain.turn_for(LEFT, 110, 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ả |
|---|---|
|
Tùy chọn. Đơn vị xoay: |
def main():
# Spin to find a Pin, then show rotation
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ố. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait(0.5, SECONDS)
while not drivetrain.is_done():
wait(5, MSEC)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
đ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ố. |
def main():
# Raise the Arm once stopped near the Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait (0.5, SEC)
while drivetrain.is_moving():
wait(5, MSEC)
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
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ả |
|---|---|
|
Tùy chọn. Đơn vị vận tốc: |
def main():
# Show speed while driving to the Goal
drivetrain.drive_for(FORWARD, 150, MM)
brain.screen.print("Velocity: ")
brain.screen.print(drivetrain.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Cử động#
Flex sử dụng động cơ tay để nâng và hạ tay, và động cơ càng để mở và đóng càng.
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 Flex.
Hành động#
quay#
Lệnh spin cho phép động cơ quay liên tục theo một trong hai hướng. Động cơ sẽ tiếp tục quay cho đến khi nhận được 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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
|
Hướng quay của động cơ:
|
def main():
# Raise the Arm before driving toward a Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# 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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
|
Hướng quay của động cơ:
|
|
Quãng đường quay của động cơ. |
|
Tùy chọn. Đơn vị khoảng cách: |
|
Tùy chọn.
|
def main():
# Raise the Arm to carry the Pin to the Goal
arm_motor.spin_for(FORWARD, 800, DEGREES)
# 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ánh tay được đặt thành 0 độ. Động cơ Móng vuốt là ngoại lệ — nó bắt đầu ở 467 độ (đóng hoàn toàn). Vị trí của động cơ cũng có thể được đặt bằng phương thức 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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
|
Giá trị vị trí mà động cơ sẽ quay tới. |
|
Tùy chọn. Đơn vị vị trí: |
|
Tùy chọn.
|
def main():
# Raise the Arm, then release the Pin
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
def main():
# Raise the Arm partway to hold the Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
|
Giá trị vị trí cần thiết lập cho động cơ. |
|
Tùy chọn. Đơn vị vị trí: |
def main():
# Reset encoder, raise Arm, place Pin
arm_motor.set_position(0, DEGREES)
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, 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 độ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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
|
Tốc độ quay từ 0% đến 100%. Giá trị này có thể là số nguyên |
|
Đơn vị vận tốc: |
def main():
# Raise the Arm fast to release the Pin
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_for(FORWARD, 800, DEGREES)
claw_motor.spin_for(REVERSE, 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 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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
|
The amount of time the motor can try to finish a movement. This can be a positive |
|
Đơn vị thời gian: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.set_timeout(1, SECONDS)
arm_motor.spin_for(FORWARD, 1800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
def main():
# Raise the Arm while driving to the Goal
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while not arm_motor.is_done():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
def main():
# Raise the Arm while driving to the Goal, then release the Pin
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while arm_motor.is_spinning():
drivetrain.drive_for(FORWARD, 25, MM)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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ơ tay cần được đặt ở 0 độ. Động cơ càng gắp là ngoại lệ — nó bắt đầu ở 467 độ (hoàn toàn đóng). Nếu động cơ quay một vòng về phía trước, vị trí sẽ tăng lên. Nếu động cơ quay theo hướng ngược lại, vị trí sẽ giảm xuống.
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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
|
Bộ phận này sẽ đưa động cơ trở lại vị trí ban đầu: |
def main():
# Raise the Arm, then release the Pin
while arm_motor.position(DEGREES) < 800:
arm_motor.spin(FORWARD)
wait(2, MSEC)
arm_motor.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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 |
|---|---|
|
|
|
|
Thông số |
Sự miêu tả |
|---|---|
|
Đơn vị vận tốc cần trả về: |
def main():
# Show Arm Motor velocity while raising
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.2, SECONDS)
brain.screen.print(arm_motor.velocity(PERCENT))
# 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ả |
|---|---|
|
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à:
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn to face the Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn(LEFT)
elif ai_objects[0].centerX > 180:
drivetrain.turn(RIGHT)
else:
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():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].width > 140:
drivetrain.stop()
break
else:
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():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].height > 200:
drivetrain.stop()
break
else:
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():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# 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():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerY > 230:
drivetrain.stop()
break
else:
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():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originX < 100:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# 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():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originY > 140:
drivetrain.stop()
break
else:
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ý |
|---|---|---|
Ghim ĐỏXanh |
0 |
|
BlueYellowPin |
1 |
|
Ghim ĐỏVàng |
2 |
|
YellowPin |
3 |
|
Tách |
4 |
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Display the ID of the next closest object
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
brain.screen.print(ai_objects[0].id)
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ả |
|---|---|
|
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)
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)
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ả |
|---|---|
|
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 number of loops
global loops
monitor_variable("loops")
# Turn in a full circle 3 times
for loops in range(12):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# 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ả |
|---|---|
|
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:
|
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#
Khoảng cách#
đối tượng được tìm thấy#
found_object trả về giá trị cho biết Cảm biến khoảng cách hiện có phát hiện vật thể nào trong phạm vi 2000mm hay không.
True— Cảm biến khoảng cách phát hiện vật thể.False— Cảm biến khoảng cách không phát hiện vật thể.
Usage:
distance.found_object()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
def main():
# Turn until something is detected, then release the Pin
drivetrain.turn(RIGHT)
while True:
wait(5, MSEC)
if distance.found_object():
drivetrain.stop()
break
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
khoảng cách_đối_thể#
object_distance trả về khoảng cách giữa Cảm biến khoảng cách và vật thể được phát hiện gần nhất.
Usage:
distance.object_distance(units)
Thông số |
Sự miêu tả |
|---|---|
|
Đơn vị khoảng cách: |
def main():
# Drive until 200 mm from the Goal, then release the Pin
while distance.object_distance(MM) > 200:
wait(5, MSEC)
drivetrain.drive(FORWARD)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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ù: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.x_position(MM) > -1370:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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ù: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.y_position(MM) < -450:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# 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():
# Raise the Arm, drive to the Goal, release the Pin
monitor_sensor("gps.heading")
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# Turn left to face the Neutral Goal
drivetrain.set_turn_velocity(30, PERCENT)
drivetrain.turn(LEFT)
while not gps.heading() < 18:
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)