Benutzt du nun einen weiteren µC? oder steuerst du die zwei Servos aus der triguide heraus?
also um einen exakten wert zu bekommen musst du schon den acc mit dem gyro zusammen betrachten. es mag evtl für den anfang gehen nur den acc zu verwenden aber im flug bei seitenwinden und somit anderen beschleunigungen wird dir die kamera wegschwenken. aber ich weiß garnet ob sich das überhaupt bemerkbar macht.
normalerweiße musst du dir doch echt nur der wert des hover-modes vorknöpfen. nja wnen ich zuhause bin werd ich mal einen blick in den source waagen vllt finde ich ja was interessantes.
so hat mir doch keine ruhe gelassen
schau dir mal den folgen part an:
Code:
'-Mix components-
If Motors_on = 1 Then 'only when motors are running
'-MOTOR 1- (front left)
Ms_l_i = Sempf(throttlechannel) + Vorwahl 'throttle stick (3-228) + Vorwahl(20)
If Ms_l_i > 247 Then 'throttle clipping
Ms_l_i = 247
End If
Ms_l_i = Ms_l_i + P_set_roll_int 'add the gyro measurements (note the differences in "+" and "-")
Ms_l_i = Ms_l_i + P_set_nick_int
Ms_l_i = Ms_l_i + I_set_roll_int
Ms_l_i = Ms_l_i + I_set_nick_int
Ms_l_i = Ms_l_i + D_set_roll_int
Ms_l_i = Ms_l_i + D_set_nick_int
If State = 2 Then 'add DD term in hover mode
Ms_l_i = Ms_l_i + Dd_set_roll_int
Ms_l_i = Ms_l_i + Dd_set_nick_int
End If
'-MOTOR 2- (front right)
Ms_r_i = Sempf(throttlechannel) + Vorwahl
If Ms_r_i > 247 Then
Ms_r_i = 247
End If
Ms_r_i = Ms_r_i - P_set_roll_int
Ms_r_i = Ms_r_i + P_set_nick_int
Ms_r_i = Ms_r_i - I_set_roll_int
Ms_r_i = Ms_r_i + I_set_nick_int
Ms_r_i = Ms_r_i - D_set_roll_int
Ms_r_i = Ms_r_i + D_set_nick_int
If State = 2 Then
Ms_r_i = Ms_r_i - Dd_set_roll_int
Ms_r_i = Ms_r_i + Dd_set_nick_int
End If
'-MOTOR 3- (back)
If Ms_h_i > 247 Then
Ms_h_i = 247
End If
Ms_h_i = Sempf(throttlechannel) + Vorwahl
Ms_h_i = Ms_h_i - P_set_nick_int
Ms_h_i = Ms_h_i - I_set_nick_int
Ms_h_i = Ms_h_i - D_set_nick_int
If State = 2 Then
Ms_h_i = Ms_h_i - Dd_set_nick_int
End If
'when yawing very fast, throttle for the motor at the back is increased
Tailgas = Yaw_gyro_scale_int + Yaw_gyro_i_scale_int 'if these values are big, the motor at the back was tilted
Tailgas = Abs(tailgas) / 100
Ms_h_i = Ms_h_i + Tailgas
Else 'motors off
Ms_l_i = 0
Ms_r_i = 0
Ms_h_i = 0
End If
Evtl. könnte es so gehen: Servo(Tilt) = Servo(Tilt) + P_set_nick_int
oder so ähnlich
die servoansteuerung für das heckservo findest du direkt unter dem vom mir geposteten part. das ist denke ich ein gutes beispiel wie das dann funktionieren könnte.
PS.: wenn du das ganze in die triguide integrierst könnte man das ganze ja so amchen das man die pan/tilt funktion entweder über die trigui oder über stickbewegungen beim start aktivieren kann.
Lesezeichen