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
-
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.