martes, 20 de octubre de 2015

Detalles Modelización de Plaza

Como hemos visto en la sesión de hoy , la semana que viene conectaremos las dos plazas con sus arduinos por un bus serie I2C/SPI  con un servidor que por ahora es un arduino con un lcdkeypad.
En este keypad podremos mostrar la información de debug desde los sensores, etc...

Esta es la libreria .

Este keykad tiene un conjunto de botones que  permiten manejar el menú con facilidad llamando a la función : waitButton de ejemplo en el script: 

int waitButton()
{
  int buttonPressed; 
  waitReleaseButton;
  lcd.blink();
  while((buttonPressed=lcd.button())==KEYPAD_NONE)
  {
  }
  delay(50);  
  lcd.noBlink();
  return buttonPressed;
}

// esta función hay que llamarla justo después de procesar un botón para que
// no realice la misma acción hasta que se suelte y se vuelva a pulsar el botón

void waitReleaseButton()
{
  delay(50);
  while(lcd.button()!=KEYPAD_NONE)
  {
  }
  delay(50);
}

Ejemplo:

buttonPressed=waitButton();
while(!(buttonPressed==KEYPAD_SELECT || buttonPressed==KEYPAD_UP || buttonPressed==KEYPAD_DOWN));
    lcd.setCursor(0,1);
    lcd.write(buttonPressed==KEYPAD_SELECT?1:' ');
    lcd.write(' ');
    lcd.write(buttonPressed==KEYPAD_UP?2:' ');
    lcd.write(' ');
    lcd.write(buttonPressed==KEYPAD_DOWN?3:' ');
    delay(100);
    waitReleaseButton();
    if (buttonPressed==KEYPAD_UP)
    {......Lo que se quiera hacer

Para imprimir en el lcd están las funciones:


lcd.print("Is it ");
lcd.setCursor(0,1);

El shield tiene duplicadas los pin digitales y analógicos. A un pin con PWM irá el serio para abrir y cerrar la barrera y los sensores de la presencia en la puerta de entrada y salida irán a uno analógico

El programa inicialmente debe mostrar en pantalla el estado del parking (puede mostrarse de la forma que se quiera o alternar valores)

P1--> ko p2-->PDTE
Vehículos :2 

Significa que hay un coche aparcado y hay otro que acaba de entrar

P1--> ok p2-->ko
Vehículos :2 

Significa que hay un coche aparcado y hay otro que acaba de salir de la plaza y aún no ha salido del parking

Cada plaza tendrá dos leds, indicando (por ahora) ocupado o libre. Deberá tener una función de calibración inicial que en condiciones de luz y con distintas posiciones del coche calcule los valores de offset y determine cuando hay vehículo y cuando esta vacío. 

0- Calibrado de sensores, dependiendo de una entrada (botón, o jumper ) calibrar los sensores. Debe medir la luz en vacío, con un coche  largo, corto, alto y bajo. Para elllo irá mostrando con impulsos el estado de la calibración (un impulso de los dos , para el primer caso, se pone a verde fijo cuando termina bien, si hay cualquier problema se pone a rojo y repite pasado 5 segundos. dos impulsos para el segundo caso , etc...

1-Modelar cada plaza con un arduino que determina en una salida digital (un led verde y uno rojo) si la plaza está ocupada , reservada o libre en base a los sensores de la plaza. La señal se debe tomar con técnicas de eliminación de ruido , probando varias de ellas y los parametros más indicados (media movil ,estadistica, etc...). Inicialmente se realizará con lógica CRISP (if valorSensor1 > 999  y valorSensor 2 < then.....) 









No hay comentarios:

Publicar un comentario