The proliferation of breakout boards that the DIY electronics movement has allowed has been staggering. Buy a few different boards, wire them together to a microcontroller or credit-card computer (both on their own breakout board) and write a bit of code, and you can create some really interesting things. Take Reddit user [Lord_of_Bone]’s Nerf Gun ammo counter and range finder, for example, a great example of having a great idea and looking around for the ways to implement it.
For the range finder, [Lord_of_Bone] looked to an ultrasonic rangefinder. For the ammo counter, [Lord_of_Bone] chose a proximity sensor. To run everything, the Raspberry Pi Zero was used and the visuals were supplied by a Rainbow Hat. The range finder is self-explanatory. The proximity sensor is located at the end of the gun’s muzzle and when it detects a Nerf dart passing by it reduces the ammo count by one. Blu-tack is used to hold everything in place, but [Lord_of_Bone] plans to use Sugru when he’s past the prototype stage.
The one problem [Lord_of_Bone] has with the build is that there’s no way to tell how many Nerf bullets are in the magazine. Currently the wielder must push a button when reloading to reset the count to a preset amount. We’re sure that [Lord_of_Bone] would appreciate any suggestions the Hack-A-Day crowd could offer.
[Lord_of_Bone] gives a full bill of materials, Python code, a lot of pictures and step-by-step instructions so that you, too, can determine how far away your target is, and whether or not you have enough ammo to hit them. We have quite a few Nerf mods on the site, and [Lord_of_Bone] could take a look at this article about how to keep track of your Nerf ammo, and here’s a different method of determining if a Nerf dart has been fired (and measuring its speed.)
[via Reddit]
A raspberry pi seems a bit Overkill for this job
Something a 555 Timer could’ve done.
Retail price for a zero is lower than a real arduino, and many opensource ones as well.
maybe he wants to add bluetooth, a lcd, a web server, a webcam.. Etc.. Maybe he is interested in embedded linux.
I mean, he could have used a LM3914 and some 74ls47 circuit for the counter, and it would have cost slightly less, possibly, if built on perf board.
The Rock64 is out in a few days maybe he can upgrade it with a Mechanical hdd aswell.
Nerfhack–love it!
Since The person isn’t going for sleek and clean, The reset problem is easy. Mount a limit switch in front of the magazine. Magazine is removed, counter shows 0, Magazine is inserted, reset to full.
Unless you wanted to set up a double set of contacts in the receiver and the clip to a resistor string and a brushed contact on the dart-pusher-upper brushing against the various stages the ammo count thing would be hard to pull off.
Wait…. That thing I just said!
That seems a bit too complicated to me overall, but I was thinking of a similar resistor value design. Just pick a set of values, one per each size magazine or drum in your arsenal. Values should be chosen based on resistor tolerances with possibly an additioinal +|- 25% buffer. Then the magazine contacts you suggested would be connected and the micro would then check the measured value against the high/low ranges you program in for the nominal value for each mag/drum, resetting the start value on the counter to the predetermined size. Then his existing proximity sensor decrememts the counter as it already does.
Personally, I’d use a DIY three-line linear resistor that has the wiper attached to the follower, and limit switches at either end. That would tell you exactly how many bullets you have. (Yeah, I know: overkill much?)
That seems a bit too complicated to me overall, but I was thinking of a similar resistor value design. Just pick a set of values, one per each size magazine or drum in your arsenal. Values should be chosen based on resistor tolerances with possibly an additioinal +|- 25% buffer. Then the magazine contacts you suggested would be connected and the micro would then check the measured value against the high/low ranges you program in for the nominal value for each mag/drum, resetting the start value on the counter to the predetermined size. Then his existing proximity sensor decrememts the counter as it already does.
Not sure why that posted twice as a second main comment.
Since he’s using a pi zero, here’s another overkill idea. Try using one of those small usb inspection cams with the pi and mount it to focus on an exposed point of the leading side of the magazine. Use qr or bar codes to read the exact ammo count for the mag/drum. Initiate scan based on either button press or wire into the existing mag detection switch. This may get in your way if you hold your gu n by the mag, but if already using a pi zero, might as well minimize the work of the resistor idea.
That said, I’m sure someone on here would be smart enough to make th resistor idea work using discrete components only.
Another sensor in the bottom of the magazine to measure the distance to the top of the spring. Resistor value or RFID to ID the magazine size and contacts in the receiver to read it.
One suggestion I’ve seen is to tape magnets onto the clips in between the ridges and use hall sensors to detect clip size.
001 – 6 round
010- 12 round
011- 18 round
100- 25 round
101- 36 round
I am a nerfer, but I’ve never gotten my hands on Hall effect sensors. Also, if you have one detector, you can add a second one a few inches down the barrel, and log FPS as well.
A distaince sensor – either ultra sound, or those cheapy time of flight sensors to mesure from the bottom of the clip up (assuming there is clear path to measure).
A fun and cool implementation of things. Good job dude.
How about a wire and a string of 1K resistors going down the side of the clip. Space the resistors at the diameter of the darts, and have the dart pusher connect the wire and the string. The resistance of the string +- the tolerance of the resistors will be the number of darts in the clip.