TOC or The Open Copter is a semi-autonomous-quadcopter which is made with Accelerometer,Gyroscope and Magnetometer which is present on single chip MPU9250. By using MPU9250's I2C interface and AVR Atmega328 microcontroller stable output is given to the underlying PID routine which does all the balancing for Quadcopter in air. Also the chip NRF24L01 is used so that wireless communication from hand-held controller to receiver on Quadcoder can happen. Also Designed a replica of Quadcopter using OpenGL and Processing for simulation purpose.
- Atmel Studio 7
- Visual Studio to back Atmel Studio
There is no need to add any extra libraries. All open source libraries are embedded in the project itself, the following are the libraries used and they are licensed under respective project license:
- jrowberg's I2CDevlib
- RF24 library
- (project-root-dir)/ quadcopter-core - core firmware for quadcopter.
- (project-root-dir)/ quadcopter-simulation - matlab/octave simulation for quadcopter.
- (project-root-dir)/ quacopter-documentation - quadcopter full documentation
- (project-root-dir)/ quadcopter-controller - hand-held controller
Navigate to (project-root-dir) then do following:
- Command Line via avrdude (Linux)
avrdude -C "avrdude.conf" -v -p atmega328p -c arduino -P /dev/ttyUSB0 -b 57600 -D -U flash:w: quadcopter.hex:i
-b This option sets the baud rate for communicating with the board
-p This specifies the target type. The configuration file for avrdude has a long list of supported targets, with all the important parameters for each.
-P Specifies the communication port. As soon as the device is hooked up to your USB, it should be assigned a file in /dev/, and this is the string that needs to be passed to the -P option. The easiest way to find this is just dmesg | grep ttyUSB*
- Command Line via avrdude (Windows)
avrdude -C "avrdude.conf" -v -p atmega328p -c arduino -P .COMxx -b 57600 -D -U flash:w: quacopter.hex:i
where COMxx is port no. eg. COM34
- Command Line via avrdude (Linux)
avrdude -C "avrdude.conf" -v -p atmega328p -c arduino -P /dev/ttyUSB0 -b 57600 -D -U flash:w: transmitter_rf24.hex:i
-b This option sets the baud rate for communicating with the board
-p This specifies the target type. The configuration file for avrdude has a long list of supported targets, with all the important parameters for each.
-P Specifies the communication port. As soon as the device is hooked up to your USB, it should be assigned a file in /dev/, and this is the string that needs to be passed to the -P option. The easiest way to find this is just dmesg | grep ttyUSB*
- Command Line via avrdude (Windows)
avrdude -C "avrdude.conf" -v -p atmega328p -c arduino -P .COMxx -b 57600 -D -U flash:w: transmitter_rf24.hex:i
For more information visit my blog.
Top View of Quadcopter:
Side View of Quadcopter:
Hand-held Conroller:
Hand-held Controller construction:Basically a modified game-boy controller, the joystick is kept intact but main controller board from game-boy is removed , and a arduino nano is installed in place of that.
Main board construction Quadcopter: