Màn hình#
Giới thiệu#
Các phương thức điều khiển màn hình cho phép xác định cách bộ điều khiển máy bay không người lái VEX AIR hiển thị văn bản, số, đồ họa và hình ảnh trên màn hình, cũng như cách nó phản hồi các thao tác nhấn trên màn hình.
Dưới đây là danh sách các phương pháp có sẵn:
In bằng con trỏ – Hiển thị văn bản và quản lý con trỏ in.
print– In văn bản, số hoặc giá trị biến tại vị trí con trỏ hiện tại.set_cursor– Di chuyển con trỏ đến một hàng và cột cụ thể.next_row– Di chuyển con trỏ đến cột 1 của hàng tiếp theo.clear_row– Xóa một hàng văn bản.get_row– Trả về hàng mà văn bản sẽ được in.get_column– Trả về cột mà văn bản sẽ được in.
In theo tọa độ XY – In văn bản theo tọa độ pixel.
print_at– In văn bản, số hoặc giá trị biến tại tọa độ x và y cụ thể.set_origin– Đặt gốc tọa độ được sử dụng để in và vẽ dựa trên tọa độ.
Bộ điều chỉnh – Thay đổi cài đặt màn hình, màu sắc và hành vi vẽ.
clear_screen– Xóa tất cả các bản vẽ, văn bản và hình ảnh khỏi màn hình điều khiển.wait_for_render– Chuyển chế độ vẽ màn hình sang chế độ hiển thị sau.set_font– Đặt phông chữ cho văn bản in.set_pen_width– Đặt độ dày của các đường vẽ và đường viền hình dạng.set_pen_color– Đặt màu cho văn bản, pixel, đường kẻ và đường viền hình dạng.set_text_fill_color– Đặt màu nền phía sau văn bản in.set_fill_color– Đặt màu tô cho các hình vẽ.
Vẽ – Thêm đồ họa và hình ảnh vào màn hình.
draw_pixel– Vẽ một pixel tại vị trí x và y cụ thể.draw_line– Vẽ một đường thẳng giữa hai điểm.draw_rectangle– Vẽ một hình chữ nhật bằng bút hiện tại và màu tô.draw_circle– Vẽ một hình tròn bằng bút hiện tại và màu tô.show_file– Vẽ một hình ảnh đã tải lên.
Cảm ứng – Phát hiện và phản hồi các thao tác chạm trên màn hình.
pressing– Trả về trạng thái hiện tại của màn hình đang được nhấn.x_position– Trả về tọa độ x của lần nhấn màn hình cuối cùng.y_position– Trả về tọa độ y của lần nhấn màn hình cuối cùng.
Hàm gọi lại – Thực thi các hàm khi nhấn hoặc nhả màn hình.
In bằng con trỏ#
print#
print in văn bản, số hoặc giá trị biến trên màn hình điều khiển tại vị trí con trỏ và phông chữ.
Usage:
controller.screen.print(text)
Thông số |
Sự miêu tả |
|---|---|
|
Văn bản, số hoặc giá trị biến cần in trên màn hình. |
|
Tùy chọn. Dấu phân cách giữa các đoạn văn bản được in. Theo mặc định, |
|
Tùy chọn. Chuỗi được thêm vào sau đoạn văn bản được in cuối cùng. Theo mặc định, |
|
Tùy chọn. Số chữ số thập phân mà một số thực sẽ in ra dưới dạng số nguyên. Theo mặc định, độ chính xác |
# Display a message at the starting cursor position.
controller.screen.print("Time to fly!")

# Display the first 2 decimals of pi
controller.screen.print(3.1415, precision = 2)

set_cursor#
set_cursor di chuyển con trỏ đến một hàng và cột cụ thể trên màn hình điều khiển. Lệnh print tiếp theo sẽ bắt đầu in tại vị trí đó. Khoảng cách hàng và cột sẽ tính đến phông chữ đã chọn. Với phông chữ đơn cách mặc định cỡ trung bình, màn hình có thể hiển thị rõ ràng tối đa 18 hàng và 53 cột. Văn bản đặt ngoài phạm vi này có thể bị cắt hoặc khó đọc hơn.
Usage:
controller.screen.set_cursor(row, col)
Thông số |
Sự miêu tả |
|---|---|
|
Hàng cần di chuyển con trỏ đến. |
|
Cột cần di chuyển con trỏ đến. |
# Display text starting at Row 7 Column 25.
controller.screen.set_cursor(row=7, col=25)
controller.screen.print("Row 7, Column 25")

next_row#
Lệnh next_row di chuyển con trỏ đến cột 1 trên hàng tiếp theo trên màn hình điều khiển.
Usage:
controller.screen.next_row()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# Display two lines of text.
controller.screen.print("Line 1")
controller.screen.next_row()
controller.screen.print("Line 2")

clear_row#
clear_row xóa một hàng văn bản trên màn hình điều khiển.
Usage:
controller.screen.clear_row(row, color)
Tham số |
Sự miêu tả |
|---|---|
|
Tùy chọn. Hàng cần xóa. Mặc định là hàng hiện tại của con trỏ. |
|
Optional. The color to apply to the cleared row. If a color is not specified, the
|
# Clear only the second row of text
controller.screen.print("This text stays")
controller.screen.next_row()
controller.screen.print("This text disappears")
wait(3, SECONDS)
controller.screen.clear_row(2)
# Turn the 5th row green.
controller.screen.clear_row(5, GREEN)
get_row#
get_row trả về hàng hiện tại nơi văn bản sẽ được in, dưới dạng số nguyên.
Usage:
controller.screen.get_row()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# Display the cursor's current row.
controller.screen.set_cursor(row=7, col=25)
controller.screen.print(controller.screen.get_row())

get_column#
get_column trả về cột hiện tại nơi văn bản sẽ được in, dưới dạng số nguyên.
Usage:
controller.screen.get_column()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# Display the cursor's current column.
controller.screen.set_cursor(row=7, col=25)
controller.screen.print(controller.screen.get_column())

In XY#
print_at#
print_at in văn bản, số hoặc giá trị biến trên màn hình điều khiển tại vị trí (x, y) cụ thể tính bằng pixel, sử dụng font và origin hiện tại. x đặt khoảng cách từ lề trái mà văn bản bắt đầu, và y đặt vị trí đáy của các chữ cái. Phương thức này bỏ qua vị trí con trỏ hiện tại.
Usage:
controller.screen.print_at(text, x, y)
Tham số |
Sự miêu tả |
|---|---|
|
Văn bản, số hoặc giá trị biến cần in trên màn hình. |
|
Vị trí ngang của văn bản, được biểu thị bằng một số nguyên từ 0 đến 640 pixel. 0 là bên trái; 640 là bên phải. |
|
Vị trí thẳng đứng của văn bản, được biểu thị bằng một số nguyên từ 0 đến 480 pixel. 0 là vị trí trên cùng; 480 là vị trí dưới cùng. |
# Display a message in the middle of the screen.
controller.screen.print_at("Hello, drone!", x=320, y=240)

set_origin#
set_origin thiết lập gốc tọa độ (0, 0) được sử dụng để vẽ và in dựa trên tọa độ trên màn hình điều khiển. Theo mặc định, gốc tọa độ là góc trên bên trái của màn hình. Phương thức này có thể đặt lại gốc tọa độ thành một vị trí tọa độ (x, y) khác trên màn hình.
Usage:
controller.screen.set_origin(x, y)
Tham số |
Sự miêu tả |
|---|---|
|
Tọa độ x mới cần thiết lập làm gốc tọa độ được biểu diễn dưới dạng số nguyên từ 0 đến 640. |
|
Tọa độ y mới cần thiết lập làm gốc tọa độ được biểu diễn dưới dạng số nguyên từ 0 đến 480. |
# Set the origin to the center of the screen.
controller.screen.set_origin(x=320, y=240)
# Draw a rectangle at the new origin.
controller.screen.draw_rectangle(x=0, y=0, width=80, height=40)

Biến đổi#
clear_screen#
clear_screen xóa tất cả hình vẽ, văn bản và hình ảnh khỏi màn hình điều khiển.
Usage:
controller.screen.clear_screen(row, col, color)
Tham số |
Sự miêu tả |
|---|---|
|
Tùy chọn. Hàng mà con trỏ sẽ di chuyển đến sau khi xóa màn hình. Mặc định là 1. |
|
Tùy chọn. Cột mà con trỏ sẽ di chuyển đến sau khi xóa màn hình. Mặc định là 1. |
|
Tùy chọn. Đặt màu màn hình. Nếu
|
# Draw a circle, and clear it after 2 seconds.
controller.screen.draw_circle(x=320, y=240, radius=80)
wait(2, SECONDS)
controller.screen.clear_screen()
# Print two messages in the same spot
controller.screen.print("Hello!")
wait(3,SECONDS)
controller.screen.clear_screen(row=1, col=1)
controller.screen.print("Goodbye!")
# Set the background color of the screen to red.
controller.screen.clear_screen(color=RED)
wait_for_render#
wait_for_render chuyển chế độ vẽ màn hình sang chế độ hiển thị sau. Sau khi phương thức này chạy, các lệnh màn hình tiếp theo sẽ không xuất hiện trên màn hình điều khiển cho đến khi phương thức wait_for_render tiếp theo chạy.
Lưu ý: Hãy sử dụng chức năng này trước khi vẽ một nhóm văn bản, hình dạng hoặc hình ảnh, sau đó sử dụng lại chức năng này để hiển thị toàn bộ bản cập nhật cùng một lúc.
Usage:
controller.screen.wait_for_render()
Tham số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# Display text and images when button 7 is pressed.
controller.screen.wait_for_render()
controller.screen.print("Screen rendered!")
controller.screen.draw_circle(x=320, y=240, radius=80)
while not controller.button7.pressing():
wait(5, MSEC)
controller.screen.wait_for_render()

set_font#
set_font thiết lập phông chữ được sử dụng để hiển thị văn bản trên màn hình điều khiển. Phông chữ này sẽ được áp dụng cho tất cả văn bản được in sau khi phương thức này chạy. Phông chữ mặc định khi bắt đầu dự án là MONO20.
Usage:
controller.screen.set_font(fontname)
Tham số |
Sự miêu tả |
|---|---|
|
Sets the font to one of the following:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
# Display text using a larger font.
controller.screen.set_font(MONO40)
controller.screen.print("VEX")

set_pen_width#
set_pen_width thiết lập độ dày của các đường vẽ và đường viền hình dạng.
Usage:
controller.screen.set_pen_width(width)
Tham số |
Sự miêu tả |
|---|---|
|
Độ rộng của bút, được biểu thị bằng một số nguyên tính bằng pixel. |
# Draw a rectangle with a pen width of 10.
controller.screen.set_pen_width(10)
controller.screen.draw_rectangle(x=200, y=200, width=200, height=80)

set_pen_color#
set_pen_color thiết lập màu sắc cho văn bản, pixel, đường kẻ và đường viền hình dạng.
Usage:
controller.screen.set_pen_color(color)
Tham số |
Sự miêu tả |
|---|---|
|
Tùy chọn. Đặt màu bút và màu chữ. Các tùy chọn bao gồm:
|
# Draw a rectangle with an orange outline.
controller.screen.set_pen_color(ORANGE)
controller.screen.draw_rectangle(x=200, y=150, width=240, height=150)
controller.screen.set_pen_color(WHITE)
controller.screen.print_at("VEXcode AIR", x=250, y=220)

set_text_fill_color#
set_text_fill_color thiết lập màu nền cho văn bản in. Màu nền mặc định là trong suốt.
Usage:
controller.screen.set_text_fill_color(color)
Tham số |
Sự miêu tả |
|---|---|
|
Tùy chọn. Đặt màu nền cho văn bản. Các tùy chọn bao gồm:
|
# Display two colors behind text
controller.screen.set_text_fill_color(RED)
controller.screen.print("Red")
controller.screen.next_row()
controller.screen.set_text_fill_color(BLUE)
controller.screen.print("Blue")

set_fill_color#
set_fill_color thiết lập màu tô được sử dụng khi vẽ các hình dạng. Màu tô mặc định là màu đen.
Usage:
controller.screen.set_fill_color(color)
Tham số |
Sự miêu tả |
|---|---|
|
Optional. Sets the fill color. Options include:
|
# Draw an orange-filled rectangle with text on top
controller.screen.set_fill_color(ORANGE)
controller.screen.draw_rectangle(x=200, y=150, width=250, height=150)
controller.screen.print_at("VEXcode AIR", x=250, y=220)

Vẽ tranh#
draw_pixel#
draw_pixel draws one pixel at the selected x and y coordinate using the current pen color.
Usage:
controller.screen.draw_pixel(x, y)
Tham số |
Sự miêu tả |
|---|---|
|
Tọa độ x nơi điểm ảnh sẽ được vẽ, được biểu thị bằng một số nguyên từ 0 đến 640. |
|
Tọa độ y nơi điểm ảnh sẽ được vẽ, được biểu thị bằng một số nguyên từ 0 đến 480. |
# Draw five pixels in a diagonal.
controller.screen.draw_pixel(x=360, y=200)
controller.screen.draw_pixel(x=340, y=220)
controller.screen.draw_pixel(x=320, y=240)
controller.screen.draw_pixel(x=300, y=260)
controller.screen.draw_pixel(x=280, y=280)
![]()
draw_line#
draw_line vẽ một đường thẳng từ tọa độ màn hình đầu tiên (x1, y1) đến tọa độ màn hình thứ hai (x2, y2) bằng cách sử dụng độ rộng bút và màu bút hiện tại.
Tọa độ x và y sử dụng gốc tọa độ mặc định là (0, 0) trừ khi một gốc tọa độ khác đã được thiết lập bằng cách sử dụng set_origin.
Usage:
controller.screen.draw_line(x1, y1, x2, y2)
Tham số |
Sự miêu tả |
|---|---|
|
Tọa độ x ban đầu của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 640. |
|
Tọa độ y ban đầu của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 480. |
|
Tọa độ x cuối cùng của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 640. |
|
Tọa độ y cuối cùng của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 480. |
# Make an X across the screen.
controller.screen.draw_line(x1=0, y1=0, x2=640, y2=480)
controller.screen.set_pen_color(CYAN)
controller.screen.draw_line(x1=0, y1=480, x2=640, y2=0)

draw_rectangle#
draw_rectangle vẽ một hình chữ nhật bằng cách sử dụng độ rộng bút, màu bút và màu tô hiện tại, trừ khi tham số color tùy chọn được sử dụng.
Tọa độ x và y sử dụng gốc tọa độ mặc định là (0, 0) trừ khi một gốc tọa độ khác đã được thiết lập bằng cách sử dụng set_origin.
Usage:
controller.screen.draw_rectangle(x, y, width, height, color)
Tham số |
Sự miêu tả |
|---|---|
|
Tọa độ x của góc trên bên trái của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 640. |
|
Tọa độ y của góc trên bên trái của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 480. |
|
Chiều rộng của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 640. |
|
Chiều cao của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 480. |
|
Tùy chọn. Đặt màu tô của hình chữ nhật. Các tùy chọn bao gồm:
|
# Draw two rectangles on the screen.
controller.screen.draw_rectangle(x=0, y=0, width=620, height=460)
controller.screen.draw_rectangle(x=200, y=180, width=200, height=100, color=GREEN)

draw_circle#
draw_circle vẽ một hình tròn bằng cách sử dụng độ rộng bút, màu bút và màu tô hiện tại, trừ khi tham số color tùy chọn được sử dụng.
Tọa độ x và y sử dụng gốc tọa độ mặc định là (0, 0) trừ khi một gốc tọa độ khác đã được thiết lập bằng cách sử dụng set_origin.
Usage:
controller.screen.draw_circle(x, y, radius, color)
Tham số |
Sự miêu tả |
|---|---|
|
Tọa độ x của tâm đường tròn, được biểu thị bằng một số nguyên từ 0 đến 640. |
|
Tọa độ y của tâm đường tròn, được biểu thị bằng một số nguyên từ 0 đến 480. |
|
Bán kính của hình tròn, được biểu thị bằng một số nguyên từ 0 đến 480 pixel. |
|
Tùy chọn. Đặt màu nền của hình tròn. Các tùy chọn bao gồm:
|
# Draw one green circle on the screen.
controller.screen.set_fill_color(GREEN)
controller.screen.draw_circle(x=320, y=240, radius=200, color=GREEN)

show_file#
Lệnh show_file vẽ một hình ảnh tùy chỉnh được tải lên trên màn hình điều khiển tại vị trí x và y, với các tùy chọn thu phóng, xoay và độ trong suốt alpha.
Usage:
controller.screen.show_file(file, x, y, scale_width, scale_height, rotation, use_alpha)
Tham số |
Sự miêu tả |
|---|---|
|
Ảnh do người dùng tải lên sẽ được sử dụng. Các tùy chọn sẽ thay đổi nếu tên ảnh được chỉnh sửa trong Bảng điều khiển. |
|
Độ lệch ngang của hình ảnh, được biểu thị bằng một số nguyên tính bằng pixel. Giá trị dương di chuyển hình ảnh sang phải; giá trị âm di chuyển hình ảnh sang trái. |
|
Độ lệch dọc của hình ảnh, được biểu thị bằng một số nguyên tính bằng pixel. Giá trị dương làm dịch chuyển hình ảnh xuống dưới; giá trị âm làm dịch chuyển hình ảnh lên trên. |
|
Tùy chọn. Chiều rộng của hình ảnh được thu nhỏ, được cung cấp dưới dạng một số nguyên tính bằng pixel. |
|
Tùy chọn. Chiều cao của hình ảnh được thu phóng, được cung cấp dưới dạng một số nguyên tính bằng pixel. |
|
Tùy chọn. Số độ xoay ảnh, được biểu thị bằng số nguyên từ 0 đến 359. |
|
Tùy chọn. Có sử dụng kênh alpha của ảnh để tạo độ trong suốt hay không. Các tùy chọn bao gồm: |
# Display uploaded Image 1 in the top left corner.
controller.screen.show_file(IMAGE1, x=0, y=0)
# Display uploaded Image 1 scaled to the full screen.
controller.screen.show_file(IMAGE1, x=65, y=0, scale_width=640, scale_height=480)
# Display uploaded Image 1 with rotation of 180 degrees.
controller.screen.show_file(IMAGE1, x=-65, y=0, rotation=180)
# Upload an image with a transparent background.
# Display uploaded Image 1 with alpha channel enabled.
controller.screen.show_file(IMAGE1, x=0, y=0, use_alpha=True)
Chạm#
pressing#
Việc nhấn phím pressing sẽ trả về giá trị Boolean cho biết màn hình của robot hiện có đang được nhấn hay không.
True– Màn hình đang được nhấn.False– Màn hình không được nhấn.
Usage:
controller.screen.pressing()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# Play a sound when the screen is pressed.
while True:
if controller.screen.pressing():
controller.sound.play_note("C5", 500)
wait(5, MSEC)
# Display different messages after the screen is pressed
while not controller.screen.pressing():
wait(5, MSEC)
controller.screen.print("First message!")
controller.screen.next_row()
# Lift finger to press the screen again
while controller.screen.pressing():
wait(5, MSEC)
while not controller.screen.pressing():
wait(5, MSEC)
controller.screen.print("Second message!")
controller.screen.next_row()
x_position#
x_position trả về tọa độ x tính bằng pixel tại vị trí màn hình được nhấn lần cuối, dưới dạng số nguyên từ 0 (trái) đến 640 (phải).

Usage:
controller.screen.x_position()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# Play a high or low note based on where screen is pressed.
while True:
if controller.screen.pressing():
if controller.screen.x_position() > 320:
controller.sound.play_note("C6", 500)
else:
controller.sound.play_note("C4", 500)
wait(5, MSEC)
y_position#
y_position trả về tọa độ y tính bằng pixel tại vị trí màn hình được nhấn lần cuối, dưới dạng số nguyên từ 0 (trên cùng) đến 480 (dưới cùng).

Usage:
controller.screen.y_position()
# Play a high or low note based on where screen is pressed.
while True:
if controller.screen.pressing():
if controller.screen.y_position() > 240:
controller.sound.play_note("C6", 500)
else:
controller.sound.play_note("C4", 500)
wait(5, MSEC)
Cuộc gọi lại#
pressed#
pressed đăng ký một hàm sẽ được gọi khi màn hình điều khiển được nhấn.
Usage:
controller.screen.pressed(callback, arg)
Thông số |
Sự miêu tả |
|---|---|
|
Một hàm được định nghĩa trước để thực thi khi màn hình điều khiển được nhấn. |
|
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. |
# Play a sound when the screen is pressed.
def play_sound():
controller.sound.play_note("C5", 500)
controller.screen.pressed(play_sound)
released#
released đăng ký một hàm sẽ được gọi khi màn hình điều khiển được nhả ra.
Usage:
controller.screen.released(callback, arg)
Thông số |
Sự miêu tả |
|---|---|
|
Một hàm được định nghĩa trước để thực thi khi màn hình điều khiển được thả ra. |
|
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. |
# Play a sound when the screen is pressed.
def play_sound():
controller.sound.play_note("C5", 500)
controller.screen.released(play_sound)













