This is a program to stabilize a multicopter (copilot), runs on microcontroller like Arduino or Teensy++ and only a wii motion plus, no other electronics needed. These project started April, 2010. Supported are planes, tricopter, quadricopter (+ and x config), hexacopter (penta and coaxial). The self-leveling capability helps when doing FPV (first person view).

CHANGELOG

19 Oct 2011

Look at the new quadricopter shop. There are a
lot of item for building it!

21 Jan 2011

First step in the UAV complete system with GPS, this is the first implementation of the DCM filtering with Wii components, and a MARG sensor array, this is really really fast way!

The BaronPilot name & project will be changed, the new SuperEconomical UAV will be main target for this project.

Founding a new company to project&build this vehicles, with no worry for users, cheap, and fast delivery. Target price will be under 180 euros.

3 Nov 2010

Introduced the V60 with the new Multiwii compatible mode, you don't need to modify hardware between the two platform (and to test the GUI).

Check with A command that the two angle pitch & roll (deg) value are near zero

Place vessel with nose up, you must read value like 90;0 (pitch roll).

give EW to save parameters on the eeprom.

Know the correct angle & direction?
Take this image reference, red arrow are positive direction of the angles:

All value are in this order Pitch Roll Yaw for the gyro, or x,y,z for the accelerometer

TODO

In order of priority:

Add GPS

Add magnetometer

Add ultrasonic finder

START UP

To start motors:

V58+

Have another approach, to engage motor, switch the mode channel on (stable mode) for 2 seconds (look at the flashing led), than put it in acro mode, now motors are engaged.

To switch off motors, put throttle to minimum and rudder to the left.

COMMAND LINE INTERFACE

Baronpilot accept some commands via serial at 115200baud, you can use serial monitor on the Arduino IDE.
All of this command must be lowercase.

PRP,PRR,PRY - Pid Read Pitch, Roll, Yaw

Read the PID parameters of the Roll Pitch and Yaw axis.
They are 3 numbers.
The first one is proportional to the current error between stick and gyro, unit is us/deg/s tipical 2, reduce it if you found your vessel to wobbling.
The second one is the integral, that parameter can reduce the offset of the difference in the motors, unit is 1/sec, typical 4-8. Large values compensate faster the offset.
The third one is the derivative, correct the istant variation of the error, this is a pure number, typical 0.

Ex. PRR
1.2;0.28;0

PWP,PWR,PWY - Pid Write Pitch, Roll, Yaw

Write the PID parameters of the Roll Pitch Yaw axis, to the RAM memory, you must write to the EEPROM to test it.
Ex: PWY 3.6;0.17;0
ok

SRR,SRP - Stable Read Roll,Pitch

Read the 3 parameters about the PID that control the attitude (with the help of accelerometer on the nunchuck).

Ex: SRR
2.5;2.0;0

SWR,SWP - Stable Write Roll,Pitch

Write the 3 parameters about the PID that control the attitude (with the help of accelerometer on the nunchuck).
Ex: SWR 2.5;2.0;0

Ok

EE - EEPROM erase

Remove old parameters

ER - EEPROM read

Read from the EEPROM the PID parameters, if they are not found in the memory load the default.

EW - EEPROM write

write current RAM PID parameters to the EEPROM

T - Transmitter

Current channel input read from the receiver, centered to 0, the unit is microseconds (us). Range is [-500,500]

Print current free RAM and current allocated memory to the internal buffers.
Ex: 1380;170

I - Reset IMU

Perform a calibration on the gyro.

AI - Accel Instant

Give you current angle (in 360°) accelerometer instantaneous, without the help of the gyro, not filtered from the centripetal forces, useful in stand still.
Angles are Pitch & Roll

Ex: AI
0.05;88.9

AF - Accel Filtered

Give you current angle (in 360°) accelerometer filtered with the help of the gyro. Check to see 90° in vertical situation.

Ex: AF
0.05;88.9

AR - Accel Raw

Give you current value read from the accelerometer centered to 0. Warning usefull only if you have correctly calibrated it with 'vs' command. Measured unit is not used, atan2 is used to calc angle so importance is only relative that all 3 value are the same scale.

Ex: AR
0.05;0.08;100.4

VR,VW - Vertical read/write

Write or read, the 3 accel zero value that determine the vertical vector (x,y,z), they are 0-1024 (10bit) value (normally near 512). You can adjust these value to find a corrected vertical and planar vessel.

Ex: VR
498.00;516.00;514.00

VS - Vertical set

Place vessel on a flat surface, give this command to write current vertical vector for the stable mode.

ESC?
Hobbywing/Turnigy 18A programmable. They support Fast PWM also at 500Hz.

structure is made with 10x10mm aluminium frame and plywood

Yaw mec.?
SG5010 servo

What are the correct values from G A T commands?
Gyro must be zero if you don't touch your vessels, A give you current roll&pitch value so they must be 0 when you have zeroed it with the 'V' commands. T give you number like 1000-2000 and then -500,500. They must react to the radio.

What to do if arduino reset in flight?
Don't power it with the same line of servo or esc.

How to build a tricopter (by Signguy)
A very simple project, with only 4 gyro, without a board, but you must have a radio that support heli & 120degrees.

KapteinKUKs Simple and Low Part Count Quad, Hex and Tricopter Flight Controller
simple from the software view, but complex for electronics & without self-leveling. Preferrable if you don't have programming skills.