Editor
El editor es el área en la que escribes con bloques o con código de script el código para controlar un robot.
A continuación se explica cómo programar en el entorno de programación con bloques o con script (Python) y a qué hay que prestar atención.
Editor de bloques
Categorías de bloques

El área en la que los bloques que ofrece RobomationLAB están clasificados por categorías.
Si haces clic en una categoría, ves la paleta de bloques de esa categoría.
Las categorías de bloques que hay de forma predeterminada son:
- Lógica
- Bucles
- Matemáticas
- Texto
- Lista
- Color
- Audio
- Control
- Variables
- Funciones
- Otros
Si además añades al programa un robot o una extensión, en el programa también está disponible su paleta de bloques propia.
⚙️ Nota

Las categorías de bloques añadidos que ya no necesitas las puedes quitar de las categorías de bloques con clic derecho → Eliminar.
Paleta de bloques

El área en la que están reunidos todos los bloques de una categoría.
Los bloques de la paleta de bloques se pueden llevar al área de programación arrastrando y soltando.

⚙️ Nota
Si quieres consultar el uso de un bloque, con clic derecho → Ayuda encuentras para cada bloque una ayuda que explica su uso.
Área de programación

El área en la que montas los bloques que has traído de la paleta de bloques.
Los bloques montados se convierten en tiempo real en código Python;
si ejecutas el código, se interpreta y con él puedes mover y controlar el robot.
Estructura básica de los bloques
Al programar en el editor de bloques hay que cumplir la estructura básica siguiente.

El editor de bloques interpreta el código que está dentro de los bloques de función función de inicio y función de bucle y lo ejecuta.
Por tanto, debes escribir tu código poniendo bloques dentro de los bloques de función función de inicio y función de bucle.
función de inicio
En el bloque de función función de inicio defines las acciones que se ejecutan al principio al ejecutar el código.
Con el bloque esperar puedes conseguir que las acciones transcurran ordenadas en el tiempo.
función de bucle
En el bloque de función función de bucle defines las acciones que se ejecutan una y otra vez mientras el código está en marcha.
Las acciones definidas se ejecutan de nuevo aproximadamente cada 10 ms.
⚙️ Nota
(Aparte de las funciones propias que hayas creado con la categoría Funciones)
Los bloques que están fuera de los bloques de función función de inicio o función de bucle no tienen ningún efecto al ejecutar el código.
Cómo usar los bloques
Añadir un bloque



El bloque que quieras añadir lo arrastras desde la paleta de bloques y lo sueltas en el editor: así se añade.
Copiar / pegar bloques
Hay dos formas de copiar y pegar bloques en el editor.
Elige un bloque y pulsa Ctrl+C: el bloque elegido se copia.
Si pulsas Ctrl+V, el último bloque copiado se pega en el editor.Elige un bloque y pulsa en el menú Editar el botón «Copiar Ctrl+C»: el bloque elegido se copia.
Si pulsas en el menú Editar el botón «Pegar Ctrl+V», el último bloque copiado se pega en el editor.
Eliminar bloques
Hay tres formas de eliminar bloques en el editor.
Elige un bloque y pulsa Backspace: el bloque elegido se elimina.
El bloque que quieras eliminar lo arrastras en el editor y lo sueltas en las categorías de bloques: así se elimina.



- El bloque que quieras eliminar lo arrastras en el editor y lo sueltas en la papelera: así se elimina.
Los bloques eliminados los puedes volver a ver en la papelera.

Seleccionar varios bloques a la vez
Hay dos formas de seleccionar varios bloques a la vez en el editor.
Si mantienes pulsada la tecla Shift y arrastras por el área de trabajo o haces clic en los bloques uno a uno,
puedes seleccionar varios bloques a la vez.Con el botón de marca de verificación de abajo a la derecha del área de trabajo activas o desactivas el modo «seleccionar varios bloques».
Si el botón está relleno de color, el modo está activado.
Si el botón no está relleno de color, el modo está desactivado.


Mientras el modo «seleccionar varios bloques» está activado, solo puedes seleccionar bloques.
Si quieres mover o editar juntos los bloques elegidos, tienes que terminar la selección y desactivar el modo.
Opciones adicionales
Si además haces clic derecho en un bloque,
encuentras varias opciones adicionales, como contraer/expandir el bloque, activarlo/desactivarlo y Ayuda.
Editor de Python
Paleta de código

El área en la que las funciones básicas que necesitas para programar robots y los códigos Python de los robots y las extensiones están clasificados por categorías.
Las categorías de código de las funciones básicas (Códigos) son:
- Lógica (logic)
- Bucles (loops)
- Matemáticas (math)
- Texto (text)
- Lista (lists)
- Color (color)
- Audio (audio)
- Control (control)
Los códigos de las funciones básicas hacen lo mismo que los bloques básicos del editor de bloques.
⚙️ Nota
Cómo programar con la paleta de código en el editor de Python está en Cómo usar la paleta de código.
Editor de código

El área en la que escribes el código para controlar un robot.
Si en Configuración del editor eliges el editor Python, puedes escribir código Python.
Estructura básica del código
Al programar en el editor de código hay que cumplir la estructura básica siguiente.
from robomation import *
# (si vas a usar un robot, declararlo como instancia, ejemplo)
hamster_s = HamsterS(0)
# pon aquí el código de inicio, para ejecutarlo una vez:
def setup():
pass
# pon aquí el código de control, para ejecutarlo repetidamente:
def loop():
passEl editor de código interpreta el código que está dentro de las funciones setup y loop y lo ejecuta.
Por tanto, debes escribir tu código dentro de las funciones setup y loop.
Además, para controlar un robot, from robomation import * va al principio del código y el robot que vas a usar se debe declarar como instancia.
setup
En la función setup defines las acciones que se ejecutan al principio al ejecutar el código.
Con la función Utils.wait puedes conseguir que las acciones transcurran ordenadas en el tiempo.
loop
En la función loop defines las acciones que se ejecutan una y otra vez mientras el código está en marcha.
Las acciones definidas se ejecutan de nuevo aproximadamente cada 10 ms.
Cómo usar la paleta de código
A continuación se explica con ejemplos sencillos cómo usar la paleta de código al programar.
Encontrar el código que quieras
La paleta de código ofrece muchas funciones y códigos que necesitas para programar robots.

Si miras los elementos de la categoría Códigos, en algunos encuentras el icono .
Si haces clic una vez en el elemento Lógica, el icono pasa a y los subelementos que contiene se despliegan.
Un elemento con subelementos se llama «categoría».
Si a un elemento le falta el icono , como a ternario en la categoría Lógica, significa que ahí ya no hay más subelementos.
Un elemento sin subelementos se llama «código».

Si vuelves a hacer clic en una categoría desplegada, el icono pasa otra vez a y los subelementos se ocultan.
Así puedes seguir las categorías y encontrar en la paleta de código el código que quieras.
Insertar código en el editor
Así insertas código en el editor.

Si a la izquierda del nombre de un elemento está el icono , significa que para ese elemento no hay opciones de código que elegir.
Eso ocurre normalmente con los elementos de categoría que tienen subelementos.
Si a la izquierda del nombre de un elemento está el icono , significa que para ese elemento hay opciones de código que elegir.
Eso ocurre normalmente con los elementos de código sin subelementos.
Si haces clic derecho en el código que quieras insertar en el editor, ves las opciones disponibles.

Si haces clic derecho en un elemento de código, encuentras las mismas opciones, sin diferencia entre las funciones básicas y los códigos de los robots y las extensiones:
- Insertar código: inserta el código elegido en la posición del cursor en el editor.
- Ayuda: muestra la ayuda que explica el uso de ese código.
- Cancelar: cierra el menú de opciones.
En los códigos de los robots y las extensiones, con Insertar código se inserta una llamada a un método de la instancia de ese robot.
( p. ej. set_wheel_speed de HamsterS → hamster_s.set_wheel_speed('both', 50) )
⚙️ Nota

Las categorías de código de los robots o las extensiones añadidos que ya no necesitas
las puedes quitar de la paleta de código con clic derecho → Eliminar.
