WINNER: NEST Labs Prize
Our hack incorporates a number of different aspects that contribute to the overall gaming experience of Nerf Turret. Players have the option of playing against the computer or having their friends control a semi-autonomous turret at dropthatdude.com. Two stepper motors, controlled by a pic32 cerebot, are used to control the pitch and yaw of a Nerf Gun; a servo serves as the firing device. Combined with a Microsoft Kinect, using the Microsoft Kinect API, we were able to not only identify a primitive skeletal makeup of a current player but use a UART connection to a pic32 to enable the turret to sustain aim on the player avoiding eyes while keeping the family jewels in check. Most of the time.
To keep count of the hits and misses that occurred during each round of the game we created a mesh wall that utilized springs with flex sensors attached to an Arduino Pro Mini, and an Arduino Uno. Both of these ATMega328 microcontrollers were placed at either end's top corner and connected to one another using an IO pin. The UNO began listening for whether a bullet missed the human player and hit the back wall using the flex sensors when triggered over an XBEE connection from the cerebot controlling the nerf gun. If the flex sensors were triggered within the time it would take a bullet to travel from the gun to the mesh wall then a hit would be recorded and points granted to the player that dodged the bullet. If the sensors were not triggered then the Arduinos would time out, report a hit, and points would not be awarded to the human player jumping around in front of the audience of peers watching him get hit with bullets every now and then.
To allow multiplier use the kinect video stream is pushed to the website where control of the turret can be requested. Node.js was used to write the back end of the site while flash was used to write the front end for visitors to easily see a live stream of their friends dodging foam bullets. The SendGrid API was used to easily allow visitors to send screenshots of moments during each game to anyone they wish.
As all the pieces were coming together the evening of the final night of the hackathon both stepper motor drivers ceased to function after a series of demos for friends and visitors. Suddenly having neither a working project nor any sort of easy way to fix two fried chips our team split up to see if any of the thousands of students at the competition had a spare. After a couple hours of seeking we discovered that of the handful of students that knew what a stepper motor driver was, no one had any. We tried looking into the local FRC and FTC FIRST teams that may have had a couple extras lying around. Unfortunately every phone number we called was either no longer in service, or not available. Finally, in one last effort we located hackerspace i3detroit. After a lengthy phone call we scrambled around to find a ride out to their location, eventually met up with them, toured their remarkable facility, and had a pair of old stepper drivers that were most likely broken. Though only one of the boards worked, and only barely because of current limits, we redesigned the stand, installed a servo we were able to find, rewrote most of our previously optimized tracking code, and finished with a project who's numerous working parts demonstrate the remarkable ability for lots of pieces to come together to make something awesome. 36 hours of competition and 48 hours without sleep certainly took their toll on everyone here at MHACKS, but it sure was worth it.