Rather than transmit the marker ID code from the marker to a central receiver,
perhaps it would be simpler to transmit the marker ID code from a central transmitter to the marker.
The central transmitter (perhaps a 38 kHz IR transmitter or some wireless transmitter) would send, in effect, "Marker number 22, please turn on for the next 20 ms on my mark: NOW".
(Ideally, while that marker is glowing for those 20 ms, the central transmitter is sending out the ID of the next marker to turn on).
Since that one central transmitter is controlling the timing, you won't have to deal with markers getting out-of-sync and accidentally transmitting at the same time.
Hopefully you can place that central transmitter close enough to the position tracker, so that if any marker can't see the commands sent by the central transmitter, that marker wouldn't be in the visual field of the position tracker anyway.
That also gives you the flexibility of using the data you get back from your position tracker to dynamically adapt which markers you select:
- If some markers seem to be motionless or extremely slow-moving, perhaps you only need to check on them once every 3 seconds or so.
- Perhaps you can check up on the latest positions of more than one marker at a time; something like "OK, marker number 22 and 23, please turn on for the next 20 ms on my mark: NOW".
- If some markers are not visible from this vantage point, perhaps you only need to check if any of them have re-entered the visual field once every 3 seconds or so.
- The time slots you free up with the above techniques could be used to track the remaining markers at a somewhat faster update rate than you could if you simply cycle through every marker in a fixed pattern.
- If, say, marker #22 is so close to marker #23 that receiver of #23 is blinded when marker #22 is active, you could shuffle the order you turn on the markers so that the "#23 please turn on" message happens a few slots before the "#22 please turn on" message.
It is a long question, but better than a short one, as you've shown your own research.
1) Solar cells. If you're stacking your own ones, stack 9 of them and get the 4.5V of the original circuit.
2) Battery charging. Batteries are the only thing you've left out of your spec. This is an area where the circuit design relies on cutting a lot of corners. In theory it might be out of spec, if you were to put 4.5V at 280ma through AA NiMH cells indefinitely. In practice, you don't get full sun all day, you'll be using it indoors, and you're not going to get optimal power transfer from the cells, so this isn't going to cause problems.
3) Diode. It's just a regular diode, not a zener. Current through it is actually determined by the battery and right hand side circuit, not the solar panel - the transistor is off when the panel is generating electricity. The original 1N914 will be fine. 1N4004 will also be fine.
4) Resistors: not a precision component here, use whatever meets your cost constraint. 5.1k for 5k is fine.
5) Wire: not critical. Your ebay link looks suitable. Thinner is better for the toroid.
6) Transistors: stick with the exact part numbers. Design may rely on specific parameters.
7) LED: again, this circuit relies on cheating. Normally a white LED won't run from two NiMH cells. The joule thief part provides a boost converter that gives small pulses of higher voltage. It doesn't have the capacity to provide a lot of current at that voltage. In combination with the pulsing this means there should be no risk of damaging it.
(A proper analysis of this circuit would be good, if nobody else supplies one I'll do it in a few days).
Best Answer
For fading you'll probably want varying PWM. Generally you'd want to do this with microcontrollers. The Arduino is a very simple platform that is cheap and easy to use. I don't recommend it if you really want to learn how microcontrollers work, but if you just need something to get work done, it's definitely your best option. It has built-in PWM functionality, as well as MATH functions (like a random-number generator, which can be used to determine which LED to control), and the Uno (probably the most common model) has 6 PWM pins. You could also go for the Mega if you want more PWM outputs.
You could also do this with multiple 555 timers (one per LED), but this seems like a lot more work than simply using an Arduino. However, if this interests you, here's the schematic:
This site explains it a bit more: http://www.555-timer-circuits.com/up-down-fading-led.html
You can change the capacitor value to adjust the fading speed. By offsetting this speed slightly, it will appear that the LEDs are fading in and out randomly.