One of the first things that caught our eyes in the parts list was the USB missile launcher. We claimed one and then pondered how to control it.
We decided on a webcam approach with facial recognition.
Work quickly split into dual python operations composed of making better targeting drivers for the launcher and implementing face detection and recognition for the webcam using opencv.. Later we joined these two components together.. We considered using a Raspberry Pi to allow mobility, but decided that the face recognition was too intense for the Pi's small processor.
In the end, we made a system that detects users' faces, greets and plays spotify music for users it recognizes, and aims and fires at the faces of those it does not (our "target" users).
First Component: Facial Detection and Recognition Features: Spotify integration for recognized users, and dart barrage for strangers The software was first trained to detect the faces of team members by capturing a series of photos at varying angles and distance. The algorithm used to detect faces was Haar Wavelet Classifier, and the algorithm for recognizing faces in the database was EigenFaces.
Second Component: Launcher Targeting System Features: Targeting by absolute angle, Interruptable actions The launcher we used had no official drivers for Linux, but we were able to find a low-level library that someone made.. Unfortunately, it only allowed relative targeting; there is no way for the hardware to detect which way it is aiming. Part of our project was engineering a wrapper library to keep track of the launcher's angles. The launcher rotates at a constant speed, so it was easy to calculate how far it moved as long as we always kept track of how long it was moving. This library may be potentially useful for anyone who wants to script a Dream Cheeky USB Missile Launcher.