Pantalla#

Introducción#

La pantalla del robot de codificación VEX AIM ofrece métodos para mostrar texto, gestionar el cursor, dibujar formas y gestionar interacciones táctiles. A continuación, se muestra una lista de todos los métodos disponibles:

Impresión del cursor: muestra el texto utilizando un sistema de filas y columnas.

  • imprimir – Imprime texto en la posición actual del cursor.

  • set_cursor – Establece el cursor en una fila y columna específicas.

  • next_row – Mueve el cursor a la columna 1 de la siguiente fila.

  • clear_row – Borra una fila de texto.

  • get_row – Devuelve la fila actual del cursor.

  • get_column – Devuelve la columna del cursor actual.

Impresión XY: muestra el texto en una coordenada de pantalla específica.

  • print_at – Imprime texto en una ubicación x e y específica.

  • set_origin – Establece un nuevo origen para imprimir y dibujar.

Mutadores: limpia la pantalla o actualiza la configuración visual.

  • clear_screen – Limpia la pantalla de todos los dibujos y textos.

  • set_font – Establece la fuente para el texto impreso.

  • set_pen_width – Establece el grosor de las formas y líneas dibujadas.

  • set_pen_color – Establece el color para los contornos y el texto.

  • set_fill_color – Establece el color de relleno para formas y fondos.

Dibujar – Agregar gráficos e imágenes a la pantalla.

Táctil: detecta y responde a las pulsaciones de la pantalla.

  • x_position – Devuelve la coordenada x donde se presiona la pantalla.

  • y_position – Devuelve la coordenada y donde se presiona la pantalla.

  • pressing – Devuelve si la pantalla está siendo presionada actualmente.

Devolución de llamada: ejecuta funciones cuando se presiona o suelta la pantalla.

  • pressed – Registra una función para llamar cuando se presiona la pantalla.

  • liberado – Registra una función para llamar cuando se libera la pantalla.

Cursor Imprimir#

print#

print muestra texto en la pantalla del robot en la posición del cursor y fuente actuales.

Uso:
robot.screen.print(text)

Parámetros

Descripción

text

El texto, número o valor de variable que se mostrará en la pantalla.

# Display a message at the starting cursor position
robot.screen.print("Hello, Robot!")

Muestra el método robot.screen.print con la palabra "¡Hola Robot!"

set_cursor#

set_cursor coloca el cursor de texto en una fila y columna específicas de la pantalla. El número de filas y columnas que caben depende de la fuente seleccionada. Con la fuente monoespaciada mediana predeterminada, la pantalla puede mostrar con claridad hasta 8 filas y 13 columnas. El texto que se encuentre fuera de este rango puede quedar cortado o ser más difícil de leer.

Las fuentes monoespaciadas tienen caracteres del mismo ancho, lo que garantiza la uniformidad en la colocación del texto. En cambio, las fuentes proporcionales varían en el ancho de los caracteres, por lo que algunas letras ocupan más espacio que otras. Sin embargo, independientemente del tipo utilizado, set_cursor posiciona el cursor según el tamaño de fila y columna, no el estilo de fuente. El tamaño de fuente se puede ajustar con set_font.

Uso:
robot.screen.set_cursor(row, column)

Parámetros

Descripción

row

La fila del cursor.

column

La columna del cursor.

# Display text starting at Row 3 Column 2
robot.screen.set_cursor(3, 2)
robot.screen.print("Row 3, Column 2")

Muestra el método robot.screen.print_at con la Fila 3, Columna 2 impresa en la fila 3 columna 2

next_row#

next_row mueve el cursor a la columna 1 en la siguiente fila de la pantalla del robot.

Uso:
robot.screen.next_row()

Parámetros

Descripción

Este método no tiene parámetros.

# Display two lines of text
robot.screen.print("Line 1")
robot.screen.next_row()
robot.screen.print("Line 2")

Muestra el método robot.screen.next_row con la Línea 1 y la Línea 2 impresas en la pantalla del robot en la línea 1 y la línea 2 respectivamente.

clear_row#

clear_row borra una fila de texto en la pantalla del robot.

Uso:
robot.screen.clear_row(row, color)

Parámetro

Descripción

row

Opcional. La fila que se va a borrar. El valor predeterminado es la fila actual del cursor.

color

Opcional. El color que se aplicará a la fila borrada. Las opciones incluyen:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
También puede especificar un color personalizado.

# Display text on two rows
robot.screen.print("This text stays")
robot.screen.next_row()
robot.screen.print("This text disappears")

# Wait 3 seconds before clearing only the second row
wait(3, SECONDS)
robot.screen.clear_row()

# Turn the 5th row green
robot.screen.clear_row(5, GREEN)

Muestra el método robot.screen.clear_row con una franja verde en la línea 5 desde la pantalla.

get_row#

get_row returns the current row where text will be printed as an integer.

Uso:
robot.screen.get_row()

Parámetros

Descripción

Este método no tiene parámetros.

# Set cursor to (3,2) and print row number
robot.screen.set_cursor(3, 2)
robot.screen.print(robot.screen.get_row())

Muestra el método robot.screen.print_at mostrando la fila número 3 cuando establece cursor en 3,2

get_column#

column devuelve la columna actual donde el texto se imprimirá como un entero.

Uso:
robot.screen.get_column()

Parámetros

Descripción

Este método no tiene parámetros.

# Set cursor to (3,2) and print column number
robot.screen.set_cursor(3, 2)
robot.screen.print(robot.screen.get_column())

Muestra el método robot.screen.print_at mostrando la columna número 2 cuando establece cursor en 3,2

Impresión XY#

set_origin#

set_origin establece el origen (0,0) utilizado para dibujar o imprimir en la pantalla del robot. Por defecto, los métodos de dibujo o impresión consideran la esquina superior izquierda de la pantalla como origen. Este método puede restablecer el origen a una ubicación alternativa de coordenadas (x, y) en la pantalla.

Uso:
robot.screen.set_origin(x, y)

Parámetro

Descripción

x

La nueva coordenada x que se establecerá como origen, expresada como un número entero de 0 a 240.

y

La nueva coordenada y que se establecerá como origen, expresada como un número entero de 0 a 240.

# Set the origin to the center of the screen
robot.screen.set_origin(120, 120)

# Draw a rectangle at the new origin
robot.screen.draw_rectangle(0, 0, 80, 40)

La pantalla del robot muestra un rectángulo blanco con la esquina superior izquierda en el centro.

Mutadores#

clear_screen#

clear_screen borra todos los dibujos y textos de la pantalla del robot. Por defecto, también restablece la posición del cursor a la fila 1, columna 1.

Uso:
robot.screen.clear_screen(row, column, color)

Parámetro

Descripción

row

Opcional. El número de fila al que se moverá el cursor después de borrar. Predeterminado: 1.

column

Opcional. El número de columna al que se moverá el cursor después de borrar. El valor predeterminado es 1.

color

Opcional. Establece el color de la pantalla. Las opciones incluyen:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
También puede especificar un color personalizado.

# Draw a circle, and clear it after 2 seconds
robot.screen.draw_circle(120, 120, 60)
wait(2, SECONDS)
robot.screen.clear_screen()

# Set the background color of the screen to red
robot.screen.clear_screen(RED)

La pantalla del robot está coloreada completamente de rojo.

set_font#

set_font establece la fuente que se usa para mostrar texto en la pantalla del robot. Esta fuente se aplicará a todo el texto impreso con print o print_at. La fuente predeterminada al inicio de un proyecto es MONO24.

Uso:
robot.screen.set_font(fontname)

Parámetro

Descripción

fontname

Establece la fuente en una de las siguientes:

  • MONO12
  • MONO15
  • MONO20
  • MONO24
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
Estas opciones se muestran a continuación.

El robot serigrafió números y letras con fuente MONO 12. Muestra de la A a la Z. En la parte inferior de la pantalla, tiene 26 filas de ancho y 15 filas.
MONO12

El robot serigrafió números y letras con fuente MONO 15. Muestra A-T. En la parte inferior de la pantalla, tiene 20 de ancho y 12 filas.
MONO15

El robot serigrafió números y letras con fuente MONO 20. Muestra A-P. En la parte inferior de la pantalla, tiene 16 filas de ancho y 9 filas.
MONO20

El robot serigrafió números y letras con fuente MONO 24. Muestra A-M. En la parte inferior de la pantalla, tiene 13 filas de ancho y 8 filas.
MONO24

El robot serigrafió números y letras con fuente MONO 30. Muestra A-K. En la parte inferior de la pantalla, tiene 11 de ancho y 6 filas.
MONO30

El robot serigrafió números y letras con fuente MONO 40. Muestra A-K. En la parte inferior de la pantalla, tiene 8 de ancho y 5 filas.
MONO40

El robot serigrafió números y letras con fuente MONO 60. Muestra 1-6. En la parte inferior de la pantalla, son 3 filas.
MONO60

El robot serigrafió números y letras con la fuente PROP 20. Muestra A-S. En la parte inferior de la pantalla, hay 8 filas transversales y 9 filas.
PROP20

El robot serigrafió números y letras con fuente PROP 30. Muestra A-M. En la parte inferior de la pantalla, tiene 15 de ancho y 6 filas.
PROP30

El robot serigrafió números y letras con la fuente PROP 40. Muestra A-M. En la parte inferior de la pantalla, tiene 15 de ancho y 6 filas.
PROP40

El robot serigrafió números y letras con la fuente PROP 60. Muestra 1-7. En la parte inferior de la pantalla, tiene 7 de ancho y 3 filas.
PROP60

# Display text using a larger font
robot.screen.set_font(MONO40)
robot.screen.print("VEX")

La pantalla del robot muestra la palabra VEX en fuente Mono 40 en la esquina superior izquierda.

set_pen_width#

set_pen_width establece el ancho del lápiz utilizado para dibujar líneas y formas.

Uso:
robot.screen.set_pen_width(width)

Parámetro

Descripción

width

El ancho del lápiz, expresado como un número entero en píxeles en un rango de 0 a 32.

# Draw a rectangle with a pen width of 10
robot.screen.set_pen_width(10)
robot.screen.draw_rectangle(50, 50, 130, 60)

La pantalla del robot muestra un rectángulo rojo con un borde delgado dibujado centrado en la parte superior.

set_pen_color#

set_pen_color establece el color del lápiz utilizado para dibujar líneas, formas y texto.

Parámetro

Descripción

color

Opcional. Establece el color del lápiz. Las opciones incluyen:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
También puede especificar un color personalizado.

Uso:
robot.screen.set_pen_color(color)

# Draw a rectangle with a red pen
robot.screen.set_pen_color(RED)
robot.screen.draw_rectangle(50, 50, 130, 60)

La pantalla del robot muestra un rectángulo rojo con un borde delgado dibujado centrado en la parte superior.

set_fill_color#

El método set_fill_color establece el color de relleno utilizado cuando se dibujan formas.

Parámetro

Descripción

color

Opcional. Establece el color de relleno. Las opciones incluyen:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
También puede especificar un color personalizado.

Uso:
robot.screen.set_fill_color(color)

# Draw two orange rectangles
robot.screen.set_fill_color(ORANGE)
robot.screen.draw_rectangle(50, 50, 100, 60)
robot.screen.draw_rectangle(50, 130, 100, 60)

La pantalla del robot muestra dos rectángulos naranjas paralelos con bordes blancos delgados dibujados en la pantalla, ligeramente descentrados hacia la izquierda.

# Display text with a purple background
robot.screen.set_fill_color(PURPLE)
robot.screen.print("Highlight")

La pantalla del robot muestra la palabra Resaltar en texto blanco con resaltado morado alrededor, impreso comenzando en la esquina superior izquierda.

Dibujar#

draw_pixel#

draw_pixel dibuja un píxel en la coordenada de pantalla (x, y) especificada con el color de lápiz actual. Utiliza el color de lápiz actual definido por set_pen_color.

Uso:
robot.screen.draw_pixel(x, y)

Parámetro

Descripción

x

La coordenada x donde se dibujará el píxel, expresada como un número entero de 0 a 240.

y

La coordenada y donde se dibujará el píxel, expresada como un número entero de 0 a 240.

# Draw a pixel at the center of the screen
robot.screen.draw_pixel(120, 120)

La pantalla del robot muestra un solo píxel impreso en blanco en el centro.

draw_line#

draw_line dibuja una línea desde la primera coordenada de pantalla especificada (x1, y1) hasta la segunda coordenada de pantalla especificada (x2, y2). Utiliza el ancho de lápiz actual definido por set_pen_width y el color de lápiz definido por set_pen_color.

Las coordenadas x e y utilizan el origen predeterminado de (0, 0) a menos que se haya establecido un origen diferente utilizando set_origin.

Uso:
robot.screen.draw_line(x1, y1, x2, y2)

Parámetro

Descripción

x1

La coordenada x inicial de la línea, expresada como un número entero entre 0 y 240.

y1

La coordenada y inicial de la línea, expresada como un número entero entre 0 y 240.

x2

La coordenada x final de la línea, expresada como un número entero entre 0 y 240.

y2

La coordenada y final de la línea, expresada como un número entero entre 0 y 240.

# Draw a line from the top left to bottom right of the screen
robot.screen.draw_line(0, 0, 240, 240)

La pantalla del robot muestra una delgada línea diagonal en el centro, desde la esquina superior izquierda hasta la esquina inferior derecha.

draw_rectangle#

draw_rectangle dibuja un rectángulo con su esquina superior izquierda en la coordenada (x, y) especificada y un tamaño determinado por el ancho y la altura dados, medidos en píxeles. El contorno del rectángulo se dibuja con el ancho de lápiz actual definido por set_pen_width y el color de lápiz definido por set_pen_color. El interior se rellena con el color definido por set_fill_color.

Las coordenadas x e y utilizan el origen predeterminado de (0,0) a menos que se haya establecido un origen diferente utilizando set_origin.

Uso:
robot.screen.draw_rectangle(x, y, width, height, color)

Parámetro

Descripción

x

La coordenada x de la esquina superior izquierda del rectángulo, expresada como un número entero de 0 a 240.

y

La coordenada y de la esquina superior izquierda del rectángulo, expresada como un número entero de 0 a 240.

width

El ancho del rectángulo, expresado como un número entero de 0 a 240.

height

La altura del rectángulo, expresada como un número entero de 0 a 240.

color

Opcional. El color de relleno del rectángulo. Las opciones incluyen:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
También puede especificar un color personalizado

# Draw a red rectangle on the screen
robot.screen.draw_rectangle(50, 50, 130, 60, RED)

Robot AIM Dibujar Rectángulo

draw_circle#

draw_circle dibuja un círculo con centro en la coordenada (x, y) especificada y un tamaño determinado por el radio dado, medido en píxeles. El contorno del círculo se dibuja con el ancho de lápiz actual definido por set_pen_width y el color de lápiz definido por set_pen_color. El interior se rellena con el color definido por set_fill_color.

Las coordenadas x e y utilizan el origen predeterminado de (0,0) a menos que se haya establecido un origen diferente utilizando set_origin.

Uso:
robot.screen.draw_circle(x, y, radius, color)

Parámetro

Descripción

x

La coordenada x del centro del círculo, expresada como un número entero de 0 a 240.

y

La coordenada y del centro del círculo, expresada como un número entero de 0 a 240.

radius

El radio del círculo, expresado como un número entero de 0 a 240 píxeles.

color

Opcional. El color de relleno del círculo. Las opciones incluyen:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
También puede especificar un color personalizado.

# Draw a green circle on the screen
robot.screen.draw_circle(120, 120, 40, GREEN)

Robot AIM dibuja un círculo

show_file#

show_file muestra una imagen cargada personalizada en la pantalla del robot, con su posición establecida utilizando los parámetros x, y y center basados en el punto de referencia de la imagen.

Uso:
robot.screen.show_file(file, x, y, center)

Parámetro

Descripción

file

La imagen personalizada que se usará, de IMAGE1 a IMAGE10. El número de imagen coincide con el que se muestra en el panel de control de AIM.

x

El desplazamiento horizontal de la imagen, expresado como un entero en píxeles. Los valores positivos lo desplazan hacia la derecha; los negativos, hacia la izquierda.

y

El desplazamiento vertical de la imagen, expresado como un entero en píxeles. Los valores positivos lo desplazan hacia abajo; los negativos, hacia arriba.

center

Opcional. Si center=True, la imagen se coloca utilizando su centro en la coordenada (120, 120). Por defecto (center=False), se utiliza la esquina superior izquierda de la imagen, que se posiciona con respecto al origen actual (#set_origin).

# Display uploaded Image 1 in the top left corner
robot.screen.show_file(IMAGE1, 0, 0)

# Show the same image on both sides of the screen
# Image size is 120 x 120
robot.screen.show_file(IMAGE1, 65, 0, center=True)
robot.screen.show_file(IMAGE1, -65, 0, center=True)

set_clip_region#

set_clip_region define un área rectangular en la pantalla donde se confinarán todos los dibujos y el texto. El contenido fuera de esta región no se mostrará.

Uso:
robot.screen.set_clip_region(x, y, width, height)

Parámetro

Descripción

x

La coordenada x de la esquina superior izquierda de la región de recorte, expresada como un número entero o flotante de 0 a 240.

y

La coordenada y de la esquina superior izquierda de la región de recorte, expresada como un número entero o flotante de 0 a 240.

width

El ancho de la región de recorte en píxeles, expresado como un número entero o flotante de 0 a 240.

height

La altura de la región de recorte en píxeles, expresada como un entero o un punto flotante entre 0 y 240.

# Restrict text and drawings to a specific region
robot.screen.set_clip_region(0, 0, 120, 120)
robot.screen.draw_rectangle(60, 60, 100, 100, RED)
robot.screen.print_at("Cut off!", x=60, y=60)

La pantalla del robot muestra un cuadrado rojo con las palabras Cortar encima en la esquina superior izquierda, deteniéndose en el centro de la pantalla.

Tocar#

pressing#

pressing devuelve un valor booleano que indica si la pantalla está siendo presionada actualmente.

  • True – Se está presionando la pantalla

  • False – La pantalla no está siendo presionada

Uso:
robot.screen.pressing()

Parámetros

Descripción

Este método no tiene parámetros.

# Turn LEDs white only while the screen is pressed.
while True:
    if robot.screen.pressing():
        robot.led.on(ALL_LEDS, WHITE)
    else: 
        robot.led.off(ALL_LEDS)

    wait(50, MSEC)

x_position#

x_position devuelve la coordenada x donde se presiona la pantalla como un entero de 0 (izquierda) a 240 (derecha).

Uso:
robot.screen.x_position()

Parámetros

Descripción

Este método no tiene parámetros.

# Display the x-coordinate of where
# the screen is pressed
while True:
    if robot.screen.pressing():
        robot.screen.clear_screen()
        robot.screen.print(robot.screen.x_position())
    wait (50, MSEC)

y_position#

y_position devuelve la coordenada y donde se presiona la pantalla como un entero de 0 (arriba) a 240 (abajo).

Uso:
robot.screen.y_position()

# Display the y-coordinate of where
# the screen is pressed
while True:
    if robot.screen.pressing():
        robot.screen.clear_screen()
        robot.screen.print(robot.screen.y_position())
    wait (50, MSEC)

Llamar de vuelta#

pressed#

pressed registra un método que se llamará cuando se presione la pantalla del robot.

Uso:
robot.screen.pressed(callback, arg)

Parámetros

Descripción

callback

Un método que se llamará cuando se presione la pantalla.

arg

Opcional. Una tupla que contiene argumentos para pasar al método de devolución de llamada cuando se llama.

# Set the LEDs to green when the screen is pressed.
def screen_touched():
    robot.led.on(ALL_LEDS, GREEN)

robot.screen.pressed(screen_touched)

released#

released registra un método que se llamará cuando ya no se presione la pantalla.

Uso:
robot.screen.released(callback, arg)

Parámetros

Descripción

callback

Un método que se llamará cuando se suelte la pantalla.

arg

Opcional. Una tupla que contiene argumentos para pasar al método de devolución de llamada cuando se llama.

# Set the LEDs to blue when the screen is released.
def screen_released():
    robot.led.on(ALL_LEDS, BLUE)

robot.screen.released(screen_released)