Skip to content

Stanford-BIS/dronestorm

Repository files navigation

dronestorm

Dronestorm provides control for a quadcopter as implemented either through standard coding or through neural networks programmed with nengo. Dronestorm runs on a general purpose computer (e.g. a Raspberry Pi) onboard the quadcopter as a complement to a the quadcopter's flight control board (e.g. Omnibus F3).

Documentation is available on the wiki

Quadcopter Build 2

In build 2, we do away with the PWM signals between the receiver, the Raspberry Pi, and the flight control board.

Parts

Installation

sudo python setup.py develop

Run

Runtime scripts can be found in the runtime directory. Executing one of the scripts should start the appropriate modules from the runtime_modules directory. As an example, to run a controller which simply forwards receiver data to the flight controller, change to the runtime directory and run ./run_control_none.sh

Quadcopter Build 1

In this build, the Raspberry Pi takes data in from the flight control board via the USB port and sends commands to a flight control board via the Pi's I2C interface to the PWM output generator

Parts

I2C Interface

The onboard communicates with the PWM output board via the I2C protocol. As described here, check the pi's I2C interface using

sudo i2cdetect -y 1

The I2C library is provided by the ext/Adafruit_Python_PCA9685 subtree. Note that it must be installed per the README directions within the ext/Adafruit_Python_PCA9685 directory.

Execute register_startup.sh to set up startup.py to run upon boot.

Installation

sudo python setup.py develop

  • install adafruit i2c library
  • register startup script