I'm looking to build an Beacon, IR or otherwise, that a robot can see and simply drive to. Pretty much like a docking station for the robot to be recharged or a robot that follows you. (unless that's something different...)
I did a few searches, but I've only come up with robots that use a beacon and not how to build the circuit and write the code.
He talks a bit how he does it, but I don't really understand, so I'm just going to have to do more research on how works in general. Like how different frequency signals are encoded, sent, received, and decoded.
Am I on the right track?
Does this have anything to do with IR serial communication?
There are some ideas but no There are some ideas but no part numbers or code in the old Pololu IR Beacon guidesheet. Their new transceiver beacon is a bit pricy, but probably not overly so based on the parts that appear on it.
"If detectors are responding above an appropriate threshold, the most responsive detector direction is determined"
That’s what is said in the Pololu IR beacon datasheet, but how does it do that? I mean, since light bounces all over the place it might happen more than once that several sensors get hit… If we understand how it works we could make a similar setup and spend less.
I’d use my ir flashlight (continuously on) and 2 ir photodiodes on the 'bot to home in on it. just check which one sees more IR and have it turn until both see equal ir…
possibly you could make it pulse with a cap. to reduce IR noise.
by the way, does anyone know how to tell a white LED from a photodiode short of hooking it up?
That would be an easy way to do it but I feel like the IR noise coming from other sources would severely interfere with the readings.
Also, this would only work provided I only wanted one beacon. I would like to have the ability to have more than one, i.e. separate robots have their own docking station.
You can have an axe send out a specific signal from a regular IR led, that mimics a TV remote signal, that another axe can pick up. Look for IROUT and IRIN commands in the second manual (or maybe INFRAOUT. the command is different for 28/40 chips than 08/14/etc.). This modulated signal will have far better range, far less noise, and use less power. (this is the way CtC was doing it, btw).
The signal just sends a single byte value (0 to 127), so you could differentiate different commands for different bots. Any IR signal you send can and will be read by any recieving bot, but it can be ignored. JKLUG wrote an awesome walkthrough on this a while ago.
You have to have a 38khz modulated signal as a sender --picaxe can do this with no problem. Stick you reciever in the end of a small tube so it can only see what is directly in front of it. That’s it. I have also seen configurations where the sender is shielded, but the shielded RX has worked much better for me. Stick this sensor/ tube assembly on the top of a servo to sweep it back and forth and use the servo pos. numbers as a “heading”. From there, you just need to use this “heading” number in your drive code to point to where you need to go.
–Benbo, stop giving advice on a project when you have not done the project yourself, Christ!! --You soldered a LED to a battery and stuck it in a box… This helps no one and to people who think you know what you are talking about, get pointed in the wrong direction. Stop wasting peoples’ time.
Last time i checked… these little buggers had resistance that dropped as it saw less IR. so all you gotta do is check the resistance on them and cross your fingers…?
Photodiodes don’t work the same way as photoresistors; they’re much more like NPN transistors but instead of feeding current into the base to up the CC current you feed in IR light to increase the current. If you put one of these in series with a resistor tied to V+ or Gnd you can read the voltage from the resistor and calculate back to the through current, which is itself related back to the amount of IR landing on the photodiode receiver.
The issue here is that ALL incoming IR will affect the photodiode, not just modulated. Strong heat sources and the Sun both output significant ‘DC’ or 0Hz IR, and household lighting typically produces a fair amount of 50/60Hz IR interference too. These ambient IR sources swamp the signal from any modulated IR source that isn’t powerful enough to overcome them, which makes reading the signal nearly impossible. Typically you’ll need either a very sensitive ADC to read the signal, which you then filter electronically, or you’ll need an analog filter to attenuate any signals significantly below your intended broadcast frequency. If you’re broadcasting at a frequency below the standard ~38kHz then it can also be useful to filter out signal above ~36kHz so your system is not affected by IR remotes, etc.
Filters…that sounds like Filters…that sounds like the thing we needed! I’ll search for them on the web and tell you what i come up with. Thanks for the information!
There was a website someone posted that went deeply into beacon finding AI and things to watch for. A search should bring it up, maybe in forums or websites links (if search decides to play nice).
Essentially the site said to calibrate the power of the transmitter such that the receiver can see it from a goodly distance but not so powerful it floods the whole room and beyond. i.e. perhaps having a pot on the transmitter, sit your bot a couple of metres away, not quite the full length of the room, and increase the power to the LED until the bot just sees it.
This is starting to make more sense now… Thanks everybody! I guess now I start trying to slap something together and if I have any problems I ask for help.
simple answer… Depends on how long the tube is and how small the hole in the end is. I am using a tube about 1.5" long and about an 1/8" in dia. This set-up will find the beam within 2 servo-step increments… I.e. servo 4,(150) sees it, servo 4,(148) and servo 4,(152) do not. No wall bouncing.
This was a project I had This was a project I had worked on. It used beacons that transmitted serial data and a reciever that would pick up the signal(and identifier data). All source is included and commented.
A simple way to make an infrared beacon that will not be mistaken for ambient noise would be to modulate a signal of your choice at 38khz, or some other frequency that an infrared receiver of your choice expects. For one project, I took a 1kHz signal, and modulated it at 38kHz. Here is the circuit:
You can generate the 38kHz and 1kHz signal using two 555 counter, or even through your picaxe. You can use the picaxe's PWMOUT command to generate pulsetrain. I believe there's even a PWMOUT wizard in the software. I used a value of 470-ohms for R1, but you can change it. The value of R1 will determine how strong your IR signal is. The smaller R1 is, the more current will flow through your IR LED (and as a result, the range that your beacon can be seen will be farther)
Since I modulated my signal at 38kHz, I need an infrared receiver that expects a 38kHz modulated signal. The part I used is the TSOP2138. The following circuit was taken straight from the TSOP2138's datasheet.
The TSOP2138 demodulates the 38khz signal. Modulation and demodulation are out of the scope of this forum topic, but in the end, if you complete this receiver circuit, you should see the 1kHz signal coming out of pin 1 of the TSOP2138 if it detects the beacon. Your picaxe can determine whether or not it has detected the beacon by looking for a 1kHz signal. For this, I would use the COUNT command to see if I get 1000 transitions per second on the pin.