Features include:
- Return to Launch with a flick of your RC toggle switch or a mouse click in the graphical Ground Station
- Unlimited 3D GPS waypoints
- Built-in camera control
- Fully-scriptable missions
- One-click software load, and easy point-and-click configuration in the powerful Mission Planner. NO programming required!
- Replay recorded missions and analyze all the data with a graphing interface
- Supports two-way telemetry with Xbee wireless modules.
- Point-and-click waypoint entry or real-time mission commands while the UAV is in the air
- Fly with a joystick or gamepad via your PC--no need for RC control!
- Built-in failsafe will bring your aircraft home in the case of radio loss
All instructions and software are here.
APM 2 is an open source, Arduino-compatible, pro-quality autopilot. It is the most advanced IMU-based open source autopilot available today, and provides an entire UAV control system with scriptable missions with 3D waypoints, in-flight uploading of commands and powerful ground station software.
APM 2 supports any kind of of vehicle with a one-click change of code. Available code include ArduPlane (fixed wing), ArduCopter (rotary wing), ArduRover (ground vehicles) and more.
Everything you need to create an ArduPlane UAV:
* APM 2.5 autopilot with GPS ($179)
* [Optional] Telemetry kit ($75).
You'll also need a at least a five-channel RC radio setup, a soldering iron, a mini USB cable and of course something that flies! (We're partial to the SkyFun delta wing (right) and
Bixlee 2 powered glider (left) or its equivalents ourselves).
Resources:
Manual
Source code/firmware
Note: ArduPilot Mega requires no programming, but it's open source and you're welcome to modify it if you'd like. If you are going to play with the code, you can use the free Arduino IDE to edit and upload the code to the ArduPilot board.
Comments
The arduino ide doesn't compile the .pde files directly. It creates a tmp folder and copies all .pde files into a single .c file. Then comes the important bit...
The .pde files do not have the normal c prototypes for each method declared within them so the arduino ide creates them and puts them at the top of the temp .c file. I think the idea here is to make novice users unaware of public prototypes but it's a problem for other ide/compilers
When I try to compile the ArduPilotMega_1_0.pde, I am getting this error message.
What was missing?
Thanks
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp:43:18: error: Wire.h: No such file or directory
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp: In member function 'void APM_BMP085_Class::Init()':
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp:62: error: 'Wire' was not declared in this scope
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp: In member function 'void APM_BMP085_Class::Command_ReadPress()':
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp:143: error: 'Wire' was not declared in this scope
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp: In member function 'void APM_BMP085_Class::ReadPress()':
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp:156: error: 'Wire' was not declared in this scope
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp: In member function 'void APM_BMP085_Class::Command_ReadTemp()':
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp:179: error: 'Wire' was not declared in this scope
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp: In member function 'void APM_BMP085_Class::ReadTemp()':
C:\Program Files\arduino-0018\libraries\APM_BMP085\APM_BMP085.cpp:190: error: 'Wire' was not declared in this scope
./Attitude.cpp:7: error: 'control_mode' was not declared in this scope
../Attitude.cpp:7: error: 'MANUAL' was not declared in this scope
../Attitude.cpp:14: error: 'crash_timer' was not declared in this scope
../Attitude.cpp:15: error: 'nav_roll' was not declared in this scope
../Attitude.cpp:18: error: 'control_mode' was not declared in this scope
../Attitude.cpp:18: error: 'TAKEOFF' was not declared in this scope
../Attitude.cpp:18: error: 'LAND' was not declared in this scope
../Attitude.cpp:22: error: 'FLY_BY_WIRE_B' was not declared in this scope
../Attitude.cpp:22: error: 'AIRSPEED_SENSOR' was not declared in this scope
../Attitude.cpp:25: error: 'nav_pitch' was not declared in this scope
My own code for the Arduino Mega is compiling fine.
Using code CHDK for canons i can use a brief, low mA, 5V output connected to mini-usb into camera.
I was thinking of a spare like Output 5 and hoping to use pinMode to setup and digitalWrite to set low or high.
If all that is OK then I just need that pin number for Output 5 - thanks!