¿Cómo identificar los marcadores LED modulando su brillo?


11

Para un proyecto mío, necesito usar marcadores LED infrarrojos para identificar ubicaciones de puntos en el espacio con algoritmos de estereovisión y múltiples cámaras IR. También necesito que cada marcador LED tenga una identificación única reconocible, que es mi problema actual.

Mi idea era que cada LED parpadeara entre dos estados de brillo (¿es esto posible?) En una secuencia reconocible, pero que aún sea lo suficientemente brillante como para seguir en el estado de brillo más bajo.

No sé cómo implementar esto o realmente dónde comenzar a buscar. Soy programador pero nunca antes había trabajado con circuitos reales. ¿Me pueden ayudar a comenzar?

led 

Respuestas:


11

Si todos sus LED se controlan desde la misma fuente, considere usar un microcontrolador + codificación diferencial Manchester + sus estados de LED alto / bajo para codificar cadenas de bits de secuencias repetitivas como:

id #0: 1000000000000000[10000000000000001000000000000000....]
id #1: 1000000000000001[10000000000000011000000000000001....]
id #2: 1000000000000010
id #3: 1000000000000011
id #4: 1000000000000100

para codificar números de identificación como una secuencia de bits de 16 bits que consiste en un 1, luego 7 ceros y un número de identificación de 8 bits. Luego, cuando decodifique, busque un 1 seguido de 7 ceros, luego tome los bits subsiguientes posteriores. Esto funciona para todas las ID # s de 8 bits (incluso # 128 = 10000000 que codifica como 1000000010000000 que no necesariamente se puede sincronizar correctamente, pero para ese número no importa).

(Si tiene menos LED potenciales, use menos bits; este esquema es bastante simple y se generaliza a 1 + (N-1) ceros + un número de N bits)

La codificación Manchester es de auto-sincronización, por lo que debería poder sincronizar un receptor (incluso si es otro microcontrolador que no está seguro de la frecuencia, muestree varias veces por bit para que pueda permanecer bloqueado).


4

Si pudiera encender y apagar cada LED a una frecuencia diferente, esto probablemente simplificaría mucho las cosas, ya que podría usar circuitos basados ​​en 555 para encender cada uno a la frecuencia requerida.


2
simplifica el transmisor, pero complica el receptor
Jason S

Si está rastreando muchos puntos, probablemente no usará un Arduino o cualquier otro microcontrolador.
Amos

... para el receptor, además, no es la programación el problema, son los circuitos, por lo que cuanto más simple sea el circuito, mejor.
Amos

4

Todo el mundo parece estar comenzando con Arduinos en estos días, así que algo como esto es probablemente lo que estás buscando. Sin embargo, parece que tiene la intención de usar muchode LED en este proyecto que sería difícil con un arduino. Aquí todo está en la parte superior de mi cabeza *, pero puede ser posible usar un transistor y una resistencia grande en paralelo para que cuando el transistor esté apagado, la corriente fluya a través de la resistencia grande y obtenga una luz tenue. Sin embargo, cuando lo enciende, la corriente fluye a través del transistor debido a la menor resistencia y obtiene el estado más brillante. Suponiendo que esto funcione, puede usar componentes digitales como microcontroladores para controlar los transistores y lograr el parpadeo que necesita. Se adjunta un esquema de lo que quiero decir (los valores son arbitrarios, probablemente tendrá que cambiarlos para su circuito):

Esquema del circuito transistor

De cualquier forma que lo hagas, será bastante difícil teniendo en cuenta que no has hecho mucha electrónica. ¡Buena suerte!

*es tarde; Esto podría estar completamente mal y no funcionar en absoluto. ymmv.


1
Básicamente está bien, pero necesita otra resistencia en serie con LED y transistor para establecer la corriente para el estado brillante, de lo contrario su LED morirá.
starblue

sí, es cierto. Supuse que estaba implícito, pero debería haberlo mencionado de todos modos.
jeremy

3

Haría una variación de la idea de penjuin. Usaría un estado de encendido y apagado para generar los dos niveles. En lugar de intentar rastrear el LED en el estado apagado (o estado bajo), haga que el estado apagado sea corto y solo realice un seguimiento en el estado encendido.

Tampoco mencionó cuántos LED necesita rastrear y qué tan rápido se mueven.


1

Sí, dos estados "tenue" y "brillante" es fácil. Dado cualquier circuito que parpadea con un LED encendido y apagado con un transistor, agrega una resistencia a través de ese transistor. Luego, cuando el transistor está completamente apagado, la resistencia permite un brillo tenue. Comenzaría con una resistencia de exactamente el mismo valor que la resistencia limitadora de corriente ya conectada al LED. (Cada LED necesita una resistencia limitadora de corriente).

Para algunos marcadores, una batería independiente y un temporizador 555 en cada uno será el hardware de marcadores más simple. (además de algunas resistencias y condensadores).

El sistema en general es más simple si puede sincronizar los LED: encienda todos los marcadores al comienzo del ciclo, luego apague un marcador a la vez hasta que estén todos apagados, luego vuelva a encenderlos y comience el ciclo nuevamente. La cantidad de energía necesaria para mantener un grupo de LED parpadeando durante un par de horas generalmente pesa mucho menos en forma de una o dos baterías centrales en lugar de una batería por LED. (Esto requiere un IC de comparación en cada LED, o algunos registros de desplazamiento o un Arduino que emule esos registros de desplazamiento en alguna ubicación central). (Esto requiere una gran cantidad de cables que se unen de un marcador al siguiente, o de cada marcador a algún punto central, por lo que puede que no sea posible para su aplicación)

Hace que su software de reconocimiento de visión sea mucho más simple si la PC puede controlar los LED directamente. Luego, cuando la PC está buscando LED_5, puede apagar y encender LED_5 y estar seguro de que el LED que parpadeó debe ser LED_5. Quizás usando algo como un convertidor de puerto paralelo USB a 8 bits , que (con 8 resistencias, una por LED) puede controlar directamente 8 LED o (con 4 resistencias, una por columna) una matriz 4x4 de 16 LED. (Esto requiere otro alambre, un cable USB desde el PC al convertidor, pero que no requiere ningún baterías o transistores o chips adicionales - esto puede ser la más sencilla para un programador no-electrónica chico para conseguir trabajo).


1

Creo que puede tener problemas en el lado de la visión si la velocidad de fotogramas de la cámara no es lo suficientemente alta en relación con la velocidad de movimiento de los LED.

los LED necesitarán un ciclo de mayor a menor a un múltiplo razonable de la velocidad de fotogramas de la cámara, al menos 2 fotogramas por cambio de estado para asegurarse de que algunos fotogramas tengan luz de un solo estado en lugar de mezclarse de dos estados, lo que significa que necesita dos cuadros por cada bit de datos que muestran los LED para identificar de qué marcador se trata. obviamente, un código más corto será lo mejor para eso.

Si los marcadores se mueven una distancia que está en el mismo orden que la distancia entre ellos en el marco, entonces el sistema de visión puede perder la confianza para identificar correctamente qué destellos pertenecen a qué marcador.


0

esquemático

simular este circuito : esquema creado con CircuitLab

Figura 1, 2 y 3 esquemas LED.

  • Los LED duales dan un control muy simple. R2 establece el brillo del LED siempre encendido. R1 establece el brillo del LED pulsado.
  • LED único, doble brillo es otro esquema simple. D3 siempre se enciende con corriente que pasa por R4. Cuando BUF2 baja, conecta R3 a GND y la corriente a través de D3 aumenta, lo que hace que el LED brille más.
  • El control de brillo PWM es el más simple desde el punto de vista del hardware, pero el software necesita controlar el brillo del LED.

ingrese la descripción de la imagen aquí

Figura 2. Codificación PWM.

Usando la modulación de ancho de pulso (PWM) puede variar el brillo aparente variando la relación de encendido / apagado. La Figura 2 muestra una secuencia de alta potencia, baja potencia y alta potencia.

Para su aplicación, deberá configurar la frecuencia PWM lo suficientemente alta como para que el sensor de la cámara no vea ningún parpadeo. La modulación de datos o la velocidad de cambio entre brillo alto y bajo tendría que ser como máximo la mitad de la velocidad de fotogramas y más probablemente una décima parte de la velocidad de fotogramas para poder discernirlo correctamente.

También es posible que deba abordar el ángulo del haz desde los LED. Parece que sus cámaras no estarán en el eje todo el tiempo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.