3D Robotics
Jordi and I are slightly stuck at the last part of our Blimpduino project. We've got the blimp itself all sorted, from electronics to mechanical assembly, and are ready to move into mass production on that. We intend to ship it with a single ground-based IR beacon, around which it can navigate, and that's done, too. But ultimately, we want it to be able to navigate to multiple beacons, and that's where we've run into a problem. Let me describe the issue, and maybe some of you will have some ideas.

To keep Blimpduino as cheap and simple as possible, it navigates by looking for signals from a ground-based IR beacons in any one of four directions. There are four IR detectors (N,S,E,W) on the blimp and the ground-based beacons are nothing more than an IR LED transmitting random 1s and 0s at 56KHZ. This being IR, they bounce all over the room and there is loads of IR noise from other sources, but the IR receiver that records the highest number of 1s (highest signal-to-noise ratio) is considered the direction that the beacon is transmitting directly from and we steer accordingly. (This is also the way the Pololu IR beacon/transceiver pairs work)

That's easy for one beacon. But when we want to introduce multiple beacons, each with a unique ID, it gets more complicated. We can't transmit at different light frequencies, because we'd need to add matching IR receivers on the blimp for each beacon we added. We can't use TV remote control codes, because then we can't tell where they're coming from (it's the ratio of signal to noise that tells us direction, but the codes are all signal and work as well if they're bouncing off a wall as when they're aimed directly).

Our instinct is to have a central beacon controller (another Arduino--see diagram above) and sequence them so that you'd be able to tell which beacon is transmitting by when in the beacon sequence you got the signal. But that requires us to synchronize the blimp and the beacons to a common clock, and we're debating how to do that.

My proposal is to do the following, 10 times a second:

  1. For the first 1-50ms in each cycle: all beacons go on for 30ms, then all off for 20ms ("clock sync pulse").
  2. 50-60ms: Beacon 1 on
  3. 60-70ms: Beacon 2 on
  4. 70-80ms: Beacon 3 on
  5. 80-90ms: Beacon 4 on
  6. 90-100ms: Beacon 5 on
  7. Repeat...

The beacon hub controller would just schedule that sequence. The blimp, meanwhile, would have to detect both the direction of signals and how long they're on. If they're on for 30ms and then off for 20ms, that's the start of a cycle. Then depending on when in the cycle it detects the next signals, it knows which beacon that is.

Jordi's not convinced this will work, and thinks we'll need an RF link to communicate between blimp and beacons, which strikes me as expensive, complicated and unnecessary. What do you guys think?

Is there a better way to have a blimp distinguish between different IR beacons?

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • 3D Robotics
    @Profmason: Excellent! This is just the kind of creative thinking we were hoping for. Please keep us updated on your progress. Getting multiple beacons working will be HUGE.
  • OK, nix my previous thought of replacing the 56 Khz parts. After scoping the outputs today, it appears that the pololu beacon is setup to transmit using the RCA IR protocol. The pololu remote just sends 001 over and over again with no headers or anything using the RCA timing. There is a description of the RCA protocol here: http://www.sbprojects.com/knowledge/ir/rca.htm
    I was able to setup a universal remote to transmit on the RCA protocol. Using the beacon and the remote at 90 degree angles to one another at distances of a couple of meters from each other I was able to distinguish between the two. The IR code will need to do more then just count pulses from each each sensor. Right now the problem I am having is that the two receivers back to back are both picking up the signal. I had some success shrouding them with electrical tape.
    I will bring another universal remote in and see if I can consistently distinguish between one of them transmitting a #1 on the remotee and the other a #2 while the remotes are at right angles to each other using the RCA protocol. The RCA protocol is nice because it transmits the complement of each signal after each transmission so a bit of error correction is built in.
    Scope pictures and more at:
    http://mtsacflight.blogspot.com/2009/01/ir-beacon.html
  • my thought was to desolder the 56Khz parts and solder in the 38Khz parts, not add additional parts. I will test everything at 56K before before I get out the Iron. Standard Universal remotes use 38Khz. Any insight on why the decision was made to go with 56k in the first place?

    Thanks!
  • 3D Robotics
    Generally the problem with two using different frequencies is that you need two sets of detectors on board the blimp, which turns a 4xIR sensor deal into an 8xIR sensor deal. Bulky and expensive. The sensors are tuned for specific frequencies.
  • I want to bump this topic, since it is about where we are at on our Blimp. mtsacflight.blogspot.com From everything I have read, It looks like the Vishay 34156 was used which expects the serial stream to be modulated at 56 khz. I am tempted to solder in the 38 Khz parts so that I can try standard IR remote controls as beacons. Was there any attempt to do this? I have a USBUIRT(http://www.usbuirt.com/overview.htm and access to a second. I will see if I can distinguish between the two (one sending a 11100111 and the other sending a 00011000.) Has anyone made any progress on the schemes described previously, or what I have described, or should I just give up and interface Xbee module to the board?

    It also occurs to me that if we used 38Khz IR modules, we could use a standard TV remote as a remote control for the blimp. This would save the cost of the RF gear. I converted a standard RC car to be controlled using an IR remote as described briefly here. http://profmason.com/?p=392 (Near the bottom)
    MTSAC Physics 99 Flight Project
  • Chris,
    If you choose to add an IR transmitter to the board or 4, which I recommend,
    You should be able to multiplex them with for example the motor drivers.
    I'm fairly certain the motor driver board includes an enable line.
    You will probably need a hi-side driver (a transister) as an enabler for the IR beacons.

    To drive the motor, set the enable, then set the drive pins.
    To drive the IR, reverse the enable and pulse the beacons.
  • 3D Robotics
    @HugePanic: what we want is multiple waypoints. Any way to achieve that is fine, although obviously we have weight, power, size, and cost constraints, too.
  • one question:

    is the idea fixed to use 4 ground beacons??

    or do you just need some procedure for navigation???
  • The Company ITT had a similar problem, They make a wireless security system;
    Each beacon transmits their id several times with a delay based on their ID. Sometimes they collide, but the delay separates them.

    You might try to:
    Send a brief ID on frequency, followed by a series of pulses increasingly off-frequency. The cut-off filter in each IR receiver will cause the system to lose sensitivity as the function of frequency excursion. The number of pings from each detector can be used to vector the signal.

    This permits very rapid signal acquisition, and so permits sparse signalling.
    You might also consider diffusing the detectors so there is some overlap in the field of view. That overlap will allow for rational vectors, in which the signal strength of adjacent detectors can be used to determine the vector with a higher degree of specificity than just the four corners.

    Good luck
  • Speaking of the beacons... Have you made your own yet? I know its probably a minor concern at this point, but I was designing a 555 timer based beacon in async mode but I've not decided on a good duty cycle which would send a recordable pulse as well as allow enough time for the LED to cool off. Any ideas on how much current we need to run through a standard 5mm IR led to get the distance we need or how long the pulse needs to be, to be recorded?
This reply was deleted.