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
In build 2, we do away with the PWM signals between the receiver, the Raspberry Pi, and the flight control board.
- Flite Test Versacopter 2 - chassis
- Makerfire BLHeli_S ESC - electronic speed controllers (AKA DC brushless motor controllers)
- Lumenier 2206 2350kv motors - DC brushless motors
- Rasbperry Pi 3 - onboard general purpose computer
- Omnibus F3 pro- flight control board (onboard microcontroller)
- Spektrum remote receiver - RC receiver
- Maxbotix I2CXL sonar - high quality sonar sensor
- HC-SR04 sonar - low quality sonar sensor
sudo python setup.py develop
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
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
- Flite Test Versacopter 2 - chassis
- Lumenier BL Heli ESC - electronic speed controllers (AKA DC brushless motor controllers)
- Lumenier 2206 2000kv motors - DC brushless motors
- Rasbperry Pi 3 - onboard general purpose computer
- Naze32 - flight control board (onboard microcontroller)
- Spektrum AR610 - RC receiver
- Adafruit PWM/Servo 8 channel featherwing - PWM output board
- Pololu 4 channel RC servo multiplexer - RC switch
- Maxbotix I2CXL sonar - high quality sonar sensor
- HC-SR04 sonar - low quality sonar sensor
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.
sudo python setup.py develop
- install adafruit i2c library
- register startup script