Acciones

Sesión 2.- Cargar el programa en pruebas en Ay!Bot. Prueba de funcionamiento

De Ay!Bot

En este apartado se aprenderá a utilizar la aplicación FLIP1 de la empresa Atmel, aplicación necesaria para programar dispositivos electrónicos. Para ello utilizaremos como ejemplo el dispositivo ATxmega32C4 de Microchip, que es el microcontrolador que se utiliza en la plataforma Ay!Bot y usaremos un programa que permite comprobar el correcto funcionamiento de todos los elementos de la plataforma que se acaba de completar. Este ejemplo debe servir como guía para entender el protocolo a ejecutar cuando posteriormente se quieran cargar nuevos programas en la plataforma. Para ello debe ejecutar los siguientes pasos:

  1. Utilizando el cable USB-Micro-USB facilitado, conecte el PC con la plataforma Ay!Bot.
  2. Conecte la alimentación a la plataforma, utilice una fuente externa de 6 V DC o habilite la alimentación interna usando las pilas. La luz azul parpadeante de la conexión Bluetooth, indica que la plataforma está operativa.
  3. Ejecute el programa FLIP, ya instalado en su PC, haciendo doble click en el icono del escritorio. Se despliega la ventana del programa, cuya interfaz se muestra en la siguiente imagen.


Figura 2.1. Interfaz aplicación FLIP


En la parte superior de la ventana se encuentra la Barra de Menú, típica en una aplicación para Windows, desde donde se puede acceder a las distintas funcionalidades de la aplicación. Debajo de esta barra se encuentra la Barra de Herramientas, en donde se reflejan mediante iconos, de las anteriores funcionalidades, las de uso más habitual. En la tabla adjunta se señala la función de estas operaciones más comunes.


Tabla 2.1. Descripción iconos FLIP


Otro elemento que parece en la ventana de inicio de FLIP, abajo a la izquierda, es la Barra de Estado, que permite conocer al usuario el resultado de la ejecución de los comandos realizados. Una descripción más exhaustiva de este elemento no es relevante y se aleja de los objetivos de este seminario. A la derecha de la Barra de Estado, aparece la Barra de Conexión que indica el estado de la conexión de la plataforma con el sistema exterior, OFF/ON para señalar Desconectada/Conectada y en este segundo caso el protocolo serie elegido.

Figura 2.2. Device Selection Menu

Antes de instalar un determinado programa en el dispositivo digital programable que corresponda, lo primero, es seleccionar cual es el dispositivo correcto. Al pulsar en el icono “Select a Target Device” aparece una ventana, como la de la figura adjunta, con un menú desplegable que lista todos los dispositivos que permite programar la herramienta FLIP. Si no está seleccionado por defecto, debe seleccionar el modelo ATxmega32C4 y pulsar Aceptar.


Antes de proceder al establecimiento de la conexión serie, se debe preparar al microcontrolador para recibir un nuevo programa, llevándolo al modo denominado de Bootloader (Modo cargador de programa). Si el microcontrolador no se encuentra en el modo Bootloader, ejecutará el programa previamente almacenado.

Figura 2.3. Botones Reset y Boot

La operación de llevar al microcontrolador al estado de Bootloader, es sencilla y requiere dos acciones consecutivas en la plataforma Ay!Bot sobre los dos interruptores RST y Boot señalados en la figura adjunta.

  1. Pulsar al mismo tiempo ambos interruptores Reset (RST) y Boot.
  2. Sin dejar de pulsar el interruptor Boot (izquierda), dejar de pulsar el interruptor de Reset, RST(derecha) 2.

Si estas acciones se han efectuado de forma correcta, no ocurre nada visible, en caso contrario, los dos LEDs situados a la izquierda parpadearán para señalar un error y se deberá repetir el proceso.


Una vez en el modo Bootloader, seleccionamos el protocolo de comunicación serie a elegir para transferir al microcontrolador un nuevo programa. Pulsando el icono “Select a Communication Medium” y dependiendo del dispositivo seleccionado en la etapa anterior, FLIP permite seleccionar una entre cuatro opciones el protocolo de comunicación serie a establecer, siendo RS232, CAN, USB y LPC los protocolos permitidos.

Figura 2.4. Communication Medium Menu

En el caso del microcontrolador ATxmega32C4, la ventana de selección sólo permite el uso de la interfaz USB. Al hacer clic sobre la opción USB, se abre una ventana “USB Port Connection” en la que se debe pulsar el botón “Open” para inicializar la comunicación. Si el canal de comunicación se ha abierto de forma correcta, se producirá un cambio en el mensaje que aparece en la Barra de Conexión pasando de “Communication OFF” a “USB ON”.




Ahora hay que cargar en la aplicación FLIP el programa ya compilado que se encuentra almacenado en el PC en el archivo denominado “Test_Robot.hex”. Este programa contiene un conjunto de pruebas que permiten chequear el hardware instalado en la plataforma Ay!Bot. Por el momento y con este ejemplo, se aprende a utilizar la aplicación FLIP para cargar el archivos compilados (.hex) en el microprocesador, más adelante se aprenderá a generar estos archivos a partir de programas escritos por nosotros mismos. Pulsando el botón de la Barra de Herramientas “Load HEX File”, nos permite acceder al directorio del PC en donde se guarde el archivo a cargar, en concreto en la carpeta "C:/Ay!Bot/Test_Robot/Test_Robot.hex”. Una vez encontrado el archivo buscado, se pulsa OK para completar la operación.

Figura 2.5. Edit FLASH Buffer

Ahora el programa está guardado en la memoria buffer de FLIP. Si se quiere comprobar que hay almacenado, pulse el icono “Buffer Edit” (figura 2.5) y aparece una ventana con números en hexadecimal, cada dos dígitos es un byte, asociados a direcciones de memoria. La mayoría de los humanos no somos capaces de entender el contenido del mensaje, pero es la forma de transmitir el programa al microcontrolador, ya que es la única forma que este entiende. En esta ventana se pueden cambiar (editar) los bytes escritos, pero un cambio implica cambiar el programa y a estas alturas, no estamos aún preparados para hacerlo. Pulsando OK, se cierra la venta y se vuelve a la aplicación.


En primer lugar, antes de cargar un nuevo programa en el dispositivo, es necesario estar seguro que la memoria del mismo esté completamente vacía, de esta forma no habrá instrucciones de un programa anterior que dificulten la ejecución del nuevo. Para efectuar esta operación, solo hace falta pulsar en el icono “Erase Target Device Memory” de la Barra de Herramientas. Observar el mensaje que se muestra en la Barra de estado. Para estar seguros que la operación de borrado ha sido efectuada, pulsar el icono “Blank Check Target Device Memory” y leer el mensaje que aparece en la Barra de Estado.


Para volcar el contenido del buffer guardado en la aplicación FLIP al microcontrolador ATxmega32C4 de Ay!Bot, pulsar en el icono de la Barra de Herramientas “Program Target Device Memory”, y, de nuevo, leer el mensaje que parece en la Barra de estado para comprobar que la operación de carga se ha ejecutado.


Por último, para comprobar que en el dispositivo se ha grabado de forma correcta el archivo.hex propuesto, en este caso Test_Robot.hex previamente guardado en el buffer, pulsando en el icono “Verify Target Device Memory”, la aplicación FLIP hace una comparación byte a byte de ambos contenidos y muestra el resultado en la Barra de Estado, comprobando si la carga ha sido la correcta.


En la parte izquierda de la ventana de FLIP, se encuentra la denominada “Cadena de Operaciones”. En este bloque de la interfaz gráfica, FLIP facilita las tareas de programación que se acaban de explicar una a una, facilitando que las tareas señaladas, sean ejecutadas en el orden adecuado, simplemente pulsando el botón “Run”. Pulsar “Run” implica ejecutar las cuatro tareas previamente explicadas: Erase // Blank Check // Program // Verify. Como es obvio se puede optar por ejecutar estas cuatro tareas una a una, utilizando secuencialmente los iconos correspondientes, o pulsando únicamente el botón “Run”.

Una vez cargado el programa en el microprocesador, para ejecutarlo tiene dos opciones:

  1. Pulse en el botón "Start Aplication" en la ventana de FLIP.
  2. Pulse el botón de "reset" (RST) de la plataforma.

Una vez que el programa Test_Robot está cargado en el microcontrolador, se pueden probar los diferentes componentes de la plataforma. Para ello, se ha diseñado una aplicación gráfica denominada Ay!Bot que se ejecuta desde el PC, haciendo doble clic en el icono correspondiente del escritorio. Aparece una ventana como la de la figura 2.6:


Figura 2.6. Aplicación Ay!Bot


Manteniendo el cable USB entre el PC y la plataforma conectado, pulsar en el botón “Conectar” para poner en contacto ambos elementos. En el espacio reservado para mensajes en la parte inferior de la ventana, aparecen los mensajes Buscando Ay!Bot y si todo ha funcionado correctamente Ay!Bot conectado. La interfaz es muy intuitiva y permite comprobar el funcionamiento de los elementos instalados en el robot.

  • Compruebe el funcionamiento de ambos bumpers. Simule manualmente en la plataforma una colisión. Observe cómo la aplicación de test recibe una señal lógica binaria “ON”/”OFF” ó “1”/”0” y modifica el icono de la interfaz.
  • Compruebe el funcionamiento de los sensores de infrarrojo (IR). Acerque o aleje manualmente los sensores de una superficie no reflectante de color negro. Observe el efecto sobre los iconos de la aplicación de test, cuando el sensor detecta un cambio en la superficie de reflexión de la señal y cambia el valor que el sensor envía de la señal lógica binaria “ON”/”OFF” ó “1”/”0”.
  • Compruebe el efecto del funcionamiento analógico del sensor de luminosidad LDR. Utilice la linterna del móvil para aumentar el efecto del sensor en proporción al nivel de luminosidad que detecta. En este caso la señal que se recibe del sensor no es de tipo lógico binario con solo dos valores posibles, sino que mide una magnitud analógica que necesita más valores y que se reflejan en la aplicación de test por medio de una barra continua.
  • Compruebe el funcionamiento de los dos pulsadores ubicados a la izquierda del sensor LDR. No confundir con los interruptores RST y Boot utilizados para cargar el programa. Presione ambos pulsadores y vea su efecto en la pantalla de la aplicación de prueba. ¿Cómo es en este caso la señal que recibe la aplicación de test, digital o analógica?

Desde la ventana interfaz de la aplicación Ay!Bot también se puede actuar sobre alguno de los elementos de la plataforma.

  • Compruebe el funcionamiento de los LEDs de control. Pulse en la ventana de la aplicación los pulsadores “Led 2” y “Led 1”.
  • Compruebe el buzzer de la plataforma. Seleccione una nota de la escala musical, seleccione el tiempo de duración y pulse el botón “Enviar”.
  • Compruebe por último el funcionamiento de ambos motores. Desplace la barra de desplazamiento asociada a cada motor para modificar la velocidad y el sentido de giro para ambos motores. Para cada motor, la aplicación señala el número de pasos (vueltas) dadas en la prueba, dato obtenido gracias a los imanes colocados y de la lectura de los sensores de efecto hall incorporados en las ruedas.

1 Para descargar la aplicación Atmel FLIP acceda a la web de Atmel: [1]


2 Esta operación es sencilla de hacer, (1) pulsar con un único dedo ambos interruptores y (2) sin dejar de pulsar el interruptor derecho (Boot), girando levemente a la derecha el dedo, liberar el interruptor izquierdo (RST).