Práctica 1 - Programación en Interactive C Objetivo Familiarizarse
Transcripción
Práctica 1 - Programación en Interactive C Objetivo Familiarizarse
Práctica 1 - Programación en Interactive C Objetivo Familiarizarse con el Handy Board; aprender a programar, utilizar comandos básicos y librerías de Interactive C. Ejercicio Previo Navegar en la página Web del laboratorio (http://cs.mty.itesm.mx/lab_robotica) y en la página Web del Handy Board. Descargar y leer el manual del Handy Board (The Handy Board Technical Reference) para conocer sus especificaciones técnicas, así como los aspectos relacionados con la programación del mismo. (El manual en formato PDF puede ser descargado de la página www.handyboard.com). Instalación del Software Instale el Interactive C en su computadora. Para obtener una versión reciente (Windows, Mac o Linux) y de forma gratuita puede ir al siguiente enlace: http://www.botball.org/ic/ Instale el programa (seleccione instalar solo las librerías del Handy Board), ejecútelo y siga las instrucciones: Escogemos el Handy Board y seleccionamos el puerto de comunicación (COM1 en caso de contar con puerto serial, o COM5/COM6 en caso de tener algún adaptador USBSerial). Si utilizamos el Handy Board por primera vez es necesario descargar las librerías, por lo cual seleccionamos la opción de Download Firmware. En la pantalla del Firmware se muestran una serie de pasos a seguir. 1.- Asegurarnos de tener todas las conexiones listas 2.- Verificar la comunicación; al presionar el botón de “Communication Check” en la interfaz debe parpadear el Led verde de la tarjeta de comunicación. 3.- Después de verificar la comunicación, es necesario poner el Handy Board en modo de “download”; esto lo logramos prendiendo el Handy Board mientras presionamos el botón de “STOP” en la tarjeta. 4.- Cuando el Handy Board tenga el LCD en negro y los leds BATT y PWR estén apagados, podemos presionar “Download Firmware” en la interfaz. Después de descargar las librerías estamos listos para trabajar en la pantalla de interacción: Realiza los siguientes ejercicios: Ahora podrás interactuar desde el Interactive C con el Handy Board, y desde la línea de comando puedes evaluar las siguientes expresiones una por una: 1+2; beep(); printf(" Hola Mundo! "); Al momento de presionar Enter después de la expresión, esta es compilada por el IC para verificar que no tenga errores; después es cargada a memoria del Microprocesador para su evaluación y resultado. ¿Podemos evaluar una expresión con diferentes tipos de datos (int, float, etc)?, por ejemplo 1+2.0; 1+(int)(2.0); En la segunda expresión se realizo un casting, ¿para que sirve? _____________________________________________________________________ También podemos imprimir en el LCD diferentes tipos de datos, por ejemplo: printf("\n Veinte %d",20); printf("\n Veinte %f",20.0); ¿Cuál es la diferencia entre ambas instrucciones? ______________________________________________________________________ Investigue como imprimir un número hexadecimal y un arreglo de caracteres (string): _______________________________ _______________________________ Si utilizamos los corchetes, podemos realizar más de una instrucción desde la línea de comandos: {int i; for(i=0; i<10; i++) printf("%d ",i);} Pero lo más conveniente es crear un nuevo documento (Botón “New” en la interfaz) y desarrollar un programa. Es necesario declarar una función principal: void main() { int i; for (i=0; i<10; i++) printf("%d ",i); } Ahora es necesario grabar nuestro código para luego utilizar la opción de “Download” y descargar el código en la memoria del Handy Board. Para correr el programa podemos utilizar la opción “Run Main”; otra opción valida es apagar y prender el Handy Board y podemos ver el resultado de la ejecución del programa en el LCD. Podemos apagar el Handy Board y volverlo a prender mientras presionamos el botón de “START” en la tarjeta, esto con el fin de encender el Handy Board sin correr el programa previamente cargado. 2da Parte Existen muchas funciones predefinidas que son cargadas cada vez que sincronizamos el Handy Board con el Interactive C. El Handy Board cuenta con dos botones y una perilla, y existen funciones para leer el valor de estos, por ejemplo, la siguiente función nos regresa el valor del botón “STOP” (1 si esta presionado ó 0 de lo contrario): stop_button(); La función que mide el valor de la perilla nos regresa un número proporcional a su posición, que va desde 0 hasta 255: knob(); Programa final Desarrolle un código que despliegue en el LCD continuamente el valor actual de la perilla. Para lograr este código es necesario que utilice un while, cuya condición sea que no este presionado el botón de STOP. Es necesario el uso de \n dentro de la función de impresión, para lograr sobrescribir. Necesitamos un pequeño retraso entre cada impresión, por lo cual debe utilizar la función sleep( ), que deberá investigar en el manual técnico. Otros tópicos importantes que debe estudiar son los siguientes: * Tipos de datos que maneja el IC, así como la forma de desplegar los diferentes tipos de datos en el LCD del Handy Board. * Variables locales y globales. * Operadores y su respectiva jerarquía (orden de evaluación). * Diferentes operaciones de condición (IF, WHILE, FOR). * Arreglos. * Funciones predefinidas que involucran mediciones de tiempo. * Multitasking ó la ejecución de varios procesos simultáneamente. * Alimentación El Handy Board cuenta con una batería que consiste de 8 pilas AA recargables de NíquelCadmio. En el apartado 7 del manual del Handy Board (Batterie Maintenance) se encuentran las indicaciones para cargar adecuadamente las baterías. Es importante verificar el modo de carga que se esta utilizando, ya que el modo ZAP es recomendado para cargar las baterías en solo 3 horas; si sobrepasamos este tiempo las baterías pueden sobre calentarse y fallar.