Acciones

Sesión 4.- Programación del Ay!Bot

De Ay!Bot

Con las sesiones previas desarrolladas, se debería estar en disposición de abrir en Atmel Studio un proyecto nuevo de programación para la plataforma Ay!Bot, en el que poder aplicar todo lo aprendido hasta este momento.

En el desarrollo de este nuevo proyecto personal, puede aplicar las estructuras básicas de programación descritas en las sesiones anteriores, o cualquier otra que pudiera conocer o haber utilizado previamente, utilizando como variables las funciones encapsuladas facilitadas u otra variable que pueda necesitar para su desarrollo.

El objetivo a conseguir en este nuevo proyecto es ganar el concurso que se desarrollará al final de las jornadas y que se puede leer en la documentación de la Sesión 6.- Concurso Final.

Acceda a la aplicación Atmel Studio y cree un nuevo proyecto. En esta ocasión seleccione como tipo de proyecto el rotulado como Ay!Bot. Concurso.


Figura 4.1.- Pantalla de selección del proyecto tipo Ay!Bot. Concurso


En la casilla Nombre, ponga un nombre identificativo para su proyecto personal y especifique el directorio que crea conveniente para guardarlo.

Recuerde que debe eliminar el archivo "main.c" ubicado en le programa raiz y mantener el programa con el mismo nobre que se encuentra en la carpeta "src/main.c"

Abra para editarlo y completarlo el programa "main". En la ventana de edición se muestra el contenido de este programa como se muestra en la figura adjunta.


4.2.- El programa principal main.c


La primera línea que aparece en el código ya es conocida y hace referencia a la librería ConfigPlaca.h, desarrollada para la plataforma y almacenada en el directorio ayBot del proyecto:

  • "#include ayBot/ConfigPlaca.h"


  • "iniciarRobot(true)"

Entre los comandos e instrucciones que se encuentran entre la llave de apertura "{" y cierre "}" del programa "main", la primera línea de código también es conocida y es la llamada a la función iniciarRobot(true). Esta función está programada para inicializar todos los elementos de la plataforma, excepto la conexión por Bluetooh.

A continuación nos encontramos con una línea nueva, programada específicamente para inicializar de forma individual, un código para cada plataforma necesario para la conexión Bluetooh.

  • "Bluetooth_init("HCTron","123456")"

Esta función necesita de dos parámetros, el primero "HCTron", es el nombre identificativo de la plataforma, debe personalizar este nombre para poder diferenciar su plataforma del resto a la hora de inicializar la comunicación.

El segundo parámetro "123456", es un identificador de seis dígitos secreto, sirve para establecer una comunicación privada entre la plataforma Ay!Bot, identificada por un nombre, y el dispositivo portátil que le enviará las ordenes vía Bluetooth.

A continuación, el programa principal llama a una nueva función:

  • "remotoConcurso()"

Esta función sin parámetros, está previamente programada y prepara Ay!Bot para recibir órdenes de navegación desde un dispositivo portátil, por medio de una conexión Bluetooth.

La función "remotoConcurso()" es bloqueante, es decir no permite continuar la ejecución del programa "main", mientras que desde la unidad portátil no se pulse el botón "Concurso", botón que permite comenzar con la ejecución del código escrito a continuación, código destinado al algoritmo de salida del recinto del concurso.

La siguiente línea de códido también es conocida:

  • "while(true)"

La ejecución de este comando activa la ejecución de un bucle de forma ininterrumpida. El bucle contien a todas las instrucciones y comandos incluidos entre la llave de entrada "{" y la llave de salida "}", llaves incorporadas en el texto a la espera del código.


Nota: Las dos funciones anteriores, "Bluetooth_init("HCTron","123456")" y "remotoConcurso()", solo se utilizan durante la Sesión 5.- Manejar Ay!Bot por control remoto y durante la Sesión 6.- Concurso Final, por tanto es recomendable comentar ambas líneas utilizando el comando "//",mientras que se esté programando el bucle"while", con el algoritmo diseñado para salir del recinto para el concurso.