Skip to content
monkeyserna edited this page May 26, 2014 · 23 revisions

En este apartado se realiza una explicación de cada uno de los bloques disponibles en el modo de programación gráfica.

Los bloques disponibles son los siguientes:

Bloques lógicos (Logic)

Sentencia if

Ejecuta una sentencia condicional, el parámetro recibido debe ser de tipo booleano. Es decir, no admite un 0, pero sí valores true y false, bloques condicionales y cualquier otro bloque que devuelva un valor de este tipo.

Modificadores

Por defecto, la sentencia if únicamente tiene asociadas acciones para el valor cierto. Para añadir acciones al resultado negativo de la condición es necesario añadir el modificador else. Esto es posible pulsando el icono con forma de estrella, y añadiendo a la sentencia if los modificadores deseados. También es posible añadir uno o más bloques else if, de forma que si la primera sentencia ejecutada no es cierta, evaluará la segunda condición, y así sucesivamente.

Ejemplo

El siguiente ejemplo utiliza un bloque if.

El código realiza lo siguiente: si el sonar detecta un objeto a menos de 20 centímetros enciente el primer led. En otro caso (>= 20), enciende el segundo led.

Bloque comparador

Este bloque ejecuta una sentencia de comparación y devuelve trueo false.

Modificadores

Las comparaciones admitidas son:

  • = : Igual
  • : Distinto
  • < : Menor
  • : Menor o igual
  • > : Mayor
  • : Mayor o igual

Comparador lógico

Realiza una comparación lógica, y devuelve trueo false.

Modificadores

Las comparaciones lógicas que se pueden realizar con este bloque son:

  • and : Comparador lógico ^.
  • or : Comparador lógico v.

Negador

Negador lógico. Invierte el resultado de la entrada. Es decir, si recibe true, devuelve falsey viceversa.

Bloques booleanos

Devuelve un valor booleano, trueo false.

Modificadores

Permite escoger el valor booleano a devolver.

Valor nulo

Devuelve el valor nulo.

Sentencia shorthand if

Realiza una comparación (necesita ser asociado a un bloque booleano). Si es cierto, devuelve el valor especificado en if true. En caso de ser falsa la condición, devuelve el valor asociado a if false.

Ejemplo

El valor de la variable sonar es "¡Objeto cerca!" si el sonar detecta un objeto a menos de 20 centímetros. En caso de detectar un objeto a 20 centímetros o más, su valor será "Despejado."

Bloques de bucle

Sentencia repetir

Repine N veces las acciones que contiene.

Sentencias mientras y hasta

Si se especifica while repite las acciones que contiene mientras la condición sea cierta. until repite las acciones siempre y cuando la condición no se cumple.

La condición se especifica mediante un bloque booleano, ya sea un bloque condicional, o cualquier otro bloque con un valor de este tipo.

Modificadores

Se pueden especificar 2 modalidades en este bloque:

  • while repite las acciones que contiene mientras la condición sea cierta.
  • until repite las acciones que contiene mientras la condición sea falsa.

Sentencia para

Ejecuta un bucle for con contador, o sentencia para. Ejecuta las acciones que contiene desde el rango inferior hasta el superior en incrementos también especificados como parámetros. Se almacena en una variable el número de iteración en el que se encuentra el bucle. En el ejemplo se ejecuta el bucle 10 veces, desde 1 hasta 10 en incrementos de 1, y la variable de la iteración es i.

Sentencia para-cada

Sentecia foreach, o para cada. Dada una lista de N elementos, ejecuta las acciones contenidas en el bloque N veces, almacenando en una variable (j en el ejemplo) el elemento número N de la lista.

Rupturas de secuencia

Es posible realizar rupturas de secuencia dentro de las acciones de un bucle, ya sea a nivel de bucle (break), o de iteración (continue). Si se especifica break out, cuando se ejecute esta acción finalizará el bucle. Si se ecoge la acción continue, cuando se ejecute saltará a la siguiente iteración del bucle (si existe).

Modificadores

Existen dos posibles rupturas de secuencia:

  • break out Finaliza la ejecución del bucle.
  • continue Finaliza la ejecución de la iteración.

Sentencias matemáticas

Número

Especifica un número. Puede ser entero o con decimales (separados por punto).

Operaciones básicas

Devuelve el resultado de una operación matemática.

Modificadores

Las operaciones que se pueden realizar con este bloque son las siguientes:

  • Suma
  • Resta
  • Multiplicación
  • División
  • Exponencial

Operaciones de 1 operando

Devuelve el resultado de una operación matemática de 1 operando.

Modificadores

Es posible realizar las siguientes operaciones:

  • square root : Raíz cuadrada
  • absolute: Valor absoluto
  • - : Valor negativo
  • ln : Logaritmo neperiano
  • log10 : Logaritmo en base 10
  • e^ : e elevado a X (siendo X el parámetro recibido)
  • 10^ : 10 elevado a X (siendo X el parámetro recibido)

Funciones trigonométricas

Devuelve el resultado de una función trigonométrica realizada sobre el valor de entrada.

Modificadores

Es posible realizar las siguientes operaciones:

  • sin : seno
  • cos : coseno
  • tan : tangente
  • acos : arcoseno
  • asin : arcocoseno
  • atan : arcotangente

Valores comunes

Define una serie de valores matemáticos comunes, tales como pi, e, to, o infinito.

Modificadores

Los distintos valores que devuelve son:

  • Pi
  • E
  • Ro
  • Raíz cuadrada de dos.
  • Raíz cuadrada de un medio.
  • Infinito.

Incremento

Realiza un incremento (equivalente a una suma) a una variable. Si tenemos change item by 1, la operación que hará será item := item + 1.

Redondeo

Devuelve el valor redondeado del elemto de entrada con el mismo tipo de dato. Es decir, si recibe un float, el valor resultante será también float.

Modificadores

Es posible redondear de 3 maneras:

  • round Redondeo estándar.
  • round up Redondeo al alza.
  • round down Redondeo a la baja.

Operaciones sobre listas

Este bloque devuelve el resultado de operaciones sobre un conjunto numérico definido en la lista recibida como parámetro.

Modificadores

Las operaciones sobre listas definidas en este bloque son:

  • sum : Devuelve la suma del conjunto.
  • min : Devuelve el valor mínimo del conjunto.
  • max : Devuelve el valor máximo del conjunto.
  • average : Devuelve la media del conjuno.
  • median : Devuelve la mediana del conjunto.
  • modes : Devuelve la moda, es decir, el valor repetido más veces.
  • standard deviation : Realiza la desviación estándar del conjunto.
  • random : Devuelve un elemento del conjunto al azar.

Resto

Devuelve el resto de los dos valores recibidos.

Restricción

Realiza la función de restricción dado un valor y un rango.

Si el mínimo es N, el máximo M y el valor X, la operación que realiza es min[ max(x,n), m ]. Por ejemplo, si establecemos el valor 3 y rango [0,5], el valor resultante será 3. Sin embargo, para el valor 10 y el rango [2,5], el valor resultante será 5 ya que 10 supera el rango restringido. De igual forma, para el valor 2 y rango [3,4], el valor resultante será 3 ya que 2 no está dentro del rango.

Valor aleatorio

Devuelve un valor aleatorio dentro del rango establecido.

Cadenas

Declaración explícita

Crea una cadena con el valor escrito.

Concatenar

Concatena dos o más cadenas.

Modificadores

Por defecto, esta instrucción concatena dos cadenas. Para aumentar (o disminuir) este número se insertan tantos bloques item al bloque descriptivo join como cadenas se quieran concatenar.

Añadir

Añade a una cadena almacenada en una variable el valor de entrada (definido a la derecha).

Por ejemplo, dada una variable v = "Hola"

Tras ejecutar instrucción to v append text " mundo", el valor de v será "Hola mundo".

El parámetro de entrada puede ser cualquier bloque que devuelva una cadena, incluyendo variables, literales, y otras muchas funciones.

Longitud de cadena

Devuelve un entero que indica la longitud de la cadena

¿Está vacía la cadena?

Devuelve un valor booleano (true o false) que indica si la cadena contiene algún elemento.

Encontrar ocurrencia

Dada una cadena y una subcadena, devuelve la posición en la que comienza que se encuentra la subcadena en la cadena. Es posible recorrer esta lista desde el principio o desde el final. En caso de no encontrar la ocurrencia, devuelve -1.

Por ejemplo, si a = "hola" y b = "la", la ejecuión in text a find first occurrence of text b devolverá 2.

Modificadores

Es posible recorrer la cadena de dos maneras:

  • first Recorre la cadena desde el principio y devuelve la posición donde comienza la primera subcadena encontrada.
  • last Recorre la cadena desde el final y devuelve la posición donde comienza la primera subcadena encontrada, empezando por la derecha.

Obtener elemento

Dada una cadena, obtiene un carácter de ésta según el criterio especificado.

Por ejemplo, para la cadena c = "Hola mundo", el bloque in text c get letter # 2 devuelve 'o', que es el segundo carácter de la cadena.

Modificadores

Se puede obtener el carácter mediante los siguientes criterios.

  • letter # : Especifica la posición.
  • letter # from end : Especifica la posición comenzando desde el final.
  • first letter : Primer carácter.
  • letter # from end : Último carácter.
  • random letter : Carácter al azar.

Obtener subcadena

Dada una cadena y un rango, devuelve una subcadena.

Modificadores

Para establecer el rango de extracción de la cadena, se emplean dos modificadores.

Para establecer el mínimo:

  • letter # indica la posición en la que se comienza a extraer.
  • letter # from end indica la posición comenzando a contar desde el final de la cadena.
  • first letter indica la primera posición de la cadena.

Para el máximo:

  • letter # indica la posición hasta la que se va a extraer.
  • letter # from end indica la posición comenzando a contar desde el final de la cadena.
  • last letter indica la última posición de la cadena.

Convertir

Dada una entrada de tipo cadena, devuelve esta cadena convertida a mayúsculas, minúsculas, o primeras letras mayúsculas.

Modificadores

  • UPPER CASE Convierte la cadena a mayúsculas.
  • lower case Convierte la cadena a minúsculas.
  • Title case Convierte la cadena con primeras letras a mayúscula y el resto minúscula.

Aplicar formato

Elimina espacios y saltos de linea al comienzo y/o final de una cadena.

Modificadores

Los modificadores disponibles para este bloque son:

  • both sides Elimina los espacios del principio y final de la cadena.
  • left side Elimina los espacios del principio la cadena.
  • right side Elimina los espacios del final de la cadena.

Mostrar

Escribe un mensaje en la terminal de Raspberry (visible a través de SSH). Esta función resulta de especial utilidad en el modo de depuración.

Leer desde terminal

Lee un valor por flujo de entrada de terminal. El uso de este bloque se comenta en el apartado depuración.

Es posible establecer un mensaje que se escribirá antes de la lectura de terminal.

Modificadores

Es posible leer dos tipos de valores:

  • text Recibe una cadena como entrada
  • number Recibe un valor numérico como entrada. Puede ser decimal.

Listas

Lista vacía

Crea un vector sin elementos.

Crear lista

Crea un vector con los elementos deseados.

Modificadores

Mediante el icono estrella (situado en la parte superior izquierda del bloque) se pueden realizar mutaciones del bloque para añadir o eliminar elementos del vector a crear. Para añadir un nuevo elemento, basta con incluir otro bloque item dentro de list. Para eliminarlo, basta con separarlo del flujo de acciones que contiene el bloque list.

Crear lista con repeticiones

Crea una lista con un elemento X repetido N veces.

Longitud de lista

Devuelve un valor entero que indica el número de elementos que contiene el vector.

¿Está vacía la lista?

Devuelve un valor booleano (trueo false) que indica si el vector está vacío.

Encontrar ocurrencia

Dada una lista y un elemento, devuelve la posición en la que se encuentra la primera (o última) ocurrencia del elemento. Es posible recorrer esta lista desde el principio o desde el final. En caso de no encontrar la ocurrencia, devuelve -1.

Por ejemplo, si a = "hola" y b = "la", la ejecuión in text a find first occurrence of text b devolverá 2.

Modificadores

Es posible recorrer la cadena de dos maneras:

  • first Recorre la lista desde el principio y devuelve la posición donde comienza la primera subcadena encontrada.
  • last Recorre la lista desde el final y devuelve la posición donde comienza la primera subcadena encontrada, empezando por la derecha.

Modificar elemento

Lee, extrae o elimina un elemento de la lista.

Modificadores

Este bloque tiene dos modificadores.

El primer modificador indica la acción a realizar sobre un elemento de la lista. Pueden ser las siguientes:

  • get Devuelve el elemento del vector.
  • get and remove Extrae el elemento del vector. Es decir, devuelve el elemento y lo elimina de la lista.
  • remove Elimina el elemento vector. No devuelve nada.

El segundo modificador indica el criterio de selección del elemento de la lista. Son estos:

  • # : Especifica la posición de la lista en la que se encuentra el elemento a obtener.
  • # from end : Especifica la posición comenzando desde el final.
  • first : Primer elemento.
  • last : Último elemento.
  • random letter : Elemento al azar.

Obtener sublista

Dada una lista y un rango, devuelve una sublista.

Modificadores

Para establecer el rango de extracción de la cadena, se emplean dos modificadores.

Para establecer el mínimo (valor a partir del cual se empieza a crear la sublista):

  • # indica la posición del elemento en el vector.
  • # from end indica la posición comenzando a contar desde el final de la lista.
  • first indica la primera posición de la lista, es decir, el primer elemento.

Para el máximo (último valor a obtener):

  • letter # indica la posición del elemento en el vector..
  • letter # from end indica la posición comenzando a contar desde el final de la lista.
  • last indica el último elemento de la lista.

Variables

Establecer

Crea o modifica una variable, y le asocia un valor. El tipo del dato de la variable se asigna de forma automática en la primera asignación, propagando el tipo de dato del valor asociado.

Para eliminar una variable, basta con que ningún bloque le haga referencia. Si una variable no se define ni se emplea, se elimina.

Modificadores

En el desplegable aparecen todas las variables creadas en el espacio de trabajo. También es posible ejecutar dos acciones:

  • Rename variable Renombra una variable existente, y cambia el nombre de todos los bloques que la mencionan.
  • New variable Crea una nueva variable.

Obtener

Cuando se crea una variable, se crea a su vez un nuevo bloque en el apartado Variables. Este bloque devuelve el valor de la variable.

Modificadores

En el desplegable aparecen todas las variables creadas en el espacio de trabajo. También es posible ejecutar dos acciones:

  • Rename variable Renombra una variable existente, y cambia el nombre de todos los bloques que la mencionan.
  • New variable Crea una nueva variable.

Procedimientos

Procedimiento

Crea una función que no devuelve ningún valor.

Para cada función o procedimiento que se cree, se añadirá un nuevo bloque en el apartado Procedures, para poder realizar llamadas a la función.

Modificadores

Es posible añadirle valores de entrada (parámetros) a la función, mediante el icono con forma de estrella. Para añadir un parámetro, se ha de colocar un bloque de tipo input en el contenido de las acciones de inputs.

Función

Crea una función que devuelve un valor.

Para cada función o procedimiento que se cree, se añadirá un nuevo bloque en el apartado Procedures, para poder realizar llamadas a la función.

Modificadores

Es posible añadirle valores de entrada (parámetros) a la función, mediante el icono con forma de estrella. Para añadir un parámetro, se ha de colocar un bloque de tipo input en el contenido de las acciones de inputs.

Condición de retorno

Es posible añadir una condición de retorno, tanto a procedimientos como a funciones. Si la condición es cierta, finalizará la ejecución de la función, devolviendo un valor en caso de tratarse de una función. En los procedimientos únicamente finaliza la ejecución ya que no devuelven ningún valor.

Llamada a procedimiento o función.

Para cada función o procedimiento que se cree, se añadirá un nuevo bloque en el apartado Procedures, para poder realizar llamadas a la función.

Bloques propios

Matemáticos

Redondear a entero

Esta función recibe un valor numérico de cualquier tipo (es decir, int, unsigned int, float, long, ...) y devuelve este valor como un entero redondeado.

La diferencia con el bloque round, es que este último mantiene el tipo de datos de origen, es decir, round 3.5 devuelve 4.0 (float), mientras que este round to Integer 3.5 devuelve 3 (entero).

Mapeado (escalar)

Re-mapea o escala un número desde un rango hacia otro. Ésto significa que, un valor (value) con respecto al rango fromLow-fromHight será escalado al rango toLow-toHigh.

No se limitan los valores dentro del rango, ya que los valores fuera de rango son a veces objetivos y útiles. El bloque matemático constrain x min max puede ser usada tanto antes como después de ésta función, si los límites de los rangos son deseados.

Ten en cuenta que los límites "inferiores" de algún rango pueden ser mayores o menores que el límite "superior" por lo que map() puede utilizarse para revertir una serie de números, por ejemplo:

y = map(x, 1, 50, 50, 1);

La función maneja correctamente también los números negativos, por ejemplo:

y = map(x, 1, 50, 50, -100);

también es válido y funciona correctamente.

La función trata los elementos como tipos decimales (float)

La operación que realiza esta función (escrita en python) es realiza es el siguiente:

y = (x - in_min * out_max - out_min) / (in_max - in_min) + out_min	

Movimiento de avance

Movimiento de avance

Establece la velocidad de avance de ambos motores, pudiendo escoger entre tres niveles de velocidad.

Modificadores

  • slow Velocidad baja.
  • medium Velocidad normal.
  • fast Velocidad alta.

Giro a la izquierda

Realiza un giro a la izquierda, estableciendo el motor derecho a velocidad 0 (detenido) y el izquierdo a la velocidad indicada (despacio, normal o rápido).

Modificadores

  • slow Velocidad baja.
  • medium Velocidad normal.
  • fast Velocidad alta.

Giro a la derecha

Realiza un giro a la derecha, estableciendo el motor izquierdo a velocidad 0 (detenido) y el derecho a la velocidad indicada (despacio, normal o rápido).

Modificadores

  • slow Velocidad baja.
  • medium Velocidad normal.
  • fast Velocidad alta.

Detener motores

Realiza un frenado por bloqueo, deteniendo bruscamente el robot.

Para realizar un frenado suave (también llamado freno al aire, o freno por descarga) es posible establecer la velocidad de avance a 0 mediante algún comando que realice esta función (por ejemplo set both motor speed a 0.

Establecer velocidad de un motor

Establece la velocidad de avance un motor (o ambos).

El valor recibido debe estar en el rango [0,255]. En caso de introducir un número fuera del rango, se tomará como valor el máximo si el valor introducido es mayor que 255, o bien 0 si se introduce un número negativo.

Modificadores

  • left Motor izquierdo.
  • right Motor derecho.
  • both Ambos motores.

Establecer velocidad y balance

Establece la velocidad de avance y el balance del robot.

El balance es la diferencia de velocidad entre los motores. El rango de valores es[0, 255] donde

  • 0 indica giro brusco a la izquierda (el motor izquierdo no recibe velocidad y el derecho velocidad máxima).
  • 255 giro brusco a la derecha (ocurre al revés, el motor derecho se establece a velocidad 0 y el izquierdo a la máxima indicada en el parámetro de velocidad).
  • 123 indica avance frontal (ambos motores reciben la misma velocidad).

Los valores recibidos deben estar en el rango [0,255]. En caso de introducir un número fuera del rango, se tomará como valor el máximo si el valor introducido es mayor que 255, o bien 0 si se introduce un número negativo.

Movimiento de retroceso

Movimiento de retroceso

Establece la velocidad de retroceso de ambos motores.

Los valores recibidos deben estar en el rango [0,255]. En caso de introducir un número fuera del rango, se tomará como valor el máximo si el valor introducido es mayor que 255, o bien 0 si se introduce un número negativo.

0 indica detenido y 255 indica velocidad máxima.

Establecer velocidad de retroceso del motor izquierdo

Establece la velocidad de retroceso del motor izquierdo.

Los valores recibidos deben estar en el rango [0,255]. En caso de introducir un número fuera del rango, se tomará como valor el máximo si el valor introducido es mayor que 255, o bien 0 si se introduce un número negativo.

0 indica detenido y 255 indica velocidad máxima.

Establecer velocidad de retroceso del motor derecho

Establece la velocidad de retroceso del motor derecho.

Los valores recibidos deben estar en el rango [0,255]. En caso de introducir un número fuera del rango, se tomará como valor el máximo si el valor introducido es mayor que 255, o bien 0 si se introduce un número negativo.

0 indica detenido y 255 indica velocidad máxima.

Establecer velocidad y balance de retroceso

Establece la velocidad de retroceso y el balance del robot.

El balance es la diferencia de velocidad entre los motores. El rango de valores es[0, 255] donde

  • 0 indica giro brusco a la izquierda (el motor izquierdo no recibe velocidad y el derecho velocidad máxima).
  • 255 giro brusco a la derecha (ocurre al revés, el motor derecho se establece a velocidad 0 y el izquierdo a la máxima indicada en el parámetro de velocidad).
  • 123 indica avance frontal (ambos motores reciben la misma velocidad).

Los valores recibidos deben estar en el rango [0,255]. En caso de introducir un número fuera del rango, se tomará como valor el máximo si el valor introducido es mayor que 255, o bien 0 si se introduce un número negativo.

Detener motores

Realiza un frenado por bloqueo, deteniendo bruscamente el robot.

Para realizar un frenado suave (también llamado freno al aire, o freno por descarga) es posible establecer la velocidad de avance a 0 mediante algún comando que realice esta función (por ejemplo set both motor speed a 0.

Funciones de lectura de infrarrojos

Lectura de sensores frontales

Devuelve la lectura de los 12 sensores de suelo situados en la parte frontal del robot.

El formato es de salida es una cadena de 12 elementos, donde cada carácter de la cadena puede valer:

  • 1: Indica que el sensor ha detectado una marca negra.
  • 0: El sensor no ha detectado marca negra, y se interpreta como blanco.

Se ha escogido emplear una cadena como dato devuelto (y no su valor decimal) para poder aprovechar las funciones sobre cadenas disponibles, y así facilitar la programación.

Una posible valor devuelto por esta función sería la cadena 000001100000 que indica que los dos sensores situados en la posición central han detectado una marca negra y el resto han leído marca blanca.

Lectura de sensores centrales

Devuelve la lectura de los 9 sensores de suelo situados en la parte central del robot.

El formato es de salida es una cadena de 9 elementos, donde cada carácter de la cadena puede valer:

  • 1: Indica que el sensor ha detectado una marca negra.
  • 0: El sensor no ha detectado marca negra, y se interpreta como blanco.

Se ha escogido emplear una cadena como dato devuelto (y no su valor decimal) para poder aprovechar las funciones sobre cadenas disponibles, y así facilitar la programación.

Una posible valor devuelto por esta función sería la cadena 000010000 que indica que el sensor situado en el centro ha detectado una marca negra y el resto han leído marca blanca.

Lectura de sensores frontales y centrales

Devuelve la lectura de los 21 sensores de suelo situados. Los 12 primeros caracteres se corresponden con cada uno de los sensores frontales. Los 9 últimos indican el estado leído de los sensores centrales.

El formato es de salida es una cadena de 21 elementos, donde cada carácter de la cadena puede valer:

  • 1: Indica que el sensor ha detectado una marca negra.
  • 0: El sensor no ha detectado marca negra, y se interpreta como blanco.

Se ha escogido emplear una cadena como dato devuelto (y no su valor decimal) para poder aprovechar las funciones sobre cadenas disponibles, y así facilitar la programación.

Obtener primera marca negra desde la izquierda

Recibe una cadena y devuelve la posición del primer 1 leído.

Por ejemplo, supongamos que previamente realizamos una lectura frontal mediante el bloque Read front sensors y este devuelve la cadena "010000000000". Si introducimos este valor, la función devolverá 2, indicando que en el segundo sensor ha detectado una marca negra.

Esta función puede ser de gran utilidad para la realización de siguelineas, en combinacion con los bloques map y set speed and balance. Hay disponible una posible implementación de un siguelineas en el subapartado Ejemplos, dentro de la descripción del modo de programación gráfica.

Lectura analógica de sensores frontales

Los sensores frontales pueden realizar una lectura analógica de los infrarrojos.

El valor devuelto es una lista de 12 elementos, donde cada elemento de este vector indica el valor leído del sensor, dentro del rango [0,2000].

  • O indica blanco absoluto.
  • 2000 indica negro absoluto.

Por defecto, se considera como negro un valor mayor que 30.

Otras funciones

Esperar

Función de ruptura de flujo. Detiene la ejecución del código durante un periodo de tiempo establecido como parámetro. En otras palabras, si recibe el valor 1000 (milisegundos), espera 1 segundo hasta ejecutar la siguiente instrucción.

Lecuta del sonar

Devuelve el valor del sonar, que indica la distancia en centímetros a la que se ha detectado el objeto más cercano.

Control de leds

Establece el estado (encendido o apagado) de alguno de los 14 leds disponibles.

  • El led 0 está situado en el extremo izquierdo de la parte frontal del robot, coincidiendo con el sensor de suelo situado más a la izquierda.
  • El led 11 está situado en el extremo derecho de la parte frontal del robot, coincidiendo con el sensor de suelo situado más a la derecha.
  • Los leds 12 y 13 están situados en la parte central del robot.

Valores fuera de rango:

  • Si se introduce un valor negativo, el led que se encenderá será el número 0.
  • Si se introduce un valor mayor que 13, el led que se encenderá será el número 13.

En el siguiente ejemplo se hace parpadear 10 veces el primer led (situado en el extremo izquierdo del robot) en intervalos de cambio de estado de 1 segundo:

Modificadores

  • on: Indica estado encendido.
  • off: Indica estado apagado.

Establecer posición del servo

Establece la posición del servo, indicada en grados sobre la horizontal. Es decir:

  • -35º Es el valor mínimo. El robot apunta hacia abajo.
  • El robot apunta hacia el frente.
  • 90º El robot apunta hacia arriba.
  • 150º El robot apunta hacia atrás (la cámara se ve invertida en este ángulo).

Valores fuera de rango:

  • Si se introduce menor que -35, el servo se posicionará en su mínimo posible, es decir, -35º sobre la horizontal..
  • Si se introduce un valor mayor que 150, el servo se posicionará en su máximoposible, es decir, 150º sobre la horizontal..

Claxon

Establece el estado del claxon, también llamado zumbador, piezoeléctrico o buzzer.

El siguiente ejemplo emite un pitido durante un segundo:

Modificadores

  • on: Indica estado encendido.
  • off: Indica estado apagado.
Clone this wiki locally