RoboPro: Interfaz en Nivel Principiante

RoboPro: Interfaz en Nivel Principiante

En un post anterior,

hicimos una descripción de los componentes de hardware que forman el RTC. En esta ocasión procederemos a describir el software que se utiliza para programar el RTC, es decir, el RoboPro.

Este software puede ser descargado gratuitamente desde la nuestro repositorio

Una vez instalado el software (que incluye los drivers conrrespondientes) estamos listos para empezar a programar. La programación en el RoboPro se da a través de diagramas de flujo, lo cual no es lo mismo que un diagrama de bloques.

El software presenta una interfaz sencilla y práctica, la cual presenta opciones según el nivel de opciones que la persona necesite. Estos niveles los podemos modificar en la barra de herramientas, en el menú Nivel. Veamos:

Cuando escogemos la opción “Principiantes” veremos algunos íconos en la parte de la izquierda de la interfaz del RoboTX Pro.

Estos símbolos desaparecen cuando escogemos un nivel superior al “Principiante” en favor de un árbol de opciones donde encontraremos más símbolos, opciones y funciones. Por lo pronto, trabajaremos con las opciones que nos presenta la interfaz “Principiante”.

El RoboPro tiene una barra de opciones con algunos iconos rápidos que nos permiten lograr resultados de forma rápida sin tener que acudir a la barra de herramientas.

Algunas de estas opciones son muy obvias, otras las iremos descubriendo a medida que avanzamos en los tutoriales. Por lo pronto necesitamos conocer los principales símbolos de la interfaz “Principiante” que es con la que trabajaremos en esta ocasión.

Creamos un nuevo programa (clic en “Nuevo”) y empezaremos a explorar los símbolos con los que contamos y cada una de las opciones que nos brindan.

Símbolos para programación por diagramas de flujo – Nivel Principiante
  • Bloques de Inicio/Fin de flujo

  • Como ya explicamos, todo diagrama de flujo (valga la redundancia) debe poseer un principio y un fin bien definido. Estos símbolos, el de inicio (verde) y el de final (rojo) deben estar presentes en todos y cada de los programas que hagamos utilizando esta plataforma.
  • Bifurcación Digital

Se trata de una estructura selectiva tal como la que ya vimos en el post introductorio sobre diagramas de flujo. El funcionamiento de este bloque depende de una entrada digital (véase Fischertechnik ROBO TX Controller: Conceptos básicos). Si la entrada digital está en HIGH el flujo tomará un camino. De lo contrario el flujo irá en otro sentido. Esto lo podemos apreciar en el siguiente esquema:

En el post de entradas y salidas analógicas y digitales explicamos que en las entradas digitales un estado HIGH se da cuando en la entrada hay un voltaje aplicado (aproximadamente 9 voltios, aunque desde 4 o 5 voltios ya se considera HIGH) y el estado LOW representa ausencia de señal de voltaje en la entrada.
Los interruptores y algunos sensores oscilan entre estados HIGH y LOW, por lo que este bloque es utilizado para “leer” el estado lógico de este tipo de dispositivos. La entrada que deseamos utilizar como entrada analógica la podemos escoger dándole clic derecho al ícono de la bifurcación.

  • Podemos escoger la entrada digital, entre la 1 y la 8. La Interfase/Extensión la dejamos tal como está. La imagen la podemos cambiar por 4 distintas opciones. Lo demás lo dejamos tal como está. El funcionamiento es sencillo, pero bajo los principios lógicos correctos, este bloque puede formar parte de diagramas más complejos y elaborados donde sea necesario hacer lectura de estados lógicos definidos.
  • Bifurcación Analógica

La bifurcación analógica, tal como la digital, permite seguir 2 caminos distintos dependiendo de si se cumple o no una condición dada. Sin embargo, en este caso no se toma una decisión en base a 2 niveles (HIGH o LOW). Las entradas analógicas miden niveles de voltajes, tal como explicamos en el post sobre entradas y salidas analógicas y digitales. RoboPro nos permite hacer lectura de un voltaje en una entrada analógica y decidir qué acción ejecutar. Para ello el usuario establece un nivel analógico predeterminado. El controlador decidirá las acciones a llevar a cabo si el voltaje leído es mayor, menor o igual (improbable) al voltaje preestablecido. Debemos recordar que el nivel de voltaje que apliquemos a cualquier entrada analógica no debe superar los 9 voltios. Si hacemos clic derecho sobre el icono podremos configurar la bifurcación a nuestro antojo:

  • Es necesario escoger el parámetro que vamos a leer, si es tensión (voltaje) o resistencia. Esto ya lo explicamos en el post introductorio sobre el RTC. Podemos escoger el valor analógico que utilizaremos como referencia. El usuario puede escoger ñla condición de comparación, ya sea mayor que, mayor o igual que, igual a, menor o igual a, menor que, diferente de.
  • Tiempo de espera

Es el equivalente a un “delay”, es decir, introduce una pausa en el diagrama de flujo. Esta pausa durará la cantidad de tiempo que sea establecida por el usuario.

  • Salida de motor (Salida digital)

 


La salida de motor es una salida digital, es decir, puede alternar entre 2 estados definidos, sea HIGH o LOW. Cuando la salida está en HIGH, esta puede entregar 250mA @ 9V. Cuando la salid está en LOW se convierte en un equivalente de tierra (GND). Se le llama salida de motor debido a que si conectamos un motor entre esta salida y tierra, el motor girará. Hay algunos parámetros que podemos variar en este bloque:

  • Si cambiamos la Imagen simplemente haremos eso, cambiar el icono que nos aparece en el diagrama. Si modificamos la salida estaremos cambiando el puerto en el cual debemos conectar la carga. Al cambiar la acción modificamos la polaridad del puerto, lo cual es un uso casi exclusivo de aplicaciones con motores. La velocidad (entre 1 y 8) es un índice que indica el ancho del pulso para el control de la energía que se entrega a la carga a través de PWM (véase Arduino PWM: Modulación por ancho de pulsos). Con esto podemos variar la velocidad de un motor o cambiar la intensidad luminosa de un LED, entre otras cosas.
  • Esperar a entrada

Este bloque se utiliza para desencadenar un flujo de instrucciones una vez se produzca una entrada. Esta entrada puede ser un estado lógico o un cambio de estados lógicos. Esto se puede apreciar en la ventana de propiedades:


  • En “Esperar a:” tenemos las opciones:
    – 1 para esperar un 1 lógico
    – 0 para esperar un 0 lógico
    – 0 -> 1 para esperar un cambio de 0 a 1 (flanco positivo)
    – 1 -> 0 para esperar un cambio de 1 a 0 (flanco negativo)
    – 0 -> 1 ó 1 -> 0 para cualquiera de las 2 opciones anteriores.
    Una vez más es posible cambiar la imagen que se muestra en el software por alguna de las disponibles en el combo de “Imagen”.

  • Contador de impulso

Este bloque permite contar una cantidad de pulsos determinada, a través de lecturas en las entradas analógicas/digitales. Se establece una cantidad de pulsos a contar (10 en caso de la imagen) para luego proceder con el recorrido del flujo en el diagrama. Las opciones que se pueden configurar:

  • El número de impulsos es la cantidad de pulsos a detectar antes de proceder. El tipo de impulso define si el pulso es de 0 a 1 (flanco positivo), de 1 a 0 (flanco negativo) o si se permite cualquier tipo de cambio. Es posible escoger la entrada donde queremos colocar este contador.
  • Bucle contador

Esta estructura es el equivalente al ciclo for que encontramos en la mayoría de los lenguajes de programación. Esta estructura repite que una acción se repita un número finito de veces. Esta cantidad de repeticiones puede ser establecida por el usuario en los parámetros del bloque:

La forma como trabaja este bloque la explicamos a continuación.

  • A este tipo de bloques con su estructura asociada le dedicaremos un post en los próximos días donde esperamos demostrar a través de ejemplos prácticos cómo se da el flujo dentro de esta estructura.

Con los símbolos mostrados es más que suficiente para construir toda clase de algoritmos interesantes, algunos de los cuales esperamos compartir con ustedes en los próximos días. Esperamos que la información compartida sea de utilidad para usted. Saludos.