This is an update and rehosting of a senior design project completed in Spring 2008 at RIT. It is (to date) my favorite robotics project. Myself and two friends collaborated to create a remote controlled turret that was accessible from anywhere on the web. The project makes use of a 5 gallon air tank at ~80 psi to fire foam (Nerf) darts. One servo operates six rotating barrels which are mounted on two more servos that provide pan and tilt movement. There are two ultra bright LEDs providing light in dark conditions for a top mounted web-cam. An Arduino is used to control the turret, while communicating (via serial over USB) with a web server that hosts the custom web page and live video stream. A modified PC power supply was used to provide the power. Here's a video of the finished turret...
Full System Test
I was in charge of most of the hardware and electrical work, Mike programmed the Arduino (I usually work with other AVR stuff) to take serial commands from a server and run all the servos, lights, etc., and Kyle got the server and client web page all sorted out.
The "update" mentioned at the beginning refers to software, since leaving school (and successfully demoing the turret on a number of occasions) it became evident that our web server based solution was very cumbersome for casual use and a pain to reinstall. So I took it upon myself to create a new JAVA GUI to use on whatever PC the turret was actually connected to (it is almost platform independent...damn you Sun for not supporting serial). I also went on to add some very rudimentary target tracking (blob detection)...but it mostly just spazzes out when I leave it on automatic (image processing in pure JAVA is difficult to bring up to even 10 fps). It was a great opportunity to explore JAVA's support of web-cams and I did a bit of JAVA 3D for the loading screen. Code available below.
New JAVA GUI
I won't go into the gory details here because we did a nice job documenting the project during school. You can get that documentation (and CAD drawings of machined parts) here. Here are more pictures and videos!
|Web GUI||Inside Electrical||Back (Modified PC Power Supply)|
|Pan/Tilt Servos ||Barrel Servo and Gears ||Design Poster|
The only thing not shown in these photos is the clear Plexiglas walls later added to protect the electronics from curious fingers... In the future I will probably modify this to use the spring loaded piston from an electric AirSoft rifle to provide the air power...the tank is kind of annoying. I may also modify it to work with a smaller more appropriately sized power supply...the current solution was free :).
(It can actually fire much more rapidly than this test shows.)
High Torque Servo Pan & Tilt Test - One of the best videos from testing :)
The robot running the pan/tilt system in this video is one of the first I ever built, I use it all the time because it's a great test platform for new sensors and micro-controller code...it is described here.
- The original project site is here. (Until I get access from the admin (who changed our directory structure) I can't fix all the broken links.)
- Re-hosted project documentation is here.
- Mike's post on his site is here.
- Kyle's site which is frequently broken or redesigned...is here.
- Java code is available here (licensed under GNU GPLv3). It's not really portable, a bunch is hard coded at the moment and it doesn't extract necessary libraries properly; however, should be easy enough to modify. JAVA 3D and JMF should be installed to used the code. GiovynetSerialPort is also needed.)
- I'll try to locate the Arduino code, but really if your going to reproduce it you just need serial and PWM servo examples which are abundant. The documents have some decent info on getting a reliable serial protocol defined.
Dear Nerf, Hire me so I can make a commercialized version for everyone :).