Fischertechnick Robo TX Programación y armado para Fischer RoboTX Autor Ariel Godoy Versión 1.2 Fecha 16/07/2013 Ubicación
Índice Introducción... 4 Instalación de Flowol4... 4 Instalación en XO 1.0 y 1.5... 4 Desinstalación en XO 1.0 y 1.5... 4 Interfaz de Flowol... 6 Barra de Herramientas de Edición... 6 Barra de Herramientas de Diseño... 7 Barra de Estado... 12 Barra de Control de Ejecución... 12 Barra de Zoom... 12 Área de Programación... 12 Como instalar Robopro:... 13 Interfaz de RoboPro... 16 Barra de menú... 16 Barra de bloques de programación...16 Opciones de archivo... 19 Eliminar un elemento... 19 Controles de ejecución... 19 Configuración de la interfaz... 19 Control de debugging... 19 Control de zoom... 19 Área de programación... 19 Ejemplos de entrenamiento... 20 Luz parpadeante... 21 Listado de piezas... 21 Programación... 21 Luz parpadeante con pulsador... 22 Lista de piezas... 22 Programación... 22 Ventilador con botón... 23 Listado de piezas... 23 Programación... 24 Página 2 de 25
Ventilador con botón 2.0... 24 Problematica... 24 Programación... 25 Control de cambios... 26 Modificaciones... 26 Revisiones... 26 Página 3 de 25
Introducción El objetivo de este manual es presentar el software que utilizaremos para controlar al kit RoboTX de FischerTechnik. Dicho software es Flowol4, explicaremos su funcionamiento y luego reafirmaremos los conceptos mediante el uso de algunos ejemplos prácticos. Instalación de Flowol4 Instalación en XO 1.0 y 1.5 Para poder instalar Flowol4 en la XO 1.0 y 1.5 es necesario: Estar en el entorno Sugar. Abrir la actividad terminal Ingresar los siguientes comandos: wget http://centroceibal:4ddqwwa5ts@www.flowol.com/centroceibal/flowol4.xo sugar-install-bundle Flowol4.xo rm Flowol4.xo Abrir la actividad Flowol4 en la vista principal Desinstalación en XO 1.0 y 1.5 Para poder desinstalar Flowol4 en la XO 1.0 y 1.5 es necesario: Estar en el entorno Sugar. Abrir la actividad terminal Ingresar los siguientes comandos: rm rf /home/olpc/activities/flowol4.activity Página 4 de 25
Importante: Es necesario tener el Controlador encendido y conectado a la máquina para que al iniciar Flowol, éste reconozca el controlador. Al iniciar el programa, se debe seleccionar la opción de Fischertechnik Robo TX Interface. Si esta opción no aparece, se debe presionar el botón Connect to an Interface para después seleccionar Fishchertechnik Robo TX Interface. Página 5 de 25
Interfaz de Flowol Barra de Herramientas de Edición Barra de Herramientas de Diseño Barra de Estado Área de Programación Barra de Control de Ejecucción Barra de Zoom Barra de Herramientas de Edición En esta barra se encuentran los accesos para crear, abrir o guardar un archivo, como también para cortar, copiar, pegar, eliminar, deshacer y rehacer (en ese orden), sobre los elementos de programación. Página 6 de 25
Barra de Herramientas de Diseño En esta barra se encuentran los elementos que se utilizan para la programación, estos son: Bloque Start/Stop/Sub: Se utiliza para indicar el Comienzo o Final del programa o la definición de una subrutina. Al ubicarlo en pantalla, se despliega el siguiente cuadro donde se puede seleccionar la acción deseada. Si se selecciona la opción Sub, se le debe asignar un nombre para identificar a dicha Subrutina. Bloque Output: Se utiliza para controlar un Actuador conectado a una salida del controlador. Al seleccionarlo y ubicarlo en la pantalla de programación, se abre el siguiente cuadro para configurarlo donde se debe indicar que Output queremos controlar y que acción debe hacer. Bloque Delay: Se utiliza para indicarle al programa que espere cierta cantidad de tiempo entre la ejecución de la acción anterior y la siguiente. Al ubicarlo en pantalla, se debe configurar el tiempo de espera deseado, que esta expresado en segundo. Página 7 de 25
Bloque Let: Éste bloque aparece en la barra cuando se activan las variables (presionando el botón XY de la barra de Estado) y se utiliza para manejar las variables, ya sea para asignarle un valor, o modificar el valor ya existente. Cuando se ubica en pantalla, se abre el siguiente cuadro para configurar la operación que se desee realizar. Bloque de Subrutinas: Se utiliza para llamar una subrutina ya definida mediante el bloque Start/Stop/Sub y asignarle la cantidad de veces que se desea repetir. Cuando se completan las repeticiones deseadas de la subrutina, continúa el procedimiento que llamo a dicha subrutina. Para que aparezca este bloque en la barra se debe haber definido por lo menos una subrutina. Al colocar el bloque en pantalla, se abre el siguente cuadro para su configuración. Página 8 de 25
Bloque Decisión: Éste bloque se utiliza para expresar una pregunta con respuesta de si (YES) o no (NO). Si la respuesta es Si (YES) entonces se elige un camino y si la respuesta es no (NO), se elige otro. Los bloques de decisión se usan para chequear el estado de un Sensor, o el valor de una variable. Los caminos para ambas respuestas deben estar definidos para todo bloque de decisión. Al ser ubicado en pantalla se despliega el siguiente cuadro donde se podrá configurar la pregunta deseada. Texto: La herramienta de texto se utiliza para agregar una etiqueta en el diagrama de flujo (programa). Seleccionar: Se utiliza para seleccionar los elementos del diagrama de flujo (uno o varios). Al seleccionar un elemento, se vuelve a abrir el cuadro de configuración lo que permitirá editar el elemento seleccionado. También se podrán mover los elementos seleccionado (cuando un bloque se mueve, también se moverán las líneas conectadas a él). Flujo: La herramienta de flujo se utiliza para conectar bloques entre ellos y así definir el flujo del programa. Todos los bloques, excepto el de Stop, necesitan una línea que salga de ellos (el de decisión, necesitará 2, una para Si y otra para No) para indicar como sigue el procedimiento. Para agregar una línea, se selecciona la flecha y se clickea primero en el bloque de origen y luego en el bloque de destino de la misma. Página 9 de 25
Barra de Estado La Barra de Estado muestra el estado de todas las Inputs, Outputs y variables (para poder ver estas últimas se debe accionar el botón XY que se encuentra arriba de la barra). Permite cambiar el nombre de cualquiera de estos elementos chequear su estado. Barra de Control de Ejecución En esta barra se encuentras las opciones de control de ejecución del programa: Iniciarlo, Detenerlo, Ajustar la Velocidad de Flujo, Pausarlo y Ejecutarlo Paso a Paso. Barra de Zoom Ajusta el tamaño de los elementos en el área de programación. Área de Programación Es el área donde se colocaran los elementos para realizar la programación. Página 10 de 25
Como instalar Robopro: RoboPro es el software que utilizaremos desde Windows para trabajar con el kit ROBO LT. Dentro de la carpeta RoboPro buscamos el archivo Setup y le damos doble click. Se nos abrirá una ventana donde haremos click en Siguiente, dando lugar al acuerdo de licencia, en el cual haremos click en Si para que se active el botón siguiente, el cual presionaremos. Página 11 de 25
La próxima ventana es la de información de usuario, podemos dejarla en blanco y presionar siguiente, abriéndose la ventana de selección de tipo de instalación, comprobamos que esté seleccionada la instalación express y presionamos siguiente. Página 12 de 25
Se nos abrirá la ventana de Directorio de instalación, el cual podemos cambiar en Ruta si así lo deseamos, elegimos que usuarios de nuestro equipo utilizaran RoboPro (si el equipo no tiene más que un usuario creado en el sistema esto es indiferente) y presionamos siguiente, con lo cual se nos abrirá la última ventana en la cual al presionar Finalizar se procederá a realizar la instalación. Luego de un momento se nos mostrará el siguiente mensaje: Con lo cual damos por finalizada la instalación de RoboPro. Página 13 de 25
Interfaz de RoboPro Opciones de archivo Controles de ejecución Control de debugging Barra de menú Eliminar un elemento Configuración de la interfaz Barra de bloques de programación Control de zoom Área de programación Barra de menú Aquí se encuentran los elementos de menú con los que podemos controlar diferentes aspectos de manejo del programa. Barra de bloques de programación Aqui se encuentran los bloques que colocaremos en el area de programación, con los cuales describiremos el comportamiento de nuestro programa, estos varian dependiendo del nivel de complejidad seleccionado en el menu. En el modo principiantes (que es el que utilizaremos en este manual) los bloques mas importantes son: Bloque de inicio: Se utiliza para indicar el comienzo del programa Bloque de fin: Se utiliza para indicar el findel programa Página 14 de 25
Bloque de bifurcación digital: se utiliza para consultar sobre el estado de un sensor que mida valores digitales (0 o 1) y en base al resultado poder decidir el flujo de nuestro programa. Al darle click derecho se abre el siguiente cuadro de configuración: En el mismo podemos seleccionar en que entrada del controlador esta conectado el sensor, que tipo de sensor es (esto es para que cambie el dibujo en el bloque) y si queremos dejar las conexiones del bloque como están (1/0) o invertirlas (0/1) con lo que invertimos la lógica del flujo. Bloque de bifurcación analógica: se utiliza para consultar sobre el valor de un sensor que mida valores analógicos (rangos de valores, por lo tanto evalua con operadores <,>,<>,=,<=,>=) y en base al resultado poder decidir el flujo de nuestro programa. Al darle click derecho se abre el siguiente cuadro de configuración. Página 15 de 25
En el mismo podemos seleccionar en que entrada del controlador esta conectado el sensor, que tipo de sensor es (esto es para que cambie el dibujo en el bloque) y si queremos dejar las conexiones del bloque como están (S/N) o invertirlas (N/S) con lo que invertimos la lógica del flujo. Bloque de espera: pone el programa en pausa durante el tiempo especificado. Al hacer click derecho sobre el se abre el siguiente cuadro de configuración: Donde podemos definir la unidad de tiempo y cuál será la duración de la espera (la cual acepta valores decimales). Bloque de salida de motor: este bloque indica acciones que se corresponden a las acciones de actuadores (motor XS, motor codificador, lampara incandescente y lampara con lente). Al hacer click derecho sobre el se abre el siguiente cuadro de configuración: Página 16 de 25
Aquí podemos seleccionar en que entrada de controlador esta conectado el actuador, la potencia en la que se encenderá (entre 1 y 8), el sentido de la corriente y la imágen del actuador que esta conectado. Bloques de texto: sirven para colocar comentarios en el código. Opciones de archivo Aquí tenemos las opciones de crear un archivo nuevo, abrir uno creado anteriormente o guardar el actual. Eliminar un elemento Una vez seleccionada esta herramienta podemos eliminar cualquier elemento del área de programación con hacer un click encima. Controles de ejecución Aquí tenemos los controles para inciar la ejecución del programa, detenerla o descargar el mismo a la interfaz RoboTX. Configuración de la interfaz Aquí podemos seleccionar el tipo de puerto en el que conectaremos el controlador, el tipo de controlador y además podemos acceder a la ventana de prueba de conexiones, la cual podemos utilizar para testear si las conexiones de actuadores y sensores en nuestro robot fueron realizadas correctamente. Control de debugging Aquí podemos controlar la ejecución de nuestro programa en modo debugging (depuración), iniciar la ejecución, pausarla y ejecutar paso a paso. Página 17 de 25
Control de zoom Aquí podemos decidir aumentar o reducir el tamaño de los elementos en el área de programación. Área de programación Aquí crearemos nuestro programa uniendo los distintos bloques presentados anteriormente. Página 18 de 25
Ejemplos de entrenamiento Nota: Para todos los casos, utilizaremos el controlador, la batería y cables armados de 15cm. Página 19 de 25
Luz parpadeante Listado de piezas Armado Paso 1: Pieza Cant Id 4 A 2 B 1 B A B C A C Paso 2: D,E,F 1 D 1 E 1 F 1 G 1 H A A Paso 3: H G Programación Página 20 de 25
Se desea programar una luz parpadeante, para ello encendemos la luz al comenzar el programa, luego pasamos a un bloque de espera de 0,5 segundos para después apagar la luz y esperar nuevamente 0,5 segundos para repetir el procedimiento por siempre. Luz parpadeante con pulsador Al modelo anterior le agregamos las piezas listadas a continuación: Lista de piezas Pieza Cant Id 1 A 1 B B A Página 21 de 25
Programación Se desea programar la luz parpadeante pero que la secuencia se ejecute mientras se esta presionando el pulsador. Para ello, a la programación anterior, le agregamos un bloque de decisión y preguntamos si el pulsador está presionado. En caso de ser afirmativo, realizamos la secuencia y volvemos a preguntar, en caso de ser negativo, simplemente volvemos a preguntar. Ventilador con botón En este modelo partimos del anterior, sustituyendo la lámpara por el motor XS (A) creando un ventilador con las piezas B y C Listado de piezas Pieza Cant Id 1 A 1 B 1 A C C B Página 22 de 25
Programación Se desea programar un ventilador que, al presionarse el pulsador, se encienda y al volver a presionarlo, se apague. Para ello definimos una variable x que, si el ventilador está apagado, tiene valor '0' y si esta encendido, tiene valor '1'. Por eso, luego del bloque de decisión para saber si se presiono el pulsador, preguntamos el estado de la variable x. Si su valor es '1'(el ventilador está encendido), le asignamos el valor '0' a x y apagamos el ventilador, si su valor es '0'(el ventilador esta apagado), le asignamos el valor '1' a x y encendemos el ventilador. En ambos casos, volvemos a preguntar si se presiono el pulsador para repetir las secuencias. Aquí tenemos una programación alternativa, sin utilizar la variable (y en robopro) donde una vez que el motor se encendió sabemos que la próxima pregunta sobre el estado del interruptor será para apagarlo. Página 23 de 25
Ventilador con botón 2.0 Problematica Con la programación anterior, se presenta el problema de que, si se mantiene presionado el botón, el ventilador se prende y se apaga continuamente. Para solucionar dicho problema, comprobamos el cambio de presionado a no presionado antes de encender o apagar el motor. Programación Agregando un bloque de decisión que espere a que el pulsador no este presionado para seguir con el flujo del programa, entre el bloque de decisión del pulsador y el bloque de decisión de la variable x existentes en la programación anterior, se logra solucionar la problemática planteada. De la misma forma, al consultar nuevamente por el estado del pulsador pero con la lógica inversa solucionamos el problema anterior, en este caso sin usar las variables. Página 24 de 25
Control de cambios Modificaciones Fecha Versión Modificaciones realizadas Revisiones Realizado Ariel Godoy por: Revisado por: Aprobado por: Fecha: Fecha: Fecha: Firma: Firma: Firma: 16/07/2013 Página 25 de 25