Bullet sensor build help

Hello all, I need help/advice building a circuit that will detect a bullet passing over its sensors--much like what a bullet chronograph does but I do not need to measure the speed of the bullet; I just need it to detect whether a bullet has passed within the set field of the sensors and then pull a digital pin high on the Arduino to do some work.

I found this old post: http://arduino.cc/forum/index.php/topic,7727.0.html >> which is a build of this circuit Hobby Robotics » Photographing a Speeding Bullet. This is nearly exactly what I need, however, I need the sensors to be able to detect the bullet flying up to a foot or more "ABOVE" the sensors. This circuit requires the bullet to pass directly between the IR Emitters which places them in danger of getting struck by the projectile; especially if set at a distance. I need more buffer for error in projectile placement.

This is the Photodetector I plan to use: SDP8436-003 Honeywell | Mouser

This is the IR Emitter I plan to use:

I am open to advice on alternatives if someone suggests better parts (within a similar or cost range). Any guidance/advice would be greatly appreciated! Thanks!

Your product links are identical.

Can I get this straight - you plan on using reflected IR light to trigger your sensor?

AWOL:
Your product links are identical.

Can I get this straight - you plan on using reflected IR light to trigger your sensor?

Sorry about that. Links updated. Yes, I plan to reflect the IR light off the projectile as it passes overhead and catch it with the photodetector. From what I've learned of modern bullet chronographs, this is one of the techniques they deploy. The photodetector I found on Mouser has a 15us fall time, which I "believe" should be fast enough to catch a 3,000+ fps projectile?

First thing I'd ask is "does my Mach 2.5 projectile reflect IR much better than atmospheric dust?"

I wouldn't plan on using it during a dust storm or heavy fog bank, lol. A full-metal jacketed round should reflect a decent amount of IR for the detector to catch. This is how modern bullet chronographs do it (measure the speed of a projectile by calculating the time it takes for the projectile to travel between two sets of IR emitter / Photodetectors)--so I don't see why this would not work. I do not think atmospheric dust would have any interference. I just need advice on circuit design, since I do not have the schematics for a chronograph.

Suggest you might want to think about using a sound sensor to listen for the shock wave that the passing bullet creates. This then does not rely upon accurate "aiming" of your proposed photo detector.

velocity101:
Hello all, I need help/advice building a circuit that will detect a bullet passing over its sensors

I did that years ago. We were trying to get schlieren images of a supersonic bullet passing through a column of heated air. The idea was to trigger at the muzzle of the rifle, then do a set time delay, then fire the laser to take the picture. I used a CMOS 4538 timer IC to do the delay (no microcontroller involved)... but I'll tell you what we tried to DETECT the bullet.....

First attempt: Infrared LED and detector. FAIL. The muzzle flash of the rifle was much brighter than the IR LED and not predictable in timing, so the laser firings were all over the place.

Next attempt: Aluminum foil strip across the muzzle to be broken when the bullet exited. FAIL. The column of air in front of the bullet ruptured the foil long before the bullet came out.

Next attempt: 30 gauge wire (wire wrap wire) as a "break switch". Partial success, but pieces of the wire came along with the bullet and each little piece had it's own shockwave along with the bullet. End result: FAIL.

Next attempt: An electrical contact to detect when the hammer contacted the firing pin. FAIL. The response time of the cartridge (time from primer strike to bullet exit) was not consistent.

Next attempt: Accelerometer attached to the barrel near the breech to detect the pressure pulse of the firing cartridge. SUCCESS!!! That worked, and it was quite consistent (only varied by a fraction of a microsecond between firings).

Lastly.... I think you are going to need a hardware timer to do your bullet sensor. A microcontroller is way too slow. By the time the micro sees the pulse and runs the code that says "I saw it", the bullet will be 100 yards downrange. Of course, I'm talking about a Mach 3 RIFLE... if you are measuring PISTOL bullets which barely break Mach 1, then maybe you have a chance.

Good luck!

jackrae:
Suggest you might want to think about using a sound sensor to listen for the shock wave that the passing bullet creates. This then does not rely upon accurate "aiming" of your proposed photo detector.

The shockwave trails behind the bullet (and the faster it is, the more it trails). In a lab environment where there may be only 6 to 10 feet between the rifle and the bullet trap (with a sheet of photographic film in the middle), the bullet may already be in the trap before the shockwave is detected.

By the time the micro sees the pulse and runs the code that says "I saw it", the bullet will be 100 yards downrange.

I think this is exaggeration. :wink:
A busy-polling loop even on an Arduino should detect the passage of the projectile before it has travelled it's own length, given a fast enough detector.
Besides, it may not matter about latency, as long as the latency is consistent.

AWOL:

By the time the micro sees the pulse and runs the code that says "I saw it", the bullet will be 100 yards downrange.

I think this is exaggeration. :wink:
A busy-polling loop even on an Arduino should detect the passage of the projectile before it has travelled it's own length, given a fast enough detector.
Besides, it may not matter about latency, as long as the latency is consistent.

The experiment I did years ago... the distance between the rifle muzzle and the point where we wanted the laser to fire was 12 inches. At Mach 3 (the muzzle velocity of the .222 cartridge we were using), the bullet travels that distance in about 300 microseconds. How many Arduino instructions can you execute in that time frame (remember every Arduino instruction is a layer of C code underneath). Maybe the code in pure ASM would work, but not C.

Conversely, a 4538 dual timer has microsecond "resolution" and has only nanoseconds of propagation delay between triggering and timing. And it's simpler and costs less. Adjusting the time delay is a simple matter of turning a potentiometer.

Simple is always better.

How many Arduino instructions can you execute in that time frame

4800

remember every Arduino instruction is a layer of C code underneath

Some are 1:1.
So, a bit read and a conditional jump.
Two instructions, three cycles, 187.5 ns.
A shade under two tenths of a millimetre at 900 ms-1

Edit: Sorry, bit test and unconditional jump, up to five cycles, 312.5ns, so just short of three tenths of a millimetre.

If you are going to attempt to detect the bullet using reflected IR, here is some advice:

  1. You need an IR emitter with high radiant intensity. The output of an IR emitter is usually quoted in mW/Sr where Sr is a measure of solid angle. Narrow beam emitters naturally have higher radiant intensity than wide angle emitters. So go for a narrow beam high intensity IR emitter (assuming the bullet path is predictable) such as http://uk.farnell.com/vishay-semiconductor/tsal5100/ir-emitter-2-6v/dp/1469615, not the sort used for TV remote controls. You may wish to use several IR emitters.

  2. For detecting events of this speed, a PIN photodiode is better than a phototransistor. The disadvantage is that it needs more amplification; however the rise and fall times are much faster, around 1us is not hard to obtain.

  3. Shield the detector from extraneous IR. However, scattered light from the muzzle flash may be a serious problem, even if the muzzle flash is well out of sight of the detector.

IIRC, my crono doesn't have an emitter, just detectors. I think it uses photoresistors, and watches for the drop in light caused by the shadow of the bullet passing over the sensor.

My crono is also about 20 years old; technology may have changed. Still works, though.

-j

Hello all, first off--I'd like to thank you for all the great suggestions! Some clarifications on what I'm trying to achieve; I'm not planning to use it as a camera trigger but as a target at a gun range which keeps score via the Arduino everytime a bullet is accurately fired into a given target area covered by the IR sensors (1 foot square or so).

@jackrae: I contemplated the sound sensor as well, however, I only want the device to trigger only IF the projectile passes within a defined target area. Also, if there are other people shooting in the area as well, there may be false triggers. What do you think?

@Krupski: I plan on having the sensors be placed at least 5-10+ yards/meters away from the muzzle; so we should be able to rule out muzzle flash. Was that the only thing that made your first attempt (with the IR LED and detector) fail?

@dc42: The bullet path will be predictable but within a square foot box/ring if you will. Great suggestions! The IR emitters in the link you sent are much cheaper and have an even faster rise and fall time than what I originally found! I think you're right that I should have multiple emitters to provide as much IR illumination as possible since the projectile is travelling so fast and is a relatively small object. Perhaps multiple detectors would further help as well? Would you suggest this photodetector: http://www.newark.com/jsp/search/productdetail.jsp?SKU=32C9136

@kg4wsv: very interesting that all your chrono needed was to watch for a drop in light. I'm wondering how far above the sensors the bullet can be as still be detected.

Yes, that photodetector looks a good one to me. You can connect several of them in parallel.

dc42:
Yes, that photodetector looks a good one to me. You can connect several of them in parallel.

Great, thanks! I order a dozen of each and will report back with my results. Thanks for the tip on Element 14; saved me over 50% off what I would have paid over at Mouser with better parts no less!

btw there are 2 ways you could attempt to detect the bullet:

  1. By illuminating the area with steady IR and looking for a fairly sharp change in the received IR.

  2. By modulating the IR and using a synchronous detector to look for received IR at the modulation frequency. Since the bullet will only be over the sensor for about 20us, you would need to use quite a high modulation frequency, say 500KHz (which is about the maximum possible, given the 800nS rise/fall time of the emitter). This approach should be less sensitive to muzzle flash.

I was originally planning on using the continuous illumination method and hoping to capture an IR reflection off the bullet as it passes up to a foot above the photo diode. Do you think this would work? Also, do you think that the 20us or so the bullet reflects above the photo diode would be sufficient to trigger a digital pin on an Arduino?

Also, do you think that the 20us

Think of it as 320 instruction cycles.

AWOL:

Also, do you think that the 20us

Think of it as 320 instruction cycles.

So at 16Mhz, the Arduino is capable of handling 16 Million cycles per second, right? Then I'd say it'll do, lol. Thanks, AWOL.