Code Monkey home page Code Monkey logo

dronestorm's Introduction

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

dronestorm's People

Contributors

arnav-gudibande avatar fragapanagos avatar jacisbell avatar jmern3250 avatar samfok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

dronestorm's Issues

robustify to drop in radio transmitter after startup

We currently handle starting up receiver module after transmitter and the receiver module starts reading in the middle of a packet. We look for the relatively long time between packets to align to the start of a packet.
However, we do not handle a drop and restart in radio transmission after the receiver module assumes it's aligned. If the receiver hardware cuts off the end of a packet because the transmitter cut out and then restarts because the transmitter restarts, our receiver module will be misaligned. We can check more packet timing to be robust to this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.