Skip to content

mike-brookes/BeagleBoneBlack-QuadCopter

Repository files navigation

License: GPL v3 Build Status CII Best Practices

BeagleBoneBlack-QuadCopter

This project hopes to achieve a flying BeagleBone, this project is a hobby. The build is custom (see installation section for a list of parts required). The general goal is to have a Linux board (BeagleBone Black currently) attached to a Quadcopter frame and acting as it's flight controller. The flight controller will maintain targets, the targets are currently set as part of testing but they could easily be modified to come from a controller.

Current version : 0.1.4

Project status

  • Code documentation is located here
  • Pitch and Roll are being controlled and are maintaining targets correctly.
  • Tests are being done in a controlled environment with the Quadcopter tethered.
  • PID results are looking ok but require further refinement.

Current TODO's :

  • Add doxygen documentation to the project. To-Done
  • Write a better motor control class.
  • Add 'maintain height' / 'move to target height' functionality utilising both the onboard Barometer and the Sonic Sensor.
  • Add 'maintain heading' / 'move to target heading' functionality utilising the onboard magnetometer.
  • Implement GPS.
  • Add maintain location / move to location functionality utilising onboard GPS.
  • (abstract) Add some sort of goals method, which allows for setting of targets.

Setup

  • MAC - Setting up an ARM toolchain on a MAC
  • Linux - Setting up an ARM toolchain on Linux
  • Windows - Setting up an ARM toolchain using Windows

Next :

  1. Fork the project.
  2. git clone https://github.com/YOUR-USERNAME/BeagleBoneBlack-QuadCopter
  3. Create a samba connection to your beaglebone
  4. Compile the program locally using your arm cross compiler
  5. Upload the binary file to your beagle bone
  6. Run chmod go+x on the file
  7. Run ./[binary_file_name]

Nothing should happen - unless you have your beaglebone connected to all the correct sensors and motors.

Requirements

  1. BeagleBone Black
  2. 10 DOF IMU Breakout Board
  • L3GD20H 3-axis gyroscope: ±250, ±500, or ±2000 degree-per-second scale
  • LSM303 3-axis compass: ±1.3 to ±8.1 gauss magnetic field scale
  • LSM303 3-axis accelerometer: ±2g/±4g/±8g/±16g selectable scale
  • BMP180 barometric pressure/temperature: -40 to 85 °C, 300 - 1100hPa range, 0.17m resolution
  1. MaxBotix UltraSonic RangeFinder - LV-EZ1
  2. Recommended : DJI Frame Kit

Contributing

These projects have a tendency to grow big quite quickly - help is appreciated.

  1. Fork the project.
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request.

Deployment

Add additional notes about how to deploy this on a live system

Built With

Versioning

I use SemVer for versioning.

Authors

License

This project is licensed under the GNU General Public License - see the GNU License website for details.

Acknowledgments