Control de tiempos para Karting

Hola. Sí, el esquema es el de mi modelo de receptor.

El osciloscopio lo puedo conseguir para las pruebas sin problema.
Lo único es que no podré hacerlas hasta el lunes, porque estaré fuera.
Si capta algo de actividad, tendría que que ver como adaptar impedancias, o aumentar el nivel de señal.

vaya.. espero que seas hábil con el manejo de señales de RF porque ellos si que saben hacer amplificadores para antenas. Por ahi está la cosa.

Como te dije antes, antes y yo, no nos llevamos bien salvo cuando las compro.

Pero usando San Google puse : 13.56 amplifier y ohhh sorpresa... mucha info que puede ayudarte

y mejor aún buscaba un simple amplificador y mira este enlace

Muchas gracias por la info surbyte. Ahora estoy fuera, pero en cuanto vuelva me pongo con ello.

Tengo pedido el IRFD110 para hacer el amplificador del esquema que me facilitaste. En cuanto lo tenga, y prepare la placa pondré más novedades. Mientras tanto, estoy trasteando con los módulos de 433MHz, por si me hace falta alguna alternativa al RFID.

Bueno, os voy a comentar la manera que se me ocurrió, mientra espero a que me llegue el IRFD110.

En la meta colocaremos:

Un transmisor de 355MHz
Un HT12E (Para establecer el código único a enviar de cada kart)
Un receptor de 433MHz
Un HT12D (Para decodificar la señal captada)
Un arduino UNO

En el transponder de cada kart:

Un receptor 355MHz
Un emisor 433MHz
Un HT12E
Un arduino mini o nano (el que salga mejor de precio)

Funcionamiento teórico:

El transmisor de 355MHz de la meta, emite una señal con el código único de cada kart en intervalos de 20-30mS (envía el 1, espera 20mS, envía el 2.....)

Esta señal, la capta el receptor de 355MHz del kart, y activa un contador en su arduino mini. Se pone en modo "espera", hasta que capta que en la señal de 355MHz va incluido su código.
En ese momento, detiene el contador del arduino, y transmite a 433MHz.
En esta señal, se incluye:
El código único de su kart y el tiempo que le marca el contador del arduino mini.

En la meta, pasa lo siguiente:

El receptor de 433MHz, recibe esa señal, y la envía al arduino UNO, para que este la haga llegar al PC.
El programa del PC, es el que se encarga de hacer el cálculo, restandole el tiempo del contador del arduino mini, al tiempo de recepción de la señal.

De esta manera, establezco un orden de envío de los transponder, evitando la colisión de datos. Además, no es crítico que tengan que enviar justo encima del loop, porque estos módulos transmisores, tienen un alcance muy largo (del orden de 1,5Km). Limitaré de todos modos, para que este alcance no supere los 3-4 metros.

Que os parece la idea?

No se si tu idea funcionará pero lo único que probaría es si no te comes tiempo detectando tags? De eso se trata no? De ser extremadamente preciso.

Asi que lo que te sugiero que hagas es, simultáneamente con TODA LA TOPOLOGÏA sugerida, conectas simples conexiones entre el emisor y receptor via CABLES y determinas demoras si las hubiera.

Solo para estar seguro.

De acuerdo. Estos días conseguiré los arduino, y haré las pruebas.

El tema de la colisión de emisiones es lo que me está rompiendo la cabeza, porque la detección individual con un emisor y un receptor de 433MHz, funciona perfectamente.
Por eso, mirando los manuales de RFID, en los que solucionan las colisiones estableciendo orden de transmisión, se me ocurrió intentarlo de esta manera, porque no doy encontrado un modo de detectar una colisión de emisiones en el receptor.

En los módulos que tengo de 433MHz, no detecto diferencia entre no estar recibiendo nada y emitir dos a la vez, comprobando con osciloscopio en el receptor. Se capta una pequeña interferencia (un poco distinta a la que tiene cuando no está recibiendo nada, pero no creo que la pueda usar).

Lo que yo haría es esto.
Basada en la resolución de tu cronómetro 1mseg o 100uS, generaría dos pulsos separados por 1mSeg o 100uSeg y vería si puedo detectarlos. Eso asegura el funcionamiento del sistema, no te parece?

Sí, es lo que voy a probar. A reducir al máximo el tiempo entre los envíos. De todos modos, según la teoría (que luego ya se verá..), el segundo envío desde la meta, no es tan crítico, porque el tiempo válido será el de la primera recepción en el transponder, que es el que se queda "almacenado" esperando a poder ser enviado al receptor de meta.
Es decir, la señal de 355MHz está siempre activa, no hace pausas, y es la que recibirán los trasponders al pasar.
Lo que cambia es el código que transmite, que es el que permite al transponder, en su segunda recepción, el poder transmitir o no.

Por eso, creo que los delays que puedo tener, serán por el proceso de datos de la circuitería y el arduino mini. Pero como será para todos igual, quedaría compensado.

De todos modos, esto es la teoría, que una vez puesto en el banco de pruebas, veremos lo que me encuentro.

Bien... es un tema muy interesante y me confieso que estoy aprendiendo contigo sobre la marcha. Lo sigo porque me gustó la idea en su momento pero la dejé de lado porque lo consideré fuera de mis capacidades.
Ahora que tu estás detras del tema, me da la posibilidad de ver hasta donde pueden llegar las cosas.

Dices que el tiempo queda "almacenado" donde?
En el controlador del lazo, ahi es donde queda a la espera?
Pero ya resolviste el problema de impedancias y/o sensibilidad que tenías?

El tiempo queda almacenado en el arduino mini que lleva el kart.

Imagínate que el arduino del kart recibe la primera señal de 355MHz a las 21:30:00 (por ejemplo) y pone en marcha un temporizador (con código en el arduino, supongo que lo podré hacer).

Cuando recibe la segunda señal de 355MHz (la que corresponde con su nº de identificación), el temporizador se para, y transmite a 433MHz. Lo que transmite es un código, en el que se incluye su nº de identificación y el tiempo que contó el arduino. Imaginemos que esto pasa a las 21:30:01.

Cuando el receptor de 433MHz de la meta recibe esta señal, se la envía al pc que tiene el programa de tiempos, y este separa el nº idenficador y el tiempo contado.
Luego lo que tiene que hacer es restarle a las 21:30:01 el tiempo contado, que es este caso es de 1seg.

Y ya tengo el tiempo de la primera recepción.

Para el tema de las impedancias, lo que tengo que hacer es anular la "cajita negra" del loop, y utilizar el cable que cruza la pista como dipolo para el emisor de 355MHz.

Luego tendré que poner, por ejemplo, en el semáforo, la antena del receptor de 433MHz.

Lo interesante además, de utilizar los arduino mini en los karts, es que si lo anterior llega a funcionar bien, voy a tratar de incorporar un display LCD en el volante de cada uno, para poder seguir los tiempos desde el kart.
Tengo el código para hacerlo con un arduino UNO, pero supongo que para el mini no será muy diferente (soy muy nuevo en arduino :grinning: )

Bien, me gusta la idea pero simplemente usa millis() o micros() (ambos son unsigned long y cubren buena longitud de tiempo que no te hará falta) y no tiempo como has dicho porque las lecturas serán proximas asi que sería importante usar una medición precisa no en segundos sino en mseg o useg.

Yo tengo un proyecto de laptimer GPS, que presento en el arduino day, y uso millis para contar el tiempo por vuelta del vehículo. Con millis es más que suficiente.

Y como resuelves dos corredores proximos.
Tienes una resolución de 1 mses, o sea puedes detectar dos vehículos en esa diferencia de tiempo no?

En mi proyecto da igual los corredores que haya. Los laptimers son autónomos. Detectan el paso por meta por coordenadas GPS y muestran el tiempo por vuelta en una pantalla. No es lo mismo que un transponder, pero a lo que me vengo a referir, es que para competición, con tener el tiempo en minutos, segundos y centésimas, es más que suficiente. Yo uso millis, pero muestro en pantalla centésimas.

Si, por supuesto, utilizaré el tiempo en milisegundos. Lo de antes era sólo un ejemplo.

Es interesante también el tema del GPS. Yo para mostrar los tiempos en las pantallas del volante, utilizaré seguramente el arduino mini del transponder.

El ejemplo que encontré, para lo de la pantalla, también es autónomo (sólo marca los tiempos en el kart, no los transmite), pero lo que utiliza, es una banda magnética en la meta, y un detector magnético conectado al arduino del transponder.

Hola.
No sé si entendí bien tu planteamiento, pero lo que echo en falta es precisamente lo que comentas en el último post: una señal justo al paso por meta, porque decías que el transmisor de meta emite en intervalos de 20ms el id de cada vehículo, y éste iniciaba la cuenta pero entonces, ¿el inicio de la cuenta de qué manera está sincronizado con el paso por meta? ¿no?
Supongo que es que no he entendido todo tu planteamiento.

En el paso por meta, se pone la señal fija de 355MHz. Lo que va a cambiar en intervalos de 10 o 20ms es el ID que transmite.
El inicio de cuenta se hace, porque el integrado HT12D tiene los 4 pines de código(10, 11, 12 y 13) y uno de transmisión recibida(el 17 VT) (aunque no coincida con el ID del kart).
Cuando este último pin se activa (cuando recibe la señal, independientemente del ID), se pone en marcha el contador. Y cuando el ID que se recibe es igual al ID del kart, detiene el contador y emite a 433MHz.

Si se diera la casualidad, de que el primer código recibido coincidiese con el del kart, transmitiría sin activar el contador.

¿Entonces, entiendo que la señal de 355MHz es de corto alcance para que sólo sea recibida cuando el coche está cerquita de la línea, supongo?

Sí. La idea es que transmita desde justo debajo de la meta, hasta un metro o dos después de pasarla. Tendré que jugar con la colocación del dipolo.