Wednesday, November 25, 2015

The Chronograph - Part 1

As mentioned in this post and teased in this one, one of the things I was going to write about was the construction of a ballistic chronograph. The intent of this post is to outline it's construction and my approach to building it. It's intended use and all the information surround that is beyond the scope of this post.

In determining that I had a need for this device, I looked at purchasing a commercial product, so I read reviews and researched them. In researching them, I became keenly interested in exactly how they work. Once I started researching how they work, I quickly discovered that they weren't an overly complicated device. The only tricky part of the device is the sensor array, or the "screens". So why not take this as an opportunity to combine a couple of hobbies by leveraging one in the advancement of the other? By building my own chronograph, I can learn something new and interesting. Being a "tools guy", what is better than building one's own tools?

Once I figured out that most modern chronographs are optical designs I started to look into what kind sensors and electronics I'd need. Yes, there are some designs that use a magnetic field, but those are very new to the market. After exercising some serious Google-fu, I came across this article. The device described in that article, in my opinion, was a little ugly. So I wasn't going to replicate it, but I did use the sensor and front-end amplifier design. Because the sensor circuit really needed to be solid, I started by building a prototype on a simple bread board.

Using this method I quickly discovered that the overhead florescent lights were triggering the circuit 60 times per second. While the PIN Diodes are sensitive in the infrared portion the spectrum, the florescent lights do emit some light in that range. The light had to be direct as well. If I placed my hand over the sensor and blocked the light, the circuit would stop triggering. Success!

In the above photo, it looks like there are two illuminated LEDs... however only the green one is actually visible to the eye. The other one is an infrared LED emitter, but since most modern digital cameras, including the ones on most phones, can easily sense infrared. (Pro Tip: If you think the batteries are dead or too low on your TV remote control, you can test it by grabbing your smartphone and select the camera app. Point the remote at the camera and press a button. Look at the screen and you should see the emitter on the remote flicker with a slight violet color.)

Now that I've shown that the circuit from that article is working, I needed to replicate it 3 times, one for each screen. Here's one of the sensor boards. The actual emitters and detectors are on separate boards with wires to connect to the sensor board.

Here's one of them mounted next to the emitter board. The sensors are in the upper portion in order to minimize the affects of ambient light such as sunlight. This is an early version. I later improved the sensor array by purchasing emitters and detectors in the same wavelength. DigiKey or Mouser are excellent sources for electronic components, both for the low-end hobbyist all the way up to full scale manufacturing. I also chose PIN diodes with a nice wide sensor pattern that was narrow along one axis, but fanned out at about 100 degrees in the other. 

These are built with perforated board with a solder pad per hole on one side from Radio Shack. As I did more projects, I later graduated to etching my own printed circuit boards and using surface mount components. If you watched the video about this device, there are some photos of the Bluetooth connected controller built in this manner.

Here's the completed sensor array

Each screen is spaced at exactly one foot (12 inches, or approx 305mm apart). Since I'm measuring in feet-per-second, using 1 foot spacing makes the calculations very easy. Had I been doing meters-per-second, 250mm spacing would be reasonable.

Next time, I'll show the stand-alone controller I built and some of the components and GUI libraries I built for the Ardunio Mega 2560, a resistive touch panel over a 240x64 Toshiba 6963 based monochrome graphics LCD.