Práctica 3: Control del Robot con Encoders





Enunciado:

En esta práctica vamos a colocar al menos un encoder en el robot. Este elemento nos va a permitir calcular el ángulo girado por una rueda o lo que es lo mismo medir la distancia recorrida o girada por el robot. La utilidad que le vamos a dar es modificar el programa de la práctica 2, ahora en lugar de dar órdenes al robot y esperar un tiempo medido en el PC, le mandaremos al robot la orden a realizar y el número de pasos del encoder. También podremos ampliar el programa para grabar una secuencia y luego reproducirla.

Para poner en marcha un encoder lo que tenemos que hacer es colocar en la cara interior de una rueda un circulo con segmentos blanco-negro alternados, podéis ver uno en la figura siguiente. Luego colocaremos un sensor CNY70 (Podemos usar uno de los que se usaron para seguir la línea negra de la P1) orientado hacia la rueda, por ejemplo pegándolo en el propio futaba.




El programa del PIC tendrá que leer el sensor y contar cuantas transiciones de blanco a negro y viceversa se producen. La primera forma de hacerlo será por pulling, pero si queremos hacer la práctica avanzada habrá que hacerlo por interrupciones.

Evaluación:

La práctica se evaluará oralmente el día de la entrega. Los criterios de puntuación son los siguientes, y la nota máxima un 10:

Entrega:

La práctica se entregará la Semana del 21 de Mayo de 2007

Pasos para realizar la práctica básica (5 puntos):

  • 1. Imprimir un círculo codificado con impresora láser para que funcione con los CNY70.

  • 2. Hacer un programa para el microcontrolador que espere a recibir una trama por el puerto serie. La trama tendrá al menos tres bytes:
    - 0xFF principio de trama.
    - Byte que indicará la dirección (equivalente al de las teclas de la práctica anterior).
    - Byte que indicará las transiciones a leer en el encoder. Ojo, el rango irá desde 0 hasta 0xFE para no coincidir con el principio de trama.

  • 3. Para probar este programa podemos hacer que al recibir la trama completa la devuelva por el puerto serie. Usando un programa terminal que permita mandar y leer en hexadecimal podremos probar el funcionamiento correcto. En linux podemos usar el g-scterm y en windows el VBHexTerm. Ojo, estos programas no están instalados en el laboratorio.

  • 4. Hacer el módulo del programa que lee el sensor CNY70 y que va registrando las transiciones de negro a blanco y viceversa detectadas.

  • 5. Hacer el programa del PC que lee un fichero donde habremos guardado las intrucciones para el robot. Será como el de la P2 pero en lugar de contar tiempo lo haremos con transiciones. Para sincronizar el programa del PC y el del microcontrolador tendremos que hacer que cada vez que se envía una trama desde el PC, éste se quede esperando a recibir la confirmación de trama ejecutada desde el microcontrolador, para poder enviar la trama siguiente.

Enlaces:

Ejemplo de instalación de un Encoder por Javier de Lope




[Página principal del laboratorio]

Andrés Prieto-Moreno Torres

Última modificación: 10-abril-2007