Fondo
Johnny Lee demostró varias ideas interesantes (detalladas, por ejemplo, en este video y en esta página ) que aprovechan la cámara infrarroja de un Wii-Remote. La cámara IR tiene una resolución de 1024X768 y está diseñada para rastrear la posición de los 4 puntos iluminados por infrarrojos más brillantes en su vista, a 100 Hz. Cada uno de estos 4 "puntos" podría ser un marcador en movimiento en forma de, por ejemplo, un LED infrarrojo: la emisión del LED es detectada por la cámara, que a su vez emite a 100 Hz, los datos de posición de la "mancha" IR. observado. Lo que permite un sistema de seguimiento de posición de bricolaje rápido y económico.
Problema
En la configuración anterior, si cada LED IR no solo se enciende, sino que también se hace IDENTIFICABLE de alguna manera, daría lugar a muchas posibilidades interesantes. Por ejemplo, esto permitiría realizar un seguimiento continuo de la posición de cada marcador en el espacio de forma única (es decir, con conocimiento de qué blob es cuál). Además, tener cada marcador LED IR único también significa que la configuración podría extenderse a cualquier número de puntos (digamos 50 marcadores) en lugar de solo los 4 puntos más brillantes.
La pregunta es: suponiendo que comience conectando cada marcador LED IR a un microcontrolador, ¿cuál sería la forma más eficaz de ampliar la configuración anterior para que cada marcador LED IR se IDENTIFIQUE de forma única? Describo aproximadamente un enfoque a continuación: ¿hay algún enfoque más versátil o más simple que este, o quizás se le puedan hacer mejoras?
Primero, un método que NO es prometedor: dado que cada MarkerLED infrarrojo está conectado a un microcontrolador, podría hacer que cada MarkerLED parpadee en un patrón único. Pero la cámara IR solo tiene una frecuencia de actualización de 100 Hz, por lo que si hubiera 50 LED, sería difícil encajar en un patrón único para cada uno, sin que el seguimiento efectivo de la posición de la cámara de los puntos se vuelva realmente lento.
A continuación se muestra una idea aproximada que estoy considerando actualmente (rastrea e identifica 50 marcadores LED IR):
Comience por etiquetar un detector IR simple al lado de la cámara IR, cuyas salidas se leen/rastrean sincronizadas por un microcontrolador o computadora común.
Ahora, digamos que hay 50 marcadores. Para cada circuito MarkerLED/Microcontrolador, también agrega un segundo LED IR, llamado IdentifierLED, por lo que hay un par de LED IR para cada marcador, ambos controlados por el microcontrolador.
Para un marcador dado, para que se pueda rastrear su posición, el MarkerLED solo se enciende durante exactamente una ventana específica de 20 milisegundos de cada segundo (cada marcador tiene su propia ventana de 20 ms). Durante esa misma ventana particular de 20 milisegundos, el IdentifierLED correspondiente es pulsado de una manera específica por el microcontrolador a alta frecuencia (por ejemplo, 38 kHz), configurando un patrón/ID único para ese marcador específico.
Y lo mismo para los 49 Marcadores restantes consecutivamente, cada uno con su propia ventana diferente de 20 milisegundos y su propio patrón de identificación de alta frecuencia. Eso se ocupa del lado de las cosas de los marcadores.
Ahora, en el lado de la detección de las cosas: para cada ventana consecutiva de 20 milisegundos durante un segundo, la cámara IR detecta la posición de un marcador específico (de quién es la ventana de 20 milisegundos) a través del MarkerLed correspondiente. Al mismo tiempo, el IR-Detector identifica QUÉ marcador es, a partir del patrón detectado del IdentifierLED correspondiente.
Y este seguimiento de posición e identificación continúa durante las cincuenta ventanas de 20 milisegundos dentro de cada segundo.
Por lo tanto, se realiza un seguimiento de los 50 marcadores, con el microcontrolador del lado de seguimiento capaz de actualizar los datos de cada marcador una vez por segundo.
En lugar de transmitir el código de identificación del marcador desde el marcador a un receptor central, tal vez sería más sencillo transmitir el código de identificación del marcador desde un transmisor central al marcador.
El transmisor central (quizás un transmisor IR de 38 kHz o algún transmisor inalámbrico) enviaría, en efecto, "Marcador número 22, enciéndalo durante los próximos 20 ms en mi marca: AHORA". (Idealmente, mientras ese marcador brilla durante esos 20 ms, el transmisor central envía la ID del siguiente marcador para encender).
Dado que ese transmisor central controla el tiempo, no tendrá que lidiar con marcadores que se desincronizan y transmiten accidentalmente al mismo tiempo.
Con suerte, puede colocar ese transmisor central lo suficientemente cerca del rastreador de posición, de modo que si algún marcador no puede ver los comandos enviados por el transmisor central, ese marcador no estaría en el campo visual del rastreador de posición de todos modos.
Eso también le brinda la flexibilidad de usar los datos que obtiene de su rastreador de posición para adaptar dinámicamente los marcadores que seleccione:
Olvidó algún tipo de latido del corazón de inicialización/transmisión, de lo contrario, el marcador no sabría cuándo encenderse. Dependiendo de qué tan buenos sean sus sensores y LED, es posible que pueda usar diferentes segmentos del espectro IR. De esta manera podría distinguir un LED con una longitud de onda de 300 µm de uno con 200 µm. Si tiene varias cámaras, puede usar diferentes ópticas/filtros (es factible). De lo contrario, invierta en una cámara con una velocidad de cuadro más alta y deje que cada marcador parpadee en un patrón único. El patrón no solo debe estar encendido/apagado, sino que también puede aprovechar la modulación de frecuencia.
Supongo que hay algún tipo de computadora poderosa que procesa cada cuadro de video y puede hacer cosas como medir (aproximadamente) el brillo de cada LED IR.
Simplemente modula el brillo de cada LED IR a una frecuencia diferente y deja que la computadora reconozca la frecuencia de cada uno.
Considere primero un caso simple: el LED1 variaría su brillo en una onda sinusoidal de 10 Hz, del 50 % al 100 % de brillo. La computadora ahora puede rastrear el brillo del LED, ejecutarlo a través de un filtro de paso bajo y usar el cruce por cero para medir su frecuencia. LED2 estaría variando a, digamos, 15 Hz, y la PC podría distinguirlos fácilmente.
Podría tomar hasta un segundo antes de que la PC obtuviera un buen bloqueo de frecuencia en ambos.
Está bien, pero esto no va a funcionar para 50 LED. Es difícil tener tantas frecuencias distinguibles que una cámara de 100 Hz pueda muestrear en un breve espacio de tiempo. ¡La solución es usar DTMF!
DTMF es un método usado en teléfonos antiguos para enviar datos usando tonos. Se definen 8 tonos, y el transmisor enviaría dos tonos diferentes al mismo tiempo, y el receptor buscaría el par de tonos en una cuadrícula para elegir uno de los 16 resultados.
Ahora, podría usar fácilmente una cuadrícula de 7x7 para permitirle tener 49 LED IR diferentes. La computadora debería poder distinguir entre 14 frecuencias si puede ver los LED durante aproximadamente 1 segundo cada uno. Usaría frecuencias mucho más bajas que las DTMF, digamos, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32 Hz.
como alternativa, use solo 8 frecuencias y seleccione dos de las 8 para obtener 56 (8x7) combinaciones.
suha
mordedura de tabla
hulkingtickets
mordedura de tabla