|
|
(30 intermediate revisions by the same user not shown) |
Line 7: |
Line 7: |
| == Hardware == | | == Hardware == |
|
| |
|
| == Drone software ==
| | Build on a hand-wired PCB as a prototype |
|
| |
|
| There are two versions of the drone firmware, one for the motor test (mostly performance of a single motor) without the need of the prop-sheld and a full version to be used on the flying drone.
| | [[Drone control hardware]] |
| | <!-- [[File:schematic_rev0.png | 150px]] --> |
|
| |
|
| To get the source code - see section "software and files" below.
| | == Drone software == |
| | |
| === Motor test firmware ===
| |
| | |
| The motor test firmware is in the "motortest" directory.
| |
| | |
| To compile the source for a Teensy 3.5 or 3.6 the Teensiduino needs to be installed first.
| |
| | |
| Install Teensiduino, see https://www.pjrc.com/teensy/td_download.html .
| |
| Start with installing the most recent supported version of Arduino, then overlay this by installing the Teensiduino.
| |
| | |
| Once installed the directory needs to be prepared for compilation.
| |
| | |
| ====Linux====
| |
| | |
| make shortcut links to libraries and compiler. The shourtcut described below assumes you have installed arduino version 1.8.9 (and Teensiduino) in your home directory, change as appropriate:
| |
| | |
| cd drone_ctrl/motortest
| |
| ln -s ~/arduino-1.8.9/hardware/teensy/avr/libraries
| |
| ln -s ~/arduino-1.8.9/hardware/teensy/avr/cores/teensy3
| |
| ln -s ~/arduino-1.8.9/hardware/tools/
| |
| make
| |
| make upload
| |
| | |
| === Drone firmware ===
| |
|
| |
|
| The drone flight controller (base) firmware is in the "drone_ctrl" directory.
| | [[Drone firmware]] |
|
| |
|
| To compile the source for a Teensy 3.5 or 3.6 the Teensiduino needs to be installed first.
| | == Magnetometer calibration == |
|
| |
|
| Install Teensiduino, see https://www.pjrc.com/teensy/td_download.html .
| | Calibration is used using a calibration version of firmware and a calibration app from Prop Shield manufacturer. |
| Start with installing the most recent supported version of Arduino, then overlay this by installing the Teensiduino.
| |
|
| |
|
| Once installed the directory needs to be prepared for compilation.
| | [[Drone compass calibration]] |
|
| |
|
| ====Linux==== | | == ESC calibration == |
|
| |
|
| make shortcut links to libraries and compiler. The shourtcut described below assumes you have installed arduino version 1.8.9 (and Teensiduino) in your home directory, change as appropriate:
| | The drone control uses ESC pulse width from 1 to 2 ms, and all ESCs should be calibrated to use this range. |
|
| |
|
| cd drone_ctrl/drone_ctrl
| | [[ESC calibration]] |
| ln -s ~/arduino-1.8.9/hardware/teensy/avr/libraries
| |
| ln -s ~/arduino-1.8.9/hardware/teensy/avr/cores/teensy3
| |
| ln -s ~/arduino-1.8.9/hardware/tools/
| |
| make
| |
| make upload
| |
|
| |
|
| == Propeller - motor performance == | | == Propeller - motor performance == |
|
| |
|
| Measured with the app below, using the motor 3508-700KV Turnigy Multistar 14 Pole Brushless and a 14x5.5 carbon propeller.
| | [[Drone motor performance]] |
| The ESC is a Hobby-wing x-rotor 40A controller.
| | [[File:3508-700-14x5.5-11v.png | 150px]] |
| | |
| === Time responce ===
| |
| | |
| [[File:3508-700-14x5.5-11v.png | 600px]] | |
| | |
| With 11 V supply (3 lipo cells).
| |
| From 1.1ms to the ESC (idle) to 1.9ms almost full throttle. The ESC update frequency is 400 Hz.
| |
| | |
| [[File:3508-700-14x5.5-15v.png | 600px]] | |
| | |
| With 11 V supply (4 lipo cells). note that 30 amps is not sustainable, the motor gets hot fast.
| |
| | |
| === Trust 3508-700 14x5.5 ===
| |
| | |
| Transfer gain measurement from ESC pulse width to trust.
| |
| The Hobby Wing controller is calibrated to 1ms=off, 2ms=full power.
| |
| | |
| [[File:trust-3508-700_14x5.5.png | 600px]]
| |
| | |
| Normal size propeller (14x5.5) for the motor. The translation for ESC pulse to trust is almost linear.
| |
| The thrust increases with the square of the rotation speed, but drag increases with power 3 of the rotation speed, so the end result is almost linear.
| |
| The maximum thrust is about 1kg (10N).
| |
| | |
| Data for the graph above is
| |
| % Measurement from esc,motor,propeller test
| |
| % file created 2020-10-04 17:49:57.982360
| |
| % 1: esc value (motor 1) 0=1ms, 1024 = 2ms
| |
| % 2: rps (motor 1) a rotations per second)
| |
| % 3: rps (motor 1) b rotations per second)
| |
| % 4: Motor voltage (volt)
| |
| % 5: total current (amps)
| |
| % 6: thrust force (gram force)
| |
| % 7: CCV (rotation direction)
| |
| % 8: Temperature motor (deg C)
| |
| % 9: Temperature ESC (deg C)
| |
| 100 8.27 8.27 11.3 0.1 10 0 38.8 33.3
| |
| 200 18.89 18.91 11.3 0.4 54 0 28.8 27.9
| |
| 250 24.78 24.78 11.3 0.7 92 0 27.2 28.0
| |
| 300 30.11 30.16 11.3 1.2 136 0 27.8 27.6
| |
| 350 35.65 35.65 11.1 1.7 192 0 27.2 28.2
| |
| 400 40.33 40.54 11.2 2.5 246 0 26.3 28.7
| |
| 450 44.49 44.47 11.3 3.6 300 0 27.4 28.4
| |
| 500 49.34 49.33 11.3 4.5 371 0 26.8 28.5
| |
| 550 54.00 54.01 11.4 5.8 440 0 27.9 29.2
| |
| 600 58.11 58.07 11.2 7.2 523 0 27.0 29.3
| |
| 650 61.94 61.71 11.0 9.0 600 0 27.0 30.0
| |
| 700 65.24 65.20 11.0 10.3 660 0 27.6 29.8
| |
| 750 68.22 68.67 11.2 12.5 730 0 29.2 30.6
| |
| 800 71.01 71.14 11.3 14.4 806 0 31.7 30.3
| |
| 850 73.87 73.89 11.5 16.7 870 0 32.1 29.1
| |
| 900 76.76 76.62 10.8 18.7 930 0 33.0 31.3
| |
| | |
| === Trust 3508-700 18x5.5 ===
| |
| | |
| [[File:trust-3508-700_18x5.5.png | 600px]]
| |
| | |
| Oversize propeller (18x5.5). The translation for ESC pulse to thrust is almost linear here, with lower RPM and higher motor current.
| |
| | |
| Data for the graph above with 18" propeller is
| |
| % Measurement from esc,motor,propeller test
| |
| % file created 2020-10-04 17:40:42.147504
| |
| % 1: esc value (motor 1) 0=1ms, 1024 = 2ms
| |
| % 2: rps (motor 1) a rotations per second)
| |
| % 3: rps (motor 1) b rotations per second)
| |
| % 4: Motor voltage (volt)
| |
| % 5: total current (amps)
| |
| % 6: thrust force (gram force)
| |
| % 7: CCV (rotation direction)
| |
| % 8: Temperature motor (deg C)
| |
| % 9: Temperature ESC (deg C)
| |
| 100 5.95 5.95 11.3 0.2 12 0 24.7 28.3
| |
| 200 16.19 16.18 11.2 0.8 112 0 24.7 28.2
| |
| 300 24.77 24.76 11.2 2.2 270 0 24.7 28.8
| |
| 400 31.39 31.42 11.0 4.7 440 0 23.9 29.5
| |
| 500 36.94 36.98 11.2 9.0 640 0 25.1 30.0
| |
| 550 38.70 38.70 11.3 10.5 700 0 25.8 31.4
| |
| 600 40.72 40.56 11.0 12.5 770 0 28.4 32.4
| |
| 650 41.95 42.14 10.7 14.6 840 0 29.1 35.4
| |
| 700 43.73 43.73 11.1 18.5 890 0 33.1 37.1
| |
| 750 44.79 44.83 10.8 20.2 960 0 35.0 37.9
| |
| 800 45.53 45.56 11.8 22.3 1000 0 39.6 39.0
| |
| | |
| === Software and files ===
| |
| | |
| The files for these results is in our subversion repository:
| |
| | |
| Install subversion - https://subversion.apache.org/packages.html - and from a command line
| |
| | |
| svn checkout svn://repos.gbar.dtu.dk/jcan/mobotware/drone_ctrl
| |
| cd drone_ctrl/trunk/motortest_gui
| |
| ls
| |
| - motortest_gui.py is the application below.
| |
| - plot_rpm_sensor.m is the Matlab script to make the plots above.
| |
| ... other support and data files.
| |
| cd drone_ctrl/trunk/doc/Matlab
| |
| - Simulink version of hexacopter drone
| |
|
| |
|
| == Motor test app == | | == Motor test app == |
|
| |
|
| [[File:motortest_gui.png | 600px]] | | [[Drone motor test app]] |
| | | [[File:motortest_gui.png | 120px]] |
| == MATLAB simulation ==
| |
| | |
| [[File:drone_ctrl_simulink.png | 800px]] | |
| | |
| Simulink model of hexacopter.
| |
|
| |
|
| [[File:drone_ctrl_sim_hex.png | 600px]]
| | ==Matlab simulation== |
|
| |
|
| Sim mechanics simulated hex-drone hoovering.
| | [[Drone MATLAB simulation]] |
| | [[File:drone_ctrl_sim_hex.png | 120px]] |