I'm doing some modifications to a nerf gun, and have already done speed/FPS tests with a chronograph I built, and the next test is modifications that can be done to increase the accuracy. I'm trying to build a target that will sense the x/y position of a dart as it hits a target, or breaks a plane. I have a few ideas, but I'm trying to keep it as simple as possible.

One idea involved a mesh grid of wires, and when the dart strikes the grid, it would cause wires to complete a circuit. Problem there is thats a lot of wires (to get any sort of accurate reading), a lot of points of failure (accidental wires touching), and what sounds like a huge pain in the butt to make.

Another idea was an array of IR leds and sensors. The issue there is then I have to rig up an absurd number of IR receivers, and write an function to determine just which sensors were blocked by a dart. Sounds complicated and like a lot of work.

Are there any sensors out there that react to light (IR, laser, visible, whatever) that are like a strip, and will provide an analog result depending on what section is lit or unlit? Or a sensor that uses a spinning laser that can detect it's position/angle when the laser bounces off something?

Or am I making this a lot harder than it needs to be, and there's an easier solution than what I'm coming up with? I want to fire a dart at, or through, a target, and get an x/y coordinate reading on it. I'd like it to be moderately accurate (1/4" or 1/2" resolution?). Better is great too.

  • \$\begingroup\$ You could probably take some inspiration from a device called "falcoeye". Youtube it. You can rip apart a few printers to duplicate it. \$\endgroup\$ – pgvoorhees Apr 10 '17 at 15:48
  • \$\begingroup\$ i think a video measurement is the easiest solution, although you have to manually process the results \$\endgroup\$ – DELTA12 Apr 10 '17 at 15:49
  • \$\begingroup\$ I considered using a Pi with a camera, capturing the image and processing it, but thats an absurd amount of work. I'm wondering if it's possible to hack a barcode scanner - they basically bounce a laser back and forth and measure reflected light. Only issue would be knowing where in the 'sweep' the laser is when the beam reflects back. I'll check out the falcoeye thing, thanks. \$\endgroup\$ – InfernusDoleo Apr 10 '17 at 15:57
  • 3
    \$\begingroup\$ Some digital drum kits use three piezo sensors placed at the edges of a drum skin. By measuring the time delay between the 'hit' arriving at each sensor you can triangulate where the impact occurred on the drum. \$\endgroup\$ – Jon Apr 10 '17 at 16:05
  • \$\begingroup\$ x/y problem with x/y position? - Do you want to detect the accuracy, or do you want to detect where the dart hits? The latter is not a necessary requirement for the former. In other words: It may be easier to measure the distance between the bullseye and the dart, than to measure the absolute position of the dart. Your question is somewhat ambiguous as to what your actual goal is, so I suspect it's not perfectly well defined. \$\endgroup\$ – Dampmaskin Apr 10 '17 at 16:05

A flexible transparent resistive touch panel could be the answer to your design problem. This kind of panel might be able to cope with the dart impact force, and will give you a reading from which you can calculate the XY position of the contact point.

enter image description here

Resistive touch panels are 4-wire analog sensors need to be interfaced through circuitry including ADCs, clocks and special-purpose controllers. However, this circuitry is commercially available as breakout boards, not too expensive, and some of them come with USB interface for extra convenience.

The main challenge could be finding a panel with the size required by your application, but reasonably priced as well. Only you know your budget constraints!

As an example: 17-inch panel with controller.

  • \$\begingroup\$ Considering it, problem is the price is a bit higher than I'd like and I'd prefer to not have to order from china (alibaba). If I can find a cheap option in the US I may give that a shot. It's by far the simplest solution. \$\endgroup\$ – InfernusDoleo Apr 12 '17 at 17:56

You could do this fairly easily with a computer and a webcam.

Set up the webcam to be focussed on the target so it fills the image and have software to compare a before and after image to identify the projectiles position.

With a decent camera you ought to be able to able to measure to much greater accuracy than 1.4 inch.

The ultimate would be to configure a system to fire the camera shutter as the projectile crosses a plane just in front of the target itself but before it hits it. That will remove any bounce / deflection effect of the impact.

  • 1
    \$\begingroup\$ With a few cameras and 3d software one could completely recreate the path in 3d of each shot \$\endgroup\$ – HighInBC Apr 10 '17 at 16:01
  • \$\begingroup\$ The problem is the coding of the image processing part. Its a lot easier to take sensor readings that it is to do that kind of image processing. Well, for me at least, who doesn't know much about image processing. \$\endgroup\$ – InfernusDoleo Apr 10 '17 at 16:02
  • \$\begingroup\$ @InfernusDoleo actually it is not that hard. If the before and after image are close together in time, is ends up being a simple pixel subtraction, a little integration to remove speckle, and then finding the centre of a peak. \$\endgroup\$ – Trevor_G Apr 10 '17 at 16:03
  • \$\begingroup\$ @InfernusDoleo, COntinued: It's basically the same method used to trip a camera to take video when it detects motion. \$\endgroup\$ – Trevor_G Apr 10 '17 at 16:05

How about a sheet of something with microphones or accelerometers in several places around the periphery, and measure the relative time of arrival of the collision impulse?

This is not an original idea, I recall reading a writeup somewhere, perhaps on hackaday.

On a cruder end we put an accelerometer on a breadboard, hung it from a DC power cable and used the breadboard itself as a nerf gun target in a hackathon project - but that was only a single sensing point.


You could use a distance sensor attached to a servo that sweeps a plane. Using several of them would increase accuracy by averaging the distances. Use the angle of the servo and the distance reported by the sensor to calculate the position on the plane the dart passes through. This would be a simple Arduino project.

The two issues being the required accuracy and the chance of not "seeing" the dart. Using multiple fast servos with LIDAR sensors would help with both problems. They are not cheap though. Here is a newest LIDAR from sparkfun https://www.sparkfun.com/products/14032 The accuracy is +/- 2.5cm at distances greater than 1m, so you would want to keep it under 1m. I also found a fast servo from hobbyking, rated at 0.08s/60° at no load. You already calculated the speed of the dart at some distance from the gun so, given the length of the dart, will it be breaking the plane for at least 1/10 of a second? If not, just add another sensor sweeping in the opposite direction.

I imagine a simple wood frame maybe 16" square with a servo/distance sensors attached at opposite corners.

  • \$\begingroup\$ Cool idea - I've considered that one, but didnt know there were servos that could move that fast (I'm used to the hobby ones for RC cars that aren't overly quick). I may give that a shot. Adafruit has a micro-lidar super cheap that seems pretty accurate. \$\endgroup\$ – InfernusDoleo Apr 12 '17 at 17:49
  • \$\begingroup\$ In the meantime I ordered a cheap laser barcode scanner from amazon and am going to tear it apart and see if I can use that. Laser barcode scanners read light/dark as the laser sweeps. If I can intercept that (or just directly access the sensor) I can make a dark strip, with white blocks at the sides. I can log the time it takes to do 1 sweep. If it detects something in a shorter time, it's the dart, and based on timing I can calc the angle. By using two (X and Y) I should be able to get an accurate X/Y coordinate. If it doesnt work I may try the lidar/servo, if just to learn something new. \$\endgroup\$ – InfernusDoleo Apr 12 '17 at 17:52
  • \$\begingroup\$ Just did the math. Muzzle velocity of the dart is 85 FPS. Dart is 3" long. If my math is right, it'd only be crossing any given plane for .003 seconds. Ouch. Hope the laser thing works! \$\endgroup\$ – InfernusDoleo Apr 12 '17 at 17:55
  • \$\begingroup\$ That's what I got 0.0029 seconds. I was counting on the target area being some distance, say at least 10 feet, away from the muzzle. A foam dart is going to be slowing down very quickly. Just keep increasing the distance between the gun and target until you get readings. Although, for your purposes, you will want to take reading fairly close to the muzzle and before the darts start really being effected by outside factors, including differences in the darts. \$\endgroup\$ – michaud Apr 13 '17 at 16:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.