This mini pi controlled robot has the potential to wreck havoc on your co-workers! Jordan B. has the full tutorial up on her blog.

Meet Raspberry Jolt, my mini nerf-dart-shooting robot with WIFI control and remote video recording. It’s powered by the first gen Romo by Romotive and a raspberry pi.

Parts list:

I used the Adafruit 16 Channel 12-bit PWM/Servo Driver tutorial with this circuit and Adafruit’s Python Library to hook up the servo to the Pi. After I had the circuit working on a breadboard I used the male header pins and female jumper wires to slim down the bot. Getting the Raspberry Pi to auto-connect to WIFI and run headless took some work; I used wpa_supplicant.conf to do it, and installed vncserver and SSH to control it remotely. I installed Avahi, which is the same as Apple’s Bonjour, so that I could always connect to the pi via http://raspberrypi.local once it boots and connects to the router. (However, once you have its IP address, shooting the dart is faster via IP address rather than by DNS lookup).

I modified Adafruit’s Servo_Example.py script to pull the servo back for 1 second and then return to front position. To access the Pi’s GPIO pins you need to be root, so I followed this tutorial to write and compaile a simple C script that could temporarily run commands as root. (I skipped the shell script part and just ran the python command from the C script). Finally I installed apache and PHP, and wrote a simple PHP script that calls the pulltrigger python script.

Mounting the servo to the trigger was the hardest part. My first two versions had the servo placed next to the trigger, but that was really hard to mount onto the round barrel of the gun. I also tried an all-lego chasis with reinforcement, but it was too heavy and bulky to mount onto the Romo.