Control a sentry gun using a Recon Snow2 HUD installed in a set of UVEX G.GL9 ski goggles.
Since the mechanics of the sentry gun are just two servo motors, you could easily modify this Instructable to control any device using "up/down", "left/right" head movements.
Step 1: Essentials
This is an "add on" to my previously published Instructable "WiFi / Internet / Android Controlled Nerf Vulcan Sentry Gun". Please visit that page for full details on the platform being used here.
In addition to all the parts required for the sentry gun, you will require ...
1) UVEX G.GL9 Ski Goggles, or equivalent. See the Recon website for compatible goggles.
2) Recon Snow2 HUD
For more information, visit the Recon website.
Step 2: What Is the Snow2?
The Recon Snow2 is a powerful heads-up display designed for alpine sports with onboard processing power (1 GHz Dual-Core Chip), suite of sensors (GPS, Gyroscope, Accelerometer, Magnetometer, Altimeter, and Barometer), and networking capabilities (WiFi and Bluetooth).
It is an example of a new generation of "wearable computers", and as can be seen in the provided video it comes preloaded with a number of apps.
These were of no interest to us. Since it's a computer, we were interested in what *we* could program it to do. This initial experiment was intended as "proof of concept". Since we already had the sentry gun built, we were inspired to attempt a "shoot where you look" HUD as used on helicopter gunships.
With the ability to connect to additional sensors and cameras, the Snow2 will likely be a promising platform for inspired gadgeteers.
Visit the Recon website for more information on App Development.
Step 3: The Algorithm
For this project, we wrote an Android program using the on-board magnetometer sensor to determine the head position of the operator, and sent commands to the Arduino powered sentry gun via WiFi.
We could have also used Bluetooth to communicate, but as our sentry gun was already set up for WiFi, we went with that. If we were doing everything from scratch, we would go the Bluetooth route as WiFi is a bit of unnecessary overkill for this particular project.
To control the sentry gun remotely, we wanted a simple algorithm that was easy for beginners to understand, correct enough to control the gun in the manner we wanted, and robust enough to be easily modified and added to.
Since the simplest thing to send between two devices is a single character, we quickly established the algorithm should be based on this... a single character would tell the gun a specific action to perform.
So, as an example, let's look at controlling the gun pan (going back and forth)...
For various reasons unimportant to you at this point, we determined our desired pan range to be from 52 degrees (right) to 152 degrees (left). Your desired pan range could be different, it's an easy mod to the program.
We decided to use the letters A through Z to move the pan servo through this range of angles. With that decided, the next step was simply to "map" the letters A though Z to the angles 52 through 152. Simple math will tell you with this scheme each letter will represent approx 4 degrees of servo movement.
So, A would be 52 degrees, B would be 56 degrees, C would be 60 degrees, etc etc, all the way to Z which would be 152 degrees.
A simple scheme that is easy to understand, change, and add to.
Below are the choices we made for the program. When you look at the source code you'll see how easy it is to mod all of this to your desired actions, or go with it as is.
( A - Z ) Controls pan between 52 and 152 degrees, in 4 degree steps
( a - z ) Controls tilt between 65 and 115 degrees, in 2 degree steps
So, basically, we use the magnetometer on the Snow2 to determine where the operator is looking. In the case of the above example, the program would determine the specific angle and send an "N" via WiFi to the sentry gun, which would process the command appropriately. See "WiFi / Internet / Android Controlled Nerf Vulcan Sentry Gun" for further information on that.
Similarly, the magnetometer would be used to determine "up/down" head movements, and send the appropriate lower case letter command for that.
Step 4: Install Code
The Snow2 is an Android device much the same as a smartphone or tablet. It is an example of a new generation of "wearable computers".
The provided Recon app converts head movements to simple characters ( ie. up/down a thru z , left/right A thru Z ) to be sent via WiFi to be interpreted by the remote Arduino device. For more information on what the Arduino does with those characters, see "The Algorithm" in my previously published Instructable "WiFi / Internet / Android Controlled Nerf Vulcan Sentry Gun".