El Microbot

El Microbot

 

La placa que realizamos en la unidad anterior nos permite la conexión entre el el microcontrolador y el Hexbug. El microcontrolador actuará sobre el motor del Hexbug y recogerá información de las antenas. Estas tareas se realizarán con mucha asiduidad en nuestros programas, por lo que es práctico programar funciones específicas.

El motor debería tener 3 funciones básicas: avanzar, retroceder y detenerse. Utiliza dos pines como salida, conectados a un puente en H, de forma que la relación entre los pines y el estado del motor es:

 

Pin A

Pin B

Motor

0

0

Apagado

0

1

Avance

1

0

Giro

1

1

¡CORTOCIRCUITO!

Hay que tener cuidado con activar ambos pines de salida cortocircuitaremos el puente, podemos quemarlo. De ahí otra de las ventajas del uso de funciones: son formas seguras y uniformes de acceder a elementos de bajo nivel.

Otra función interesante del motor de cara a futuros programas, es comprobar en qué estado está (si avanza, gira o está detenido). Igualmente podríamos testear los pines en cada ocasión, pero simplifica el código y es más práctico disponer de funciones que ya lo realicen.

Ejercicio

En la unidad anterior recomendamos utilizar pines entre el 3 y el 7 para las antenas, de manera que pudiesen generar interrupciones. La tarea repetitiva que tendríamos para las antenas sería configurarlas para que activen interrupción y comprobar su estado. Claro que, para cada aplicación concreta habrá que programar también su correspondiente rutina de interrupción. Vamos a programar las funciones del motor:
Realiza una librería que contenga las siguientes funciones del motor.
  • configurar: configura los pines conectados al motor como salidas de proposito general.

  • para: inhibe el puente en H.

  • avanza: polariza en directa el puente en H.

  • girar: invierte la polaridad del puente en H.

  • comprobar si avanza: devuelve verdadero si el puente en H está en "avanzar"

  • comprobar si gira: devuelve verdadero si el puente en H está en "girar"

  • comprobar si esta parado:  devuelve verdadero si el puente en H está desactivado

De igual forma, existen ciertas tareas que realizaremos con mucha frecuencia con la eZ430-RF2500T. Te proponemos ahora programar las siguientes funciones de la placa eZ430-RF2500T:

  •   Para los leds (verde y rojo): configurar, apagar, encender, conmutar.
  •   Para el botón: configurar, comprobar estado.
  •   Para la interrupción del botón: habilitar, deshabilitar, conmutar flanco, comprobar, limpiar.
  •   Para los contadores (A_CCR0, A_CCR1, B_CCR0, B_CCR1): configurar, contar, parar.
  •   Para las interrupciones de los contadores: habilitar, deshabilitar, limpiar.

Obra publicada con Licencia Creative Commons Reconocimiento 3.0