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.
- 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.
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.
- 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 :
- Fork the project.
- git clone https://github.com/YOUR-USERNAME/BeagleBoneBlack-QuadCopter
- Create a samba connection to your beaglebone
- Compile the program locally using your arm cross compiler
- Upload the binary file to your beagle bone
- Run chmod go+x on the file
- Run ./[binary_file_name]
Nothing should happen - unless you have your beaglebone connected to all the correct sensors and motors.
- BeagleBone Black
- 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
These projects have a tendency to grow big quite quickly - help is appreciated.
- Fork the project.
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request.
Add additional notes about how to deploy this on a live system
I use SemVer for versioning.
- Michael Brookes - Initial work - Mike Brookes
This project is licensed under the GNU General Public License - see the GNU License website for details.
- http://www.tkjelectronics.com - Kalman Filter
- https://gist.github.com/bradley219/5373998 - PID Algorithm
- https://www.adafruit.com - Electronic Sensors
- https://ie.farnell.com - Electronic Equipment