Академический Документы
Профессиональный Документы
Культура Документы
The purpose of the project is to create a large custom built octocopter. It will
rely on AHRS (Attitude and Heading Reference System) to stabilize the copter. T
he advantage for using eight motors is reliability, since the copter can still o
perate with one or more motor disabled. Another advantage is the ability to carr
y a larger payload than quadcopters. There are many design challenges for this p
roject. The first being structural support. To help this along, a professional g
rade laser cutter and 3D printers were used to create the frame. Power consumpti
on, weight, thrust, and sensors were carefully considered for this project.
Objectives & Introduction
The goal of this project was to design an octocopter that flies. This project co
nsisted of four people and each team member worked in pairs. We used the SJone b
oard for this project and implemented topics we learned in class. The class topi
cs we used for this project are I2C, UART, Semaphores, and Queue.
Team Members & Responsibilities
Christopher Sawtelle
Son Nguyen
Grant Welch
Noe Quintero
Component selection
Motor Mount
Power Hub
Frame
I2C PWM Expander
I2C PWM EXpander
I2C PWM Expander
I2C PWM
Expander
CAD Design
CAD Design
CAD Design
CAD Design
GPS
GPS
GPS
GPS
PID Algorithm PID Tuning
PID Tuning
PID Tuning
AHRS (Attitude Heading Reference System)
XBEE Integration
Nordic Integration
Arduino Remote
Schedule
Week# Date
Task
Actual
1
3/29/15 Compile Parts List
Complete
2
4/5/15 Source Parts
Complete
3
4/12/15 Interface with PWM expander
Complete
4
4/19/15 Interface and Calibrate the AHRS with the SJone Board Complete
3
4/26/15 Add PID to SJone board Complete
5
5/3/15 Tune PID and Interface with RC Transmitter
PID not tuned
6
5/10/15 Test Flight and fine Tuning
Broken Props / Burned ESC
7
5/17/15 Remote / GPS / Nordic Complete (Nordic function removed - unre
liable)
8
5/21/15 Fix Props and replace ESC
Complete
9
5/23/15 Test Flight & Tune PID
Parts List & Cost
Name
Qty
Total Cost
Acrylic Sheet (Frame) 1
Lipo Battery
3
$220
Carbon Fiber Rod
8
Motors 8
$120
ESC
8
$192
Carbon Fiber Propeller (Always
Nuts and Bolts (M4 Standard)
Battery Connectors
11
Zip Ties
8
$10
ABS Plastic (3D Printer)
6 AWG Wire
1
$30
Xbee PRO
2
$60
Arduino Mega
1
$30
IMU
1
$75
PWM Expander
1
$20
Design & Implementation
$30
$120
have spares)
200
$100
$30
1
$25
16
$65
The design section can go over your hardware and software design. Organize this
section using sub-sections that go over your design and implementation.
Hardware Design
Hardware Circuit Diagram
We initially decided on 10" blades, but soon realized that the longer the blade
the more efficient the system. We went with 12" blades. We also realized that in
order for the copter to fly we needed to find efficient batteries. The power de
nsity had to be extremely high, which is why we switched from the fifteen 2200 m
Ah batteries to the three 10 Ah batteries.
The hardware design was assembled by the whole team. This project was approached
by drawing the architecture on SolidWorks. Figure 'CAD Drawing', illustrates th
e design of our SJeight.
Main Frame
The main frame of the octocopter was laser cut in the Mechanical Engineering Dep
artment Mechatronics Lab. A view of the laser cut is seen in Figure 'Laser Cutte
r'. Acrylic Plastic was recommended for the frame because it s durable and low cos
t. The main frame had 3D printed rod slots which were sandwiched between two ide
ntical acrylic cuts. Figure '3D Printed Parts' and Figure 'Assembling the Frame'
demonstrate the sandwiched carbon fiber rod.
Main Frame
Laser Cutter
3D Printed Parts and Frame
Battery Size Check
Power Hub
The Power Hub shown in Figure Fully Assembled Power Hub, is designed to distribu
te power across all eight motors evenly. This was first design on SolidWorks and
then 3D printed which is shown in Figure 'CAD of Power Hub'. Eight female XT-60
slots and three female XT-90 slots were soldered on a circular 6 gauge wire rin
g to distribute the power evenly. The 6AWG wire was a requirement because the mo
tors in total pull 120 Amps through the power hub. The lower the wire gauge, the
thicker the wire. As wire increases in thickness the resistance is reduced whic
h lowers the power loss across the wire. Power loss is heat, so if there is any
resistance in the hub, the hub would heat up to extreme temperatures.
Power Hub
Unembarrassed
Test Fit
Fully Assembled
CAD of Power Hub
Electronic Speed Controller
We mounted eight 80A ESC (Electronic Speed Controller) underneath the frame usin
g zip ties. The input of the ESC was connected to the Power Hub where power is d
rawn. Shown in Figure ESC attrached to frame illustrates how the ESC are connect
ed around the frame. The ESCs are connected to the DC motor, through the inside
of the carbon fiber rod. The ESCs varies the throttle of the DC motors by sendin
g PWM signals. The ESCs have three thick wires that go to three wires on the mot
or. They are labeled A, B, and C. The motor wires are color coded with red, yell
ow, and black wires. You will need to hook up the wires in a configuration you c
hoose. We chose the following pairing.
Red
A
Yellow B
Black C
In order to alternate the direction you switch any two wires. We chose the follo
This section includes implementation, but again, not the details, just the high
level. For example, you can list the steps it takes to communicate over a sensor
, or the steps needed to write a page of memory onto SPI Flash. You can include
sub-sections for each of your component implementation.
Razor IMU
We interfaced the Razor IMU using UART. The euler's angle is provided by the IMU
. The datasheet is located at https://www.sparkfun.com/products/10736.
Hardware Circuit Diagram
Wireless Communication
The SJone interfaces with the Xbee wireless module through UART2. The Xbee reque
sts the latest joystick positions, and is feed into a queue by a producer task.
The latest joystick positions are processed by a consumer task to analyze the re
adings and make decisions as to throttle, yaw, pitch, and role.
Hardware Circuit Diagram
Adafruit PWM Expander
Due to a need for 8 PWM sources, of which were not available on the Sjone, we us
ed a PWM expander that was interfaced using I2C. After calculations are made for
each motor speed, the Expander is written to update the PWMs to the eight ESCs
and motors. This board is available at http://www.adafruit.com/products/1411.
Hardware Circuit Diagram
DSMX Satellite Receiver
The DSMX Satellite Receiver interfaces implements 115200 UART one stop bit and n
o parity. The packets were reversed engineered using the following website as re
ference: http://www.cgsy.com.au/archives/215 A buffer was needed to connect the
DSMX receiver to the SJone board. Without this buffer, the signal was to weak to
pull the line to ground. Another issue is keeping the packets aligned. A pollin
g routing was necessary to keep alignment.
Hardware Circuit Diagram
Testing & Technical Challenges
Receiver Reliability
We basically packed the interpretations. We tested to see what happends if the p
ower goes out from the receiver. When we lose communication with the receiver, w
e need to shut off power.
Motor Testing
Tested each motor individually and varied each motor at different throttles. Rep
eated the test with eight motors at the same time and isolated minor errors. The
minor errors we faced was lack of solder connection from the motor to the ESC o
r the ESC to the battery.
IMU Calibration Testing
Planted the Adafruit 9-DOF IMU on the main frame and tested the Yaw, Pitch, and
Roll. The data was collected and read through Hercules. We recommend using the 9
-DOF rather than the 10-DOF because the 10-DOF lacks important open source.
PID Tuning
A PID loop is extremely easy to implement. The concept is very basic, but the tu
ning is quite difficult. We highly recommend starting with a P system, adding th
e I term, then the D (if needed). PI systems are very common and can work just a
s well in many situations.
Tips: 1) Make extremely small changes when modifying your gains. 2) Create a PID
loop for each axis. (Yaw, Pitch, Roll) 3) Start with the P term on a single axi
s. It may not be perfectly stable. 4) If it is not perfectly stable, get it the
best you can then add the I term and repeat the process. 5) If it is still not p
erfectly stable, but you believe it improving then get it to the best stability
and add the D term.
When you have stability, I encourage you to add a disturbance to the system, suc
h as quickly off setting the axis with a push or touch. The system should stabil
ize quickly.
Yaw is the most difficult to control and is done by creating a differential spee
d between the clockwise propellers and the counterclockwise propellers. This is
why many people suggest that you place counter clockwise props on one axis, and
clockwise props on the other axis. A better explanation is given here on wikiped
ia. Wikipedia: Multirotor Flight Control
Challenges and Problems
Issue #1
One Issue that came up was the addressing of I2C. The datasheet for the PCA9685
presents the address as 0x40, but it is a 7-bit address. The SJeight function ac
cepts a preshifted 8-bit address (0x80). This was discovered from probing the bu
s with an oscilloscope.
Issue #2
Safety!!! One of our group member was injured with the copter.
Issue #3
There was some unexpected behavior with the SJone vs. the Arduino, causing the E
SC to full throttle and burn. Before attaching the propellers to the motor, test
the motors RPM with an oscilloscope. This method allows us to analyze if the mo
tor is responsive and running correctly. Once you re insure your code functions
correctly, then attached the propellers back onto the motor.
Issue #4
Tuning a PID controller is a control systems problem. This concept is taught in
EE132. I highly encourage anyone who is considering building a multi-copter from
scratch to research control systems. PID is not the best method for controlling
a multi-copter, but is used due to it's simplicity. This isn't saying a lot for
control systems. PID is hard. Tuning a PID can take hours or days depending on
the complexity of your system.
Issue #5
The extreme current involved in this project is very dangerous. A single short,
10 minutes before our demo, caused us to lose two of the ESCs. These ESCs are ve
ry expensive. We lost a total of three during the project.
Conclusion
In the end this project gave us an amazing amount of experiences. We were requir
ed to delve into the disciplines of Mechanical, Mechatronics, Electrical, and Co
mputer Engineers.
The cost of this project was extremely high, and replacing parts continued to ad
d to that cost throughout the project. It is highly recommended that you purchas
e at least 50% more parts than minimum. Highly volatile and sensitive parts such
as the propellers and ESCs are a required to have replacements.
Although at this point in time our copter is not stable, we still have learned a
great deal about the SJone board and interfacing many different components thro
ugh UART, I2C, and SPI. We attempted to cover all of the protocols that we learn
ed in CompE244 and may have been a little more ambitious than we should have bee
n.
This project took a great deal of time, even with four engineers.
Project Video
Upload a video of your project and post the link here.
Project Source Code
Sourceforge Source Code Link
Github Source Code Arduino/XBEE RC Version Link
Github Source Code DSXM Version Link
References
Acknowledgement
Thank you to Adafruit and Sparkfun for providing useful datasheets and demonstra
tions. Thank you to Sassoun Gostantian for helping us mill the PCB board for our
Arduino Controller. And lastly a special thanks to Preet for giving the EE's th
e opportunity to take the class.
References Used