Brushless Gimbal Controller - SOFTWARE

Status
Nicht offen für weitere Antworten.
Was meinst Du damit? Pin 5 geht auf INT an der MPU, ja. Dummerweise wird die MPU nach einigen Sekunden sehr warm, vermutlich ist doch irgendwas schon zerschossen....wtf...
 

quadraf

Erfahrener Benutzer
I am currently working on the serial protocol. That is required by the software above to work. So be patient ;-)

Will look like this:
S_PITCH_PID 1230 22 234

This sets the P, I and D Values during runtime in memory.
S_ for "Set"

If you want to save to eeprom, use: W_EEPROM

Will be available in 040, which is not ready yet.
Wow!! Lonestar keep up the great work you are doing:D:cool:

There is this comm component in Visual Basic wich let me communicate over serial interface...

If i figure that out then i could make realtime pid adjustments as well in B-Gimbal....;):D

Do you have an estimate guess when _040 will be ready...?? ( i am sitting on the front tip of my chair:) :rolleyes:)

Hans
 

Stef Stuntpiloot

Erfahrener Benutzer
@ Lonestar78, I feel a bit guilty because of all the effort you put in this project. How can I help you? (and ofcourse everyone else that puts a lot of time in this project!)
 
Ludwig,
wenn ich das richtig sehe müsste ich an den IMU Pins an der Control-Unit zwischen Pin 1 und Pin 4 eine SPannung von 5V messen, vorausgesetzt der Akku ist dran. Tut sich aber nix, nulla.
Die Plus-Nadel vom Multimeter halte ich an PIN 1, und ich messe einzig an PIN 2 eine winzige Spannung von 0,2V. Alle anderen haben Null, auch PIN 4 (GND).
Die Motoren ziehen übrigens beide an, bekommen also beide Saft.
Moment, da kommt mir ein Gedanke: Das rote Kabel zum USB hin zeigend, ist das PIN 5 oder 1?? Oder anders gefragt, ist das PIN 5 (also INT) zum USB zeigend?
Für mich war rote Farbe gleich +5V (=PIN1), daher habe ich gedacht das Bild sei seitenverkehrt!!!
Kurzer Check mit dem Multi... ja, kann gut sein... Nochmal kurz ein Kabel nachlöten...melde mich gleich wieder....hoffentlich ist die MPU nicht schin hin...
 

RC FAN2

Erfahrener Benutzer
genau , das Rote kabel ist der INT pin ....
alle grafiken sind von der draufsicht , also nicht spiegelverkehrt .
Hast du einen IMU von mir oder einen anderen ?
 
YEP!!! Das war der Fehler. Jetzt zuckt es und ich spüre bei Bewegung der MPU wie die Motoren anfangen zu wackeln. Jetzt muss ich nochmal in die COnfig schauen.... es scheint aber doch zu klappen. Hmmppf, dumm gelaufen, aber vielleicht Glück im Unglück.
Ich hab doch oben geschrieben das der Sensor von Flyduino ist. Der hier:
http://flyduino.net/MPU6050-Break-Out-onboard-33V-reg
 

Lonestar78

Erfahrener Benutzer
So, Protokoll tut :) Schnell nach Django Unchained noch ein paar Minuten programmiert....:)

Code Schnippsel, ich denke, es wird klar, wie es funktioniert.

Code:
struct config_t
{
uint8_t vers;
int16_t gyroPitchKp; 
int16_t gyroPitchKi;   
int16_t gyroPitchKd;
int16_t gyroRollKp;
int16_t gyroRollKi;
int16_t gyroRollKd;
int16_t accelWeight;
uint8_t motorUpdateFreq;
uint8_t nPolesMotorPitch;
uint8_t nPolesMotorRoll;
int8_t dirMotorPitch;
int8_t dirMotorRoll;
int8_t motorNumberPitch;
int8_t motorNumberRoll;
uint8_t  maxPWMmotorZero;
uint8_t  maxPWMmotorOne;
} config;

void helpMe()
{
  Serial.println("This gives you a list of all commands with usage:");
  Serial.println("Explanation in brackets(), use Integers only !");
  Serial.println("");
  Serial.println("WE    (Writes active config to eeprom)");   
  Serial.println("RE    (Restores values from eeprom to active config)");      
  Serial.println("TAC   (transmitts all config values in eeprom save order)");      
  Serial.println("SPP gyroPitchKp gyroPitchKi gyroPitchKd    (Set PID for Pitch)");
  Serial.println("SRP gyroRollKp gyroRollKi gyroRollKd    (Set PID for Roll)");
  Serial.println("SAW accelWeight    (Set Weight in accelWeight/1000)");
  Serial.println("SMP motorUpdateFreq nPolesMotorPitch nPolesMotorRoll");
  Serial.println("SME maxPWMmotorZero maxPWMmotorOne     (Used for Power limitiation on each motor)");
  Serial.println("SMD dirMotorPitch dirMotorRoll motorNumberPitch motorNumberRoll");
  Serial.println("GRC    (Recalibrates the Gyro Offsets)");
  Serial.println("HELP    (This output)"); 
}
 
Hey, jetzt klappt es, MPU ist nicht gehimmelt!! Die Rollachse überschwingt etwas d.h. sie läuft an jedem Endpunkt etwas zurück. Vermutlich liegt die Kam nicht im exakt im Schwerpunkt, kann das der Fehler sein? Ansonsten sieht es schon sehr brauchbar aus!!
Ich musste die MPU Settings wie folgt ändern:

// MPU Address Settings
#define MPU6050_ADDRESS_AD0_LOW 0x68 // default for InvenSense evaluation board
#define MPU6050_ADDRESS_AD0_HIGH 0x69 // Drotek MPU breakout board
#define MPU6050_DEFAULT_ADDRESS MPU6050_ADDRESS_AD0_LOW


Werte:
#define GYRO_PITCH_Kp 6.9 // Can be increased in
#define GYRO_PITCH_Ki 0.001
#define GYRO_PITCH_Kd 0.07

#define GYRO_ROLL_Kp 6.9
#define GYRO_ROLL_Ki 0.05
#define GYRO_ROLL_Kd 0.07

#define ACC_WEIGHT 0.05

ich versorge zum Testen mit 5 Zellen Eneloop, also entspricht ca 2S.
N8!!! Happy!!!
 

meister

Erfahrener Benutzer
Dachte mir bevor es nur ein Windows tool gibt, bau ich noch ein Linux tool dazu, sollte am ende aber auch unter Mac und Win laufen.
Bisher hat es leider noch keine funktion, kommt aber sobald das Protokoll in der Firmware fertig ist.

Gruß,
Olli
 
Highlander,
what controller do you have? The version from Ludwig looks a bit different now than in your picture.
With your picture I cannot help you, sorry.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten