Công tắc#

Giới thiệu#

Khối chuyển đổi giúp sinh viên chuyển đổi từ lập trình dựa trên khối sang lập trình dựa trên văn bản. Với khối chuyển đổi, sinh viên có thể nhập mã Python trực tiếp vào dự án khối — viết các lệnh, điều kiện, giá trị hoặc định nghĩa hàm — trong khi vẫn xây dựng phần còn lại của dự án bằng các khối. Các khối riêng lẻ cũng có thể được chuyển đổi thành các lệnh Python tương đương.

Để tìm hiểu cách gõ các lệnh, phương thức và toán tử Python, hãy xem VEX CTE Python API.

Vì các khối Switch chứa mã Python, nên chính tả, dấu câu và thụt lề phải chính xác thì dự án mới chạy đúng như mong đợi.

Dưới đây là danh sách tất cả các khối Switch:

Khối chuyển đổi — Thêm mã Python vào dự án Blocks.

  • Ngăn xếp — Cung cấp không gian để nhập các lệnh Python chạy tuần tự với các khối ngăn xếp khác.

  • Khối C — Cung cấp không gian để nhập mã điều khiển Python, chẳng hạn như câu lệnh if, while, hoặc for.

  • C Expandable — Cung cấp không gian để nhập mã điều khiển Python với nhiều nhánh, chẳng hạn như if, elif, hoặc else.

  • Boolean — Cung cấp không gian để nhập mã Python trả về True hoặc False.

  • Reporter — Cung cấp không gian để nhập mã Python trả về một giá trị.

  • Mũ — Cung cấp không gian để định nghĩa một hàm Python.

Ngăn xếp#

Khối Stack cung cấp không gian để nhập các lệnh Python chạy tuần tự với các khối ngăn xếp khác.

Khối xếp chồng#
[] :: custom-switch

Khối Stack có thể chứa một dòng hoặc nhiều dòng mã Python.

Khi khởi động, nó sử dụng khối Stack để di chuyển Cánh tay 6 trục đến một vị trí.#
khi bắt đầu :: hat events
[Move the 6-Axis Arm to a standard position at the start of the project.]
[arm.move_to(120, 120, 75, False)] :: custom-switch

Khối C#

Khối C cung cấp không gian để nhập mã điều khiển Python, chẳng hạn như các câu lệnh if, whilehoặc for Các khối được đặt bên trong khối C sẽ chạy như một phần của cấu trúc điều khiển Python đó.

Khối C#
if [] :: custom-switch
fin

Mã điều khiển Python có thể được sử dụng trong Khối C bao gồm:

Khi khởi động, chương trình sử dụng khối C để kiểm tra xem cánh tay robot 6 trục có thể đạt đến vị trí mong muốn hay không.#
khi bắt đầu :: hat events
[Check if the 6-Axis Arm can move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch
in [The 6-Axis Arm can't move to this position.] trên bảng điều khiển ◀ và đặt con trỏ xuống hàng tiếp theo
fin

C Có thể mở rộng#

Khối C Expandable cung cấp không gian để nhập mã điều khiển Python với nhiều nhánh, chẳng hạn như if, elif, hoặc elseCó thể thêm các nhánh bổ sung bằng cách chọn mũi tên dấu cộng.

Khối C có thể mở rộng#
if [] :: custom-switch-expand
fin

Mã điều khiển Python có thể được sử dụng trong khối C Expandable bao gồm:

Khi khởi động, chương trình sử dụng khối C Expandable để kiểm tra xem cánh tay robot 6 trục có thể đạt đến vị trí mong muốn hay không.#
khi bắt đầu
[Check if the 6-Axis Arm can or can't move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch-expand
in [The 6-Axis Arm can't move to this position.] trên bảng điều khiển ◀ và đặt con trỏ xuống hàng tiếp theo
else [else:] :: custom-switch-expand
in [The 6-Axis Arm can move to this position.] trên bảng điều khiển ◀ và đặt con trỏ xuống hàng tiếp theo
fin

Boolean#

Khối Boolean cung cấp không gian để nhập mã Python trả về True hoặc FalseNó có thể được đặt bên trong các khối có đầu vào hình lục giác.

Khối Boolean#
<[] :: custom-switch>

Một khối Boolean có thể chứa một điều kiện Python.

Khối Boolean với điều kiện Python#
<[bumper_a.is_pressed()] :: custom-switch>

Khối Boolean cũng có thể sử dụng các toán tử logic:

Khối Boolean với toán tử logic Python#
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>

Khối Boolean có thể sử dụng các toán tử so sánh để so sánh các giá trị:

  • Lớn hơn: >

  • Nhỏ hơn: <

  • Tương đương với: ==

  • Các toán tử so sánh khác bao gồm <=, !=, và >=

Khối Boolean với toán tử so sánh Python.#
<[drivetrain.get_heading()> 100] :: custom-switch>
Khi khởi động, chương trình sử dụng khối Boolean để kiểm tra xem cánh tay robot 6 trục có thể đạt đến vị trí mong muốn hay không.#
khi bắt đầu
[Check if the 6-Axis Arm can move to a position.]
nếu <không <[arm.can_arm_reach_to(0, 0, 0)] :: custom-switch>> thì
in [The 6-Axis Arm can't move to this position.] trên bảng điều khiển ◀ và đặt con trỏ xuống hàng tiếp theo
fin

Phóng viên#

Khối Reporter cung cấp không gian để nhập mã Python trả về một giá trị. Nó có thể được đặt bên trong các khối có đầu vào vòng lặp.

Khối phóng viên#
([] :: custom-switch)

Khối Reporter có thể chứa mã Python trả về một giá trị.

Khối báo cáo chứa mã Python trả về một giá trị.#
([arm.get_y()] :: custom-switch)

Các toán tử toán học có thể được sử dụng trong khối Reporter:

  • Phép cộng: +

  • Phép trừ: -

  • Phép chia: /

  • Phép nhân: *

Khối báo cáo với phần bổ sung Python#
([arm.get_y() + 45] :: custom-switch)
Khi khởi động, chương trình sẽ in vị trí y hiện tại trong khi cánh tay robot 6 trục di chuyển.#
khi bắt đầu
[Display the current y-position while the 6-Axis Arm moves.]
di chuyển [cánh tay v] đến vị trí x:(-100) y:(200) z:(100) [mm v] ◀ và không chờ
lặp lại cho đến khi <[cánh tay v] đã xong di chuyển?>
in ([arm.get_y()] :: custom-switch) trên bảng điều khiển ◀ và đặt con trỏ xuống hàng tiếp theo
chờ [0.25] giây
fin

Mũ#

Khối Hat cung cấp không gian để định nghĩa một hàm Python. Các khối được gắn bên dưới Hat sẽ trở thành phần thân của hàm đó.

Khối mũ#
[] :: hat custom-switch

Nhập định nghĩa hàm Python vào khối Hat. Tham số nằm bên trong dấu ngoặc đơn. Nếu hàm không sử dụng tham số, hãy sử dụng dấu ngoặc đơn rỗng.

Khối Hat với định nghĩa hàm Python#
[def function_name(parameter):] :: hat custom-switch
Khi khởi chạy, chương trình sử dụng khối Hat để định nghĩa và gọi một hàm.#
[def increment_y_100():] :: hat custom-switch
[Create a function to increment the 6-Axis Arm.]
tăng vị trí [cánh tay v] theo x:[0] y:[100] z:[0] [mm v] ▶

khi bắt đầu :: hat events
[increment_y_100()] :: custom-switch