SGCG

…esto no es un subtítulo…

Ir a: contenido categorías calendario archivo suscripción

Volver arriba

Placa Buggy 1: un cochecito teledirigido (7)

2012-06-12

En anteriores artículos vimos la presentación y los requisitos de diseño del cochecito teledirigido Placa Buggy 1; la configuración general; el concepto electrónico general; la suspensión, la planta motriz y el sistema de actuación y alimentación de dicha planta; las señales acústicas y luminosas; y el sistema de control remoto. Hoy vamos a plantear la estructura de la lógica programada en el microcontrolador para manejar el cochecito en reacción a las señales del mando a distancia.

Descripción del programa de control

El programa de control realiza unas pocas funciones:

Una acción importante del bucle principal consiste en encender y apagar los motores de forma intermitente muchas veces por segundo. Esto sirve para que los motores no giren a máxima velocidad, ya que no tienen mucha reducción y el coche avanza excesivamente rápido en régimen continuo. Con más reducción no haría falta esto.

Configuración inicial

Lo primero que hace el programa es asignar valores iniciales a las variables de trabajo y configurar las líneas de entrada y salida, el temporizador y el mecanismo de interrupciones. Después de esto, pasa al bucle principal.

Bucle principal

El bucle principal es muy sencillo:

  1. Si la actual medida ya ha sido evaluada, ve al bucle de intermitencia de los motores:
    1. Si el modo no es de encender motores, vuelve al bucle principal.
    2. Espera un poco.
    3. Decrementa un contador.
    4. Si el contador llega a cero, conmuta el estado de encendido o apagado de los motores y pon la cuenta atrás de nuevo en marcha.
    5. Si no, vuelve al bucle principal.
  2. Si hay una nueva medida, evalúala:
    1. Marca la medida como ya evaluada.
    2. Decide qué orden se ha recibido en función de la cuenta de pulsos:
      1. Si la cuenta de pulsos está dentro del rango correspondiente a la marcha atrás, la orden es de marcha atrás.
      2. Lo equivalente para las demás órdenes (marcha adelante, giro a la izquierda, giro a la derecha, encendido de la bocina y encendido del faro frontal).
    3. Verifica si la lectura es estable:
      1. Si la orden deducida de la cuenta de pulsos actual coincide con la orden deducida de la cuenta de pulsos anterior:
        1. Decrementa una cuenta atrás.
        2. Si la cuenta atrás llega a cero, la lectura es estable.
        3. Si no, la lectura todavía es inestable.
      2. Si es diferente:
        1. Pon la cuenta atrás en su valor inicial.
        2. La lectura es inestable
      3. Si hay una lectura estable aplica la orden:
        1. Si la orden es la de marcha atrás, activa las líneas correspondientes.
        2. Lo equivalente para las demás órdenes (marcha adelante, giro a la izquierda, giro a la derecha, encendido de la bocina y encendido del faro frontal).
    4. Vuelve al bucle principal.
  3. Vuelve al primer paso.

La cuenta de pulsos se hace mediante interrupciones. Cada vez que se ejecuta una de estas interrupciones, el bucle principal queda pausado temporalmente. Hay interrupciones por cambio de estado de la señal de entrada (cuando la señal infrarroja se enciende o se apaga) y por fin de la cuenta de un temporizador cíclico de frecuencia fija.

Interrupción por cambio de nivel de la señal de entrada

Esta interrupción se ejecuta cuando la entrada cambia de nivel, es decir, cuando el receptor detecta que se ha encendido o apagado la iluminación infrarroja. La secuencia a seguir es muy sencilla:

  1. Si la lectura del sensor es alta, incrementa un contador temporal de pulsos.

Interrupción por final de la cuenta del temporizador

La secuencia es igualmente muy sencilla:
  1. Guarda el valor del contador temporal de pulsos como la actual cuenta de pulsos.
  2. Marca la lectura como no evaluada.

Otros artículos de esta serie

  1. Presentación y requisitos de diseño.
  2. Configuración general.
  3. Concepto electrónico general.
  4. Suspensión, planta motriz y sistema de actuación y alimentación de dicha planta.
  5. Señales acústicas y luminosas.
  6. Sistema de control remoto.
  7. Lista de componentes.
  8. Código fuente, planos, instrucciones de montaje e instrucciones de uso.

Categorías: DIY, Informática

Permalink: https://sgcg.es/articulos/2012/06/12/placa-buggy-1-un-cochecito-teledirigido-7/