nerf-iron-dome

Automatic Nerf Sentry Gun

View the Project on GitHub brianlevis/nerf-iron-dome

Nerf Iron Dome

Turret

Contributors

Brian LevisLuciano VinasAndrew Chan

Summary

The aim of this project is to build a nerf turret that can do cool stuff. Cool stuff might include:

Quick Start

Running the Web Server

There is a python server that provides a live stream of the camera located at server.py. To run, do

  1. Activate the virtual environment with source env/bin/activate.
  2. FLASK_APP=server.py flask run --host=0.0.0.0 from the project directory.

Contributing

Status

The turret has been constructed, and may be controlled via a USB Xbox 360 Controller. It’s electronics are spaghetti no longer spaghetti.

The turret can track and attack faces, or an object of a certain color and size. Tracking is currently just done by moving the turret towards the target with movement and flywheel revving speed proportional to target distance.

If not running tracking code, the turret may be operated manually via Xbox controller, or keyboard input to a camera livestream webpage.

TODO

Software:

Tech Documentation

Hardware

Nerf RapidStrike with pusher and flywheel motors hooked up to 7.5V 100W power supply and 5V relay module. Super high torque HS-805BB servos hooked up to 6V 18W power supply. Arduino controls all actuators, and communicates over serial with Raspberry Pi. Raspberry Pi Camera v2 mounted on top of gun. Possibly will be mounted on drum tripod.

Software

Python Connector Design

nerf_turret

All turret actuation is abstracted through the nerf_turret interface, which is importable as a python module. Do not use v1_stable_controller_operation, which is deprecated. The current interface contains the following functions:

set_velocity(pan_velocity, tilt_velocity)

Parameters

move(pan_location, tilt_location)

Parameters

pan(position)

Parameters

tilt(position)

Parameters

rev(rev_speed)

Parameters

fire(num_shots)

Parameters