Electronic – How to identify LED markers by modulating their brightness

led

For a project of mine I need to use infrared LED markers to identify locations of points in space with stereovision algorithms and multiple IR cameras. I also need each LED marker to have a unique recognizable ID, which is my current problem.

My thought was to have each LED flash between two states of brightness (is this possible?) in a recognizable sequence but still be bright enough to track in the lower brightness state.

I don't know how to implement this or really where to start looking. I am a programmer but have never worked with actual circuits before. Can you help me get started?

Best Answer

if all your LEDs are being controlled from the same source, consider using a microcontroller + differential Manchester encoding + your high/low LED states to encode bitstrings of repeating sequences like:

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

to encode ID numbers as a 16-bit bitsequence consisting of a 1, then 7 zeros, and an 8-bit ID#. Then when decoding, look for a 1 followed by 7 zeros, then take the subsequent subsequent bits. This works for all 8-bit ID#s (even #128 = 10000000 which encodes as 1000000010000000 which can't necessarily be synced properly but for that number it doesn't matter).

(If you have fewer potential LEDs, use fewer bits; this scheme is pretty simple and generalizes to a 1 + (N-1) zeros + an N-bit number)

Manchester encoding is self-clocking so you should be able to synchronize a receiver to it (even if it's another microcontroller not sure of the frequency, sample several times per bit so you can stay locked).