Brushless Gimbal Controller - SOFTWARE

Status
Nicht offen für weitere Antworten.

rc-action_de

Erfahrener Benutzer
I have set my com port to 2 (??)
but no changes.... I cannot conect to the board... other advices?
this is the second board I buy... the first one after many attempts finally burnt...
It has somehow got better... from red to yellow (but forever....)


http://www.youtube.com/watch?v=Mu5lmunelOA
Com 2 is the port on which you installed the drivers?
You'll be able to measure the voltage on both condensers.
If it is too low, then you can indeed flash but get out after a connection.

Greetings Henry
 

OlliW

Erfahrener Benutzer
hallo

Ok, nicht sehr elegant, aber es sollte gehen, hier der neue Vorschlag für ein Patch um das Startup ACC-Problem zu umgehen...
Code:
/**********************************************/
/* Main Loop */
/**********************************************/
int count=0;
int _count= 200;
void loop()
{
:
:
:
  if( _count ){
    gyroRoll = gyroRoll + 100 * config.accelWeight * (rollAngleACC - rollSetpoint)* fabs(rollAngleACC - rollSetpoint)/sampleTimeACC;
    gyroPitch = gyroPitch + 100 * config.accelWeight * (pitchAngleACC - pitchSetpoint)* fabs(pitchAngleACC - pitchSetpoint)/sampleTimeACC;
    _count--;
  }else{
    gyroRoll = gyroRoll + config.accelWeight * (rollAngleACC - rollSetpoint)* fabs(rollAngleACC - rollSetpoint)/sampleTimeACC;
    gyroPitch = gyroPitch + config.accelWeight * (pitchAngleACC - pitchSetpoint)* fabs(pitchAngleACC - pitchSetpoint)/sampleTimeACC;
  }
:
}
Der Wert "100" kann natürlich nach belieben angepasst werden, bzw. so dass es gut funktioniert, man kann den Wert auch gleich fest vorgeben, also statt "100 * config.accelWeight" einfach ne Zahl, z.B. 0.01 etc., hinschreiben. Versuch macht klug :)

An der Stelle erkennt man aber auch einen möglichen Grund für einen Schiefstand, dem Problem mit dem raceagain so kämpft... ergibt sich dann wenn die Werte rollSetpoint & pitchSetpoint nicht Null sind (bzw. nicht dann Null sind wenn sie Null sein sollten)...

cheers
 

rc-action_de

Erfahrener Benutzer
Danke Olli,

das werde ich gleich mal testen.
Den Unterschied zwischen Gyro Cal und Initialisierung habe ich übrigens gerade mal durchgespielt.
Um es mal kurz zu formulieren ==> ich erkenne hier keine Gemeinsamkeiten.

Roll und Pitchsetpoint sind doch die Variablen, welche den Winkel der über RCINPUT ermittelt wird beinhalten, oder.

Viele Grüße
Henry
 

OlliW

Erfahrener Benutzer
Den Unterschied zwischen Gyro Cal und Initialisierung habe ich übrigens gerade mal durchgespielt.
Um es mal kurz zu formulieren ==> ich erkenne hier keine Gemeinsamkeiten.
das verstehe ich nicht

Olli (meister) hat klar gemacht dass der Gyro-Cal Button nichts anderes macht als puts -nonewline $Serial "GC\n" abzusetzen, also die Zeichen "GC\n" per serieller Schnittstelle ans BruGi zu senden. In der Firmware kannst du in SerialComm.ino nachsehen das dieser Befehl nichts anderes macht als die Routine gyroOffsetCalibration() aufzurufen. In _046.ino kannst du nachsehen, dass diese Routine genau die von mir beschriebene Bestimmung der Gyromittelpunktswerte macht. In der _046.ino kannst du auch in der void setup() nachsehen, das EXAKT diese Routine aufgereufen wird, und es ansonsten keinerlei Initialisierung/Kalibrierung bgl der Gyro oder Acc gibt. Ergo: Gyro-Cal bewirkt das Gleiche wie Einschalten.

Würde mich interesssieren wie du zum obigen Schluss gekommen bist!

Roll und Pitchsetpoint sind doch die Variablen, welche den Winkel der über RCINPUT ermittelt wird beinhalten, oder.
ja, sehe ich auch so. Wenn, nur mal als Beispiel, einer der Kanäle benutzt wird und die RC-Signal Mitte vom Sender nicht "passt" dann führt das zu einer Schiefstellung, weil die _046 das Mittensignal des Senders nicht als Teil der initialiserung misst.
 

rc-action_de

Erfahrener Benutzer
Olli (meister) hat klar gemacht dass der Gyro-Cal Button nichts anderes macht als puts -nonewline $Serial "GC\n" abzusetzen, also die Zeichen "GC\n" per serieller Schnittstelle ans BruGi zu senden. In der Firmware kannst du in SerialComm.ino nachsehen das dieser Befehl nichts anderes macht als die Routine gyroOffsetCalibration() aufzurufen. In _046.ino kannst du nachsehen, dass diese Routine genau die von mir beschriebene Bestimmung der Gyromittelpunktswerte macht. In der _046.ino kannst du auch in der void setup() nachsehen, das EXAKT diese Routine aufgereufen wird, und es ansonsten keinerlei Initialisierung/Kalibrierung bgl der Gyro oder Acc gibt. Ergo: Gyro-Cal bewirkt das Gleiche wie Einschalten.
OK - ich nehme alles zurück obwohl es mein subjektives Empfinden ist. Mein Gimbal ist gerade nicht am Copter installiert. Im Handtest mit nicht 100% eingestellten PIDs schaffe ich es kaum mit eine Gyro Cal das Gimbal gerade zu bekommen. Etwa jeder 15 Versuch klappt dann doch.

Mache ich einen Neustart oder Reconnect, dann richtet sich das Gimbal eigentlich immer einwandfrei aus.

Das heißt man braucht Gyro Cal nicht ...

Ich frage mich wie ich es damals geschafft habe die Kamera schräg zu stellen, oder hatte es in einer älteren Version noch eine andere Bedeutung !

ja, sehe ich auch so. Wenn, nur mal als Beispiel, einer der Kanäle benutzt wird und die RC-Signal Mitte vom Sender nicht "passt" dann führt das zu einer Schiefstellung, weil die _046 das Mittensignal des Senders nicht als Teil der initialiserung misst.
Das erklärt auch warum die krumme PWM meines FRSKY Empfängers nur ein Ruckeln in alle Richtungen verursacht. OK - nach einem Update klappt das nun auch ganz gut.

Viele Grüße
Henry
 

raceagain

Erfahrener Benutzer
ufff, jetzt bin ich doch raus mit dem Gyro Cal und einschaltinitialisieren :-(

henry, wenn du die änderung von olli getestet hast und es funktioniert, kannst du dann die änderung hier einstellen und mal kurz schreiben, was und wie man die nutzen kann (du weißt ja, auch für so "blöde" wie mich, also step by step) :)

find ich echt supi olli und henry, das ihr euch so um dieses problem kümmert. Danke
 

rc-action_de

Erfahrener Benutzer
Die Änderung soll bewirken dass das Gimbal beim Erststart schneller in Richtung Nulllage läuft und anschließend den ACC Multiplikator wieder ändert. Die Änderung selbst war jetzt kein Bestandteil meines Tests.

Ich muss dazu sagen das ich keinen funktionierenden Multiplikator (100,200, etc.) gefunden habe. ACC war immer zu gering bzw. schien wie deaktiviert.

Bevor ich jedoch weiter teste, muss das Gimbal auch ausgewogen und installiert sein. Im Hand- Wackel Test bekomme ich leider keine zufriedenstellenden Ergebnisse hin.

Ergo: für mich ist der Button Gyro Cal in der Software nicht notwendig und somit meine Calibrierungsprozedur nur zusätzliche Arbeit.

Wenn dein Gimbal beim Start nicht gerade steht, dann ist das wahrscheinlich ein Missverhältnis zwischen Gyro und ACC.

In diesem Fall einfach ACC langsam erhöhen bis das Gimbal gerade steht.

Viele Grüße
Henry
 
Zuletzt bearbeitet:

raceagain

Erfahrener Benutzer
also mit der normalen _046 Version kann ich arbeiten? hatte sonst immer mit einem acc wert von 0,0002 oder 0,0001 gearbeitet.

soll ich dann in 0,0001 schritten erköhen? und jedesmal neu spannung anlegen, oder?

danke euch,werd am we testen und berichten
 
Com 2 is the port on which you installed the drivers?
You'll be able to measure the voltage on both condensers.
If it is too low, then you can indeed flash but get out after a connection.

Greetings Henry
voltage on both condensers are 2.1 v
i try to connect to gui (powering with battery )but I can not access, and then
I can not change the parameters(like motor pole P I D ....)
 

rc-action_de

Erfahrener Benutzer
voltage on both condensers are 2.1 v
i try to connect to gui (powering with battery )but I can not access, and then
I can not change the parameters(like motor pole P I D ....)
That ist the Problem. Do you have the MPU6050 conneted ?

If Yes disconnect the MPU and test again.

The Voltage ist to low for the Atmega.

Hmmm on both ... Is the Fuse OK ?

also mit der normalen _046 Version kann ich arbeiten? hatte sonst immer mit einem acc wert von 0,0002 oder 0,0001 gearbeitet.

soll ich dann in 0,0001 schritten erköhen? und jedesmal neu spannung anlegen, oder?

danke euch,werd am we testen und berichten
Ganz genau- wobei ... wenn es bei 0.0002 noch schräg steht, dann kannst du von dort aus auch leicht erhöhen.

Viele Grüße
Henry
 
Zuletzt bearbeitet:
That ist the Problem. Do you have the MPU6050 conneted ?

If Yes disconnect the MPU and test again.

The Voltage ist to low for the Atmega.

Hmmm on both ... Is the Fuse OK ?
The board is new!!!
i put the arduino sourse code _046 and all ok,
the problem is after ,when I try to connect the board to GUI to check the parameters......
I had the same problem with two different board (I tried three different PCs and different usb cables)
the mpu6050 is not connected(watch my videos)
I can not understand what could be wrong.....:confused:
best regards
ernesto
 

biele01

Erfahrener Benutzer
Hallo. Ich möchte morgen mal den ersten flug mit dem gimbal machen,und hab alles soweit aufgebaut.ich hab die pwm rc kabel an die eingänge a1 und a2 gesteckt.kann aber mittels funke den kamerawinkel nicht verstellen.bin mir garnich sicher ob das bereits implementiert ist.hab bisher eigentlich nur horizontale videos gesehen..hm masse und 5v der rc kabel habe ich nicht verbunden.hat ja masse vom gleichen akku.geht leider nicht.mache ich was falsch.oder gibts ne notlösung wie ich erstmal nick auf wenigstens 45 grad halten kann.hab das martinez v1 board. Grüsse tobias
 
Guten Abend,

ich hatte eben die Idee das man, falls noch Platz für Code ist, eine Funktion - ähnlich dem GyroFailsafe der Multiwii2.2 - realisieren könnte. Sprich, die Kalibrierung startet erst wenn die IMU ganz still steht? Vielleicht macht das ja Sinn, erhöht den Komfort? Habe die Wippen für Nick & Roll jetzt so "eingestellt" das die Rotoren bei "Nulllage" genau zwischen den Magneten "hängen" - seitdem klappt es mit der StartUpprozedur schon viel besser. Danke nochmal an jeden der dieses tolle Projekt vorantreibt. Habe eben den ersten Test mit BrushlessGimbal am Tricopter gemacht und es sieht ganz gut aus. Leider nur indoor aber hey, das ist jammern auf hohem Niveau. Yippie I yeah!
 

quadraf

Erfahrener Benutzer
The board is new!!!
i put the arduino sourse code _046 and all ok,
the problem is after ,when I try to connect the board to GUI to check the parameters......
I had the same problem with two different board (I tried three different PCs and different usb cables)
the mpu6050 is not connected(watch my videos)
I can not understand what could be wrong.....:confused:
best regards
ernesto
I got a message from Mayer and he says the following:
---------------
Hi everyone, I have a problem with GUI martinez suddenly does not write to flash, however if I use b-gimbal http://code.google.com/p/b-gimbal/
works.
---------------
A long shot but maybe this is a sollution for you...?

Hans
 

quadraf

Erfahrener Benutzer
Timonlee,

Das ist superarbeit was du dar machst :cool:
Konnst du bitte auch ne foto von gimbal machen und deine PIDs geben...
Ach ja gibt doch alle details :eek:;)

Hans
 

quadraf

Erfahrener Benutzer
Timonlee,

Das ist superarbeit was du dar machst :cool:
Konnst du bitte auch ne foto von gimbal machen und deine PIDs geben...
Ach ja gibt uns doch alle details :eek:;)

Hans
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten