After our news item on using Python to shoot water at squirrels, a number of readers wrote to tell us about Project Sentry Gun which has been working on the same problem for some time.
The basic idea is to create an automatic gun which can protect an area. The basic hardware you need are three servos, an Arduino and a web cam. You also need a gun and tripod and a lot of creative effort seems to go into making these look as realistic, or futuristic, as possible. The guns used in the showcase projects are paint ball or airsoft models but you could use a water pistol or worse if you were serious about protection.
Yes there is a sinister side to this device. The project may be fun but in the wrong hands this sort of technology could be more than just dangerous.
The open source software is written in Processing and runs on a laptop which communicates with an Arduino controller. The image processing is fairly basic but with tweaking it seems to be effective. A movement detection algorithm based on background subtraction triggers the gun. The only sophistication is an ability to use a motion vector to fire at the predicted location of the target. There is no clever AI that recognizes what the target is - human, animal or machine - and certainly no person recognition for friend or foe detection. You can set a safe color to allow someone wearing the right clothing to enter the protected zone without being shot at.
Assuming you have the laptop and the webcam then the whole lot can be built for just over $100 and perhaps this is the future of home security - but some countries have laws about what you can and cannot do to an intruder.
As this is an open source project then perhaps this is a good place to work on AI algorithms to improve the gun's performance. A Kinect sensor would also make the task simpler.