mirror of
https://github.com/ArduPilot/ardupilot.git
synced 2026-11-14 12:02:38 +08:00
77fa51dcec786dc3069371a99f7488b6e84eaead
---------------------------------------------
- New improved fail-safe detection and handeling for single or multible signal loss and receiver malfuntion
- Improved LED status for APM 2.x
- Improved jitter performance (PPM output using nested interrupts)
-------------------------------------------------------------
ARDUPPM OPERATIONAL DESCRIPTION
-------------------------------------------------------------
APM 2.x LED STATUS:
-------------------
RX - OFF = No input signal detected
RX - SLOW TOGGLE = Input signal OK
RX - FAST TOGGLE = Invalid input signal(s) detected
RX - ON = Input signal(s) lost during flight and fail-safe activated
TX - OFF = PPM output disabled
TX - FAST TOGGLE = PPM output enabled
TX - SLOW TOGGLE = PPM pass-trough mode
SERVO INPUT (PWM) MODE:
-----------------------
- PPM output will not be enabled unless a input signal has been detected and verified
- Verified inputs are lost during operaton (lose servo wire or receiver malfunction):
+ The PPM output channel for the lost input will be set to the default fail-safe value
+ PPM throttle output (ch3) will be permanently set to fail-safe (900us)
- Lost channel signal is restored:
+ PPM output for the restored channel will be updated with the valid signal
+ PPM throttle output (ch3) will not be restored, and will continue to output fail-safe (900us)
PPM PASS-THROUGH MODE (signal pin 2&3 shorted):
-----------------------------------------------
- PPM output will not be enabled unless a input signal has been detected
- Active signal on input channel 1 has been detected:
+ Any input level changes will be passed directly to the PPM output (PPM pass-trough)
+ If no input level changes are detected withing 250ms:
+ PPM output is enabled and default fail-safe values for all eight channels transmitted
+ Input level change detected again, PPM fail-safe output is terminated and normal PPM pass-through operation is restored
…
…
…
…
…
Building using arduino
--------------------------
To install the libraries:
- copy Library Directories to your \arduino\hardware\libraries\ or arduino\libraries directory
- Restart arduino IDE
* Each library comes with a simple example. You can find the examples in menu File->Examples
Building using make
-----------------------------------------------
- go to directory of sketch and type "make".
--type "make upload" to upload according to the parameters in config.mk .
Building using cmake
-----------------------------------------------
- cd ArduPlane (ArduCopter etc ..)
- mkdir build
- cd build
- cmake .. -DAPM_BOARD=mega -DAPM_PORT=/dev/ttyUSB0
You can select from mega/mega2560.
If you have arduino installed in a non-standard location you by specify it by using:
-DARDUINO_SDK_PATH=/path/to/arduino ..
- make (will build the sketch)
- make ArduPlane-upload (will upload the sketch ArduPlane etc.)
If you have a sync error during upload reset the board or power cycle the board
before the upload starts.
Building using eclipse
-----------------------------------------------
Getting the Source:
assuming source located here: /home/name/apm-src
You can either download it or grab it from git:
git clone https://code.google.com/p/ardupilot-mega/ /home/name/apm-src
Generating the Eclipse Project for Your System:
mkdir /home/name/apm-build
cd /home/name/apm-build
cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ../apm-src -D BOARD=mega -D PORT=/dev/ttyUSB0
Here apm-src can be any sketch, ArduPlane/ ArduCopter etc.
Note: Unix can be substituted for MinGW/ MSYS/ NMake (for windows)
(see http://www.vtk.org/Wiki/Eclipse_CDT4_Generator)
input options:
CMAKE_BUILD_TYPE choose from DEBUG, RELEASE etc.
PORT is the port for uploading to the board, COM0 etc on windows. /dev/ttyUSB0 etc. on linux
BOARD is your board type, mega for the 1280 or mega2560 for the 2560 boards.
ARDUINO_SDK_PATH if it is not in default path can specify as /path/to/arduino
Importing the Eclipse Build Project:
Import project using Menu File->Import
Select General->Existing projects into workspace:
Browse where your build tree is and select the root build tree directory.
Keep "Copy projects into workspace" unchecked.
You get a fully functional eclipse project
Importing the Eclipse Source Project:
You can also import the source repository (/home/name/apm-src) if you want to modify the source/ commit using git.
Settings up Eclipse to Recognize PDE files:
Window > Preferences > General > Content Types. This tree associates a
filename or filename pattern with its content type so that tools can treat it
properly. Source and header files for most languages are under the Text tree.
Add "*.pde" as a C++ Source.
Autocompletion:
Right click on source project -> Properties -> Project References -> apm-build Project
Advanced:
* Regenerating the eclipse source project file:
cmake -G"Eclipse CDT4 - Unix Makefiles" -DECLIPSE_CDT4_GENERATE_SOURCE_PROJECT=TRUE /home/name/apm-src
Build a package using cpack
-----------------------------------------------
- cd build
- cmake ..
- make package
- make package_source
vim:ts=4:sw=4:expandtab
Languages
C++
62.3%
Python
17.7%
C
10%
Lua
4.8%
C#
2.1%
Other
2.7%