Go Down

Topic: Filtering circuit for 40Khz with Analog Infrared Sensor (Read 3116 times) previous topic - next topic

Hi,

I'm building a Soccer Robot for the RobocupJunior Competition. The game consists of two robots in each team, and one ball that emits infrared at 40Khz of frequency. For Long distances, whe will use the "digital" infrared sensors, but for closer distances, we need to know at least "proportionaly" to the distance to the ball.
That's why we want to put some analog infrared sensors around the robot also. But, analog sensors are really noisy, and we need a "filtering" circuit for 40Khz.

I have read a lot about filtering circuits, but when i get into the practice, i don't know what to do...

So, does any one of you, know how to filter one specific frequency with an analog sensor?

Thanks
Arduino DueTimer | https://github.com/ivanseidel/DueTimer
Arduino Thread | https://github.com/ivanseidel/ArduinoThread

Docedison

About 70% of what you want to do could be approached with a high pass filter, more I am hesitant to offer because you didn't indicate if and what kind of modulation is used. Filters take on a whole different aspect when modulated with any information. The more information, that is, or the faster the information is sent the more of an effect filtering will have on the modulating data.

Bob
--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Hi,
This is the specification of the infrared Ball emitter:

"2.1 IR light
The ball emits infra-red (IR) light of wavelengths in the range 920nm - 960nm, pulsed at a square-wave carrier
frequency of 40kHz. The ball should have enough ultra bright, wide angle LEDs to minimize unevenness of the
IR output."

"2.4 Modulation
The 40kHz carrier output of the ball shall be modulated with a trapezoidal (stepped) waveform of frequency
1.2kHz. Each 833-microsecond cycle of the modulation waveform shall comprise 8 carrier pulses at full
intensity, followed (in turn) by 4 carrier pulses at 1/4 of full intensity, four pulses at 1/16 of full intensity and
four pulses at 1/64 of full intensity, followed by a space (i.e. zero intensity) of about 346 microseconds. The peak
current level in the LEDs shall be within the range 45-55mA. The radiant intensity shall be more than 20mW/sr
per LED."
Arduino DueTimer | https://github.com/ivanseidel/DueTimer
Arduino Thread | https://github.com/ivanseidel/ArduinoThread

retrolefty

How about an optical sensor. Just buy some old thrift store remote controls and use the plastic IR lens cover from them?

Lefty

#4
Jan 09, 2013, 10:08 pm Last Edit: Jan 10, 2013, 02:42 am by ivansg Reason: 1
The problem is that they ared digital... We need to know precisely two things:
* Ball Heading (the direction)
* Ball distance (when the ball is close to the robot, those analog sensors will have priority)

On the robot, there will be both digital and analog sensors. But analog ones will only be usefull to know the distance to the ball (the longer the distance, the lower is the amplitude).

Here is the first sketch of the robot:


There will be 16 digital, and 16 analog sensors around the robot...
Arduino DueTimer | https://github.com/ivanseidel/DueTimer
Arduino Thread | https://github.com/ivanseidel/ArduinoThread

Can anyone help me?
I need to filter an 40Khz signal from Infrared emiter with an analog infrared sensor, so that the output signal is a DC, varing proporcionaly to the distance (The closer the ball is from the robot, the bigger is the amplitude, the bigger is the DC signal)
Thanks
Arduino DueTimer | https://github.com/ivanseidel/DueTimer
Arduino Thread | https://github.com/ivanseidel/ArduinoThread

bot-thoughts

I think what you are describing is a filter & envelope detector ... http://en.wikipedia.org/wiki/Detector_(radio)

I'm totally speculating here... I'd have to go play with ltspice and breadboard it and stuff... but... build a band pass filter centered at 40khz, buffered with op amp that then feeds the detector.

If 40khz is present the signal pumps up the capacitor to 1/2 the peak voltage.  If 40khz not present a resistor would have to bleed the capacitor off.

You'd have to adjust the capacitor and resistor sizes appropriately.

I'm using something along these lines to detect an RC transmitter signal.
http://www.bot-thoughts.com/

I Belive it's exacly what i want, but i don't know where to find it, for example:
I know i want to filter a 40Khz waveform from a infrared signal, and output a voltage proportional to the amplitude. But the "name" of the filter (and i don't even know if there is a name), i don't know...
This Envelope filtering is for AM radio signal, but i believe it would work for me, but how to "filter" the 40Khz waveform first, is the main problem now =]
Arduino DueTimer | https://github.com/ivanseidel/DueTimer
Arduino Thread | https://github.com/ivanseidel/ArduinoThread

bot-thoughts

I gave the name :) it is a band pass filter. Or a high pass feeding into a low pass. Easily implemented with op amp or even just passives
http://www.bot-thoughts.com/

Arduino DueTimer | https://github.com/ivanseidel/DueTimer
Arduino Thread | https://github.com/ivanseidel/ArduinoThread

bot-thoughts

No problem :) Let me know how it goes.

I built a circuit to receive 60khz for WWV (uses ASK for a 60khz carrier) a year or two ago... It did work so long as there wasn't any interference from nearby LCD displays.
http://www.bot-thoughts.com/

Go Up