Temporizador de Arduino Pinewood Derby (2 / 3 paso)

Paso 2: El bosquejo del temporizador

Volviendo la atención el dibujo de PinewoodTimer, en primer lugar algunos parámetros claves se definen...

#define IR_THRESHOLD 200 / / auto detectar el umbral

#define STARTER_PIN / / a partir de interruptor de puerta = pin 2

#define QTI_PIN_OFFSET 5 / / carriles 0-2 = pernos de 5-7

#define NUM_LANES 3 / / número de carriles

#define TRACK_LENGTH 50 / / pies

#define escala 25 / / escala 1:25

#define espera 6000 / / ms para el tiempo de espera/reinicio de carrera

El IR_THRESHOLD debe establecerse dentro de la ventana definida por las condiciones ambientales de IR y QTI respuesta determinada con el bosquejo de PinewoodCalibrate. STARTER_PIN especifica el pin utilizado para el interruptor de la puerta de salida (al otro lado del interruptor está conectado a tierra) mientras que QTI_PIN_OFFSET determina las conexiones de pines de los sensores QTI. Varios seguimiento de configuraciones y tamaños de coche son compatibles con NUM_LANES, TRACK_LENGTH y escala. Finalmente, un tiempo de espera termina la carrera si, por ejemplo, un coche no termina o sólo dos coches carreras, etc..

La rutina de instalación sólo permite la terminal serie y establece el modo de pin para la puerta de arranqu.

void setup() {}

Serial.Begin(9600);

pinMode(STARTER_PIN,INPUT_PULLUP);

}

El bucle principal se comienza definiendo las variables utilizadas. El start_time es la base para el funcionamiento et (tiempo transcurrido) con la matriz finish_et [] guardar el tiempo de cada carril. La variable race_over cuenta cuántos coches han cruzado la línea de meta.

Después de borrar el finish_et [] para cada carril, "Listos..." aparece en el terminal y el bosquejo espera la carrera empezar. Cuando se abre el interruptor de arranque el bosquejo imprime "Go" y luego entrar en el bucle de tiempo principal. Dentro del bucle cada carril se comprueba la presencia de un rematador comparando su sensor QTI leyendo con el umbral. Una vez que se detecta un coche el tiempo transcurrido para lane se almacena. El bucle de temporización se ejecuta hasta que termine la carrera (es decir, coches de NUM_LANEs cruzan la línea de meta o se excede el tiempo de espera).

Incluir una declaración (comentada aquí) para mostrar el tiempo necesario para verificar todos los carriles, que a su vez determina cuántos carriles puede manejar el bosquejo. Observé el tiempo de lazo para una configuración de 3 carriles 9 y 10 milisegundos, o aproximadamente 3 milisegundos por carril. Si, por ejemplo, el tiempo por el carril es de 3 MS y un coche lleva 30 milisegundos para cruzar la línea de meta, el bosquejo puede apoyar teóricamente hasta 10 carriles. Sin embargo, un margen se deberá acomodar, por ejemplo, un coche especialmente rápido (o corto). Para realmente probar la capacidad del carril puede aumentar NUM_LANES y ejecutar ensayos repetidos para determinar en qué momento comenzará a 'perder' un coche rápido, cruzando la línea de meta. Tenga en cuenta que usted puede hacer esto para cualquier NUM_LANES utilizando sólo un único coche/carril.

void loop() {}

largo start_time, et = 0, finish_et [NUM_LANES];

int race_over = 0;

int i;

para (i = 0; i < NUM_LANES; i ++) {}

finish_et [i] = 0;

}

Serial.println("Ready...");

mientras (digitalRead(STARTER_PIN)==0) {}

}

Serial.println("Go!");

start_time = millis();

mientras que ((race_over < NUM_LANES) & & (et < TIMEOUT)) {}

et = millis ()-start_time;

para (i = 0; i

Si (RCTime (+ QTI_PIN_OFFSET) < IR_THRESHOLD) {}

Si (finish_et [i] == 0) {}

finish_et [i] = y;

race_over ++;

}

}

}

Serial.println(Millis()-(et+start_time));

}

Una vez terminada la carrera se muestra el tiempo de finalización para cada carril. Usando el TRACK_LENGTH y escala también muestra la velocidad media en la escala de millas por hora (gente se excitan cuando su coche va 250 MPH: =). Después se muestran los resultados de la carrera el bosquejo espera a la puerta de salida cerrar en preparación para la próxima carrera. La instrucción delay asegura la puerta de salida interruptor rebote no activen un reinicio inmediato.

Serial.println();

para (i = 0; i

Serial.Print ("carril");

Serial.println(i+1);

Serial.Print ("tiempo");

Serial.println(float(finish_et[i]/1000.0));

Serial.Print ("velocidad");

flotador de fps = TRACK_LENGTH/(finish_et[i]/1000.0);

flotador mph = ((fps * 3600.0) / 5280.0) * escala;

Serial.Print(int(mph));

Serial.println ("MPH");

Serial.println();

}

mientras que (digitalRead(STARTER_PIN)! = 0) {}

Delay(50);

}

Todo lo que queda es la rutina de RCTime cortesía de paralaje (http://learn.parallax.com/KickStart/555-27401), que adquiere la lectura del sensor QTI. Funciona midiendo el tiempo de descarga de un condensador a través de un resistor variable (dependiendo de la cantidad de IR reflejada).

{} (int sensorIn) de largo RCTime

duración = 0;

pinMode (sensorIn, salida); Hacer pin salida

digitalWrite (sensorIn, HIGH); Perno de alta (descarga de condensador)

Delay(1); Esperar 1ms

pinMode (sensorIn, entrada); Hacer pin entrada

digitalWrite (sensorIn, bajo); Apagar pullups interno

while(digitalRead(sensorIn)) {/ / espere pin ir bajo

duración ++;

}

vuelta duración;

}

Artículos Relacionados

Carrera de Pinewood Derby

Carrera de Pinewood Derby

Aquí en Holanda no sabemos realmente el Pinewood Derby. Pensé que sería divertido hacer una versión holandesa anual.Para que esto suceda, tengo que traducir las dimensiones americanas y las normas en algo que funcionara para nosotros. El primer probl
Pinewood Derby con LEDs programables

Pinewood Derby con LEDs programables

Tome otro en un automóvil Pinewood Derby con luces, esta vez con un Atmel ATtiny2313microcontrolador en (junto con un lío de cables). Yo no he comprobado, pero un brutocálculo sugiere que las luces se deben ejecutar durante aproximadamente 4 horas co
Ducto ventilador Pinewood Derby coche

Ducto ventilador Pinewood Derby coche

Cuando mi lugar de trabajo (Adobe) anunció una competición de Pinewood Derby decidí participar en la categoría outlaw/ilimitado. Un buen número de años que hice un coche mediante un propulsor y motor eléctrico re-purposed de un planeador RC, y esta v
Pinewood Derby Police car

Pinewood Derby Police car

es temporada de Pinewood Derby!  Este año estoy construyendo uno con un chip arduino.  Este coche cuenta con LED de cabeza y la cola.  También tiene luces intermitentes rojas y azules que son controladas por el chip de arduino.Te voy a mostrar cómo c
Pinewood Derby coche detallando Ideas

Pinewood Derby coche detallando Ideas

Algunos niños (o padres) podrían cuidado un coche rápido. Para ellos, todo es cuestión de estilo...En este instructable, voy a compartir los trucos que utilicé durante mi primera experiencia decoración coches de pinewood derby con mis hijos. Mi coche
Añadiendo peso a un automóvil Pinewood Derby de forma rápida y barata.

Añadiendo peso a un automóvil Pinewood Derby de forma rápida y barata.

que buscaba para que una manera rápida, fácil de añadir peso a un automóvil Pinewood Derby. Se puede utilizar plomo o tungsteno, pero son relativamente caros (1-2 dólares por onza), vienen en formas extrañas, y tienes que encontrar una manera para co
Pinewood Derby trofeo soporte

Pinewood Derby trofeo soporte

se está volviendo a ser esa época del año donde empezamos a trabajar en nuestros coches de Pinewood Derby para nuestros Lobatos y Lobeznas.¿Sin embargo, después de todo el trabajo en la construcción y su coche de carreras, cómo usted planea mostrar s
Pinewood Derby coches inspirados en LEGO Ninjago

Pinewood Derby coches inspirados en LEGO Ninjago

nuestro Cub Scout Pinewood Derby anual (http://en.wikipedia.org/wiki/Pinewood_derby) fue una oportunidad para mis seis años de edad combinar dos de sus cosas favoritas: hacer las cosas y LEGO, en particular el mundo basado en la historia de LEGO Ninj
Cómo construir una inmejorable Pinewood Derby Racer

Cómo construir una inmejorable Pinewood Derby Racer

en este video muestro cómo construir una inmejorable Pinewood Derby Racer.Os mostramos los trucos y que se utilizó para ganar la carrera de Derby local de madera de pino.No dude en utilizar estos secretos de la velocidad para tomar su coche de pinewo
Coche de Bob-omb pinewood derby (impresión 3D)

Coche de Bob-omb pinewood derby (impresión 3D)

para el Derby de Pinewood es vuelta de la esquina y quieres hacer el mejor coche para la carrera. Te das cuenta que no quieres que tu coche de madera y las plantillas de madera cortadas mirada pegajosas. Luego te das cuenta de que puede hacer su coch
Automóvil HMMWV (Humvee) Pinewood Derby

Automóvil HMMWV (Humvee) Pinewood Derby

es Pinewood derby temporada para los Lobatos y Lobeznas. Como padre de un Weblo y un líder del Den, espero darle sus ideas en la construcción de su coche. Recuerde, el coche está destinado a ser un proyecto de hijo del padre. Ayude a su hijo a hacer
Pinewood Derby auto con LEDs y Jimmy Neutron

Pinewood Derby auto con LEDs y Jimmy Neutron

Sabes tu problema en cuando empezar a preocuparse por el software en automóvil Pinewood Derby de su hijo!Este año decidí dejar de intentar competir con las "cabezas de engranaje" en nuestro Pack de Cub Scout. Hay demasiadas variables cuando se t
Pinewood Derby coche en Shopbot

Pinewood Derby coche en Shopbot

donde mi hijo compite en Pinewood Derby, ellos tienen unas normas bastante estrictas en lo que los chicos deben hacer en sus propios automóviles el trabajo.  Las divisiones de los niños tienen reglas estrictas acerca de lo que puede y no se puede hac
Compartimiento de Pinewood Derby coche peso

Compartimiento de Pinewood Derby coche peso

este instructable le mostrará cómo crear un "bolsillo" debajo de coche deby su hijo peso fácil adición/eliminación.Obtener la más cercana posible a la máxima5.0 oz.Paso 1: Adquirir todas las piezas Materiales:1 juego de Ea. Pinewood Derby en caj