4in / 4out Mixer 

for Quadrocopter / Quadcopter

16F84A V1.12         2010/08/29  update

==============================================
Version 1.1x
Input: A0 (rudder),A1 (throttle), A2 (Eleon/Elevator),A3 (Aileon).
Output: B0 (motor left),B1(motor right), B2 (motor forward),B3 (motor back).

==============================================

we redesign the mixer function, and there is our thinking process,

If we can control all 4 rotors with one throttle channel, why not,

when Quadcopter is inital
A0 = 50%
A1 = 0% (throttle)
A2 = 50%
A3 = 50%
=> B0 = B1 = B2 = B3 =0%

when Quadcopter fly (state hover) and balance
A0 = 50%
A1 = 60% (throttle)
A2 = 50%
A3 = 50%
=> B0 = B1 = B2 = B3 =60%

***  So B0~B3 all respond correlated to A1 throttle.

------------------

when Quadcopter fly, (state yaw rudder)

The left and right rotors are run in counter direction of forward and backward rotors.

Example:
A0 = 60% (rudder)
A1 = 60%
A2 = 50%
A3 = 50%
=> B0 = B1 = A1 - ŁGA0 = 50%
      B2 = B3 = A1 + ŁGA0 = 70% => yaw left

A0 = 40% (rudder)
A1 = 60%
A2 = 50%
A3 = 50%
=> B0 = B1 = A1 - ŁGA0 = 70%
      B2 = B3 = A1 + ŁGA0 = 50% => yaw right

*** B0, B1 =(A1 - ŁGA0)
*** B2, B3 =(A1 + ŁGA0)

------------------------------------

when Quadcopter fly, (state forward )
Example:
A0 = 50%
A1 = 60%
A2 = 60% (Eleon)
A3 = 50%
=> B0 = B1 = 60%
     B2 = A1 - ŁGA2 = 50%
     B3 = A1 + ŁGA2 = 70%

*** B2 =(A1 - ŁGA2)
*** B3 =(A1 + ŁGA2)

------------------------------------
when Quadcopter fly, (state right)
Example:
A0 = 50%
A1 = 60%
A2 = 50%
A3 = 60% (Aileon)
=> B2 = B3= 60%
      B0 = A1 + ŁGA3 = 70%
      B1 = A1 - ŁGA3 = 50%


*** B0 =(A1 + ŁGA3)
*** B1 =(A1 - ŁGA3)

===========================================
final functions

(V1.12)  make direction, yaw control more easy (small action)


B0 = A1 -  ŁGA0/2 + ŁGA3/2
B1 = A1 -  ŁGA0/2 -  ŁGA3/2
B2 = A1 + ŁGA0/2 -  ŁGA2/2
B3 = A1 + ŁGA0/2 + ŁGA2/2

-----------------------------------
In the C source code, just replace the calculating statements as follows


PWM[0] = T[1] +(T[3]/2) -(T[0]/2);
PWM[1] = T[1] +227 -(T[0]/2) -(T[3]/2);
PWM[2] = T[1] +(T[0]/2) -(T[2]/2);
PWM[3] = T[1] +(T[0]/2) +(T[2]/2) -227 ;

===========================================
(V1.1) 

B0 = A1 -  ŁGA0 + ŁGA3
B1 = A1 -  ŁGA0 -  ŁGA3
B2 = A1 + ŁGA0 -  ŁGA2
B3 = A1 + ŁGA0 + ŁGA2
-----------------------------------
In the C source code, just replace the calculating statements as follows

PWM[0] = T[1] +T[3] -T[0];
PWM[1] = T[1] +454 -T[0] -T[3];
PWM[2] = T[1] +T[0] -T[2];
PWM[3] = T[1] +T[0] +T[2] -454 ;

==========================================.

ˇ@

BACK

======================================================================================ˇ@

You MAY duplicate, modify, give away or sell the original files in the web site or anything you derive from it.

ATTENTION : It is your own responsibility, if any damage cause by using the web site.

Philip Sun / TAIWAN

ilufa@yahoo.com

copy right 2004

ˇ@

Free Web Hosting