open360tracker - Der Community Antennentracker Made in Germany

digaus

Erfahrener Benutzer
uart_putc(c); austauschen mit Serial.write(c);

Wegen den Pins schau ich noch mal... Hast du den Servotest mal probiert? Damit kannst du kucken ob der Tracker anständig läuft. Einfach statt master Servotest bei Github wählen.

Telemetrie kommt immer an den Hardwareserial, also da wo auch FTDI drankommt.
Super danke :) Servotest kann ich mal machen. Was mir noch aufgefallen ist, bei 1360 steht der Tilt Servo waagerecht und bei 650 senkrecht nach oben. Macht das was aus?

MfG digaus

Edit: Ok das Problem ist ich führe Rx und Tx nicht durch einen Schleifring, d.h. Die Daten eingeben wird schwierig.

Edit2: Hab es jetzt mal getestet, Kalibrieren funktioniert, wenn ich t90 eingebe guckt der schräg nach unten und wenn ich t0 eingebe schräg nach oben. Irgendwas passt nicht^^ achja und bei h90 setzt er den T wert auf 90 und es passiert nichts.
 
Zuletzt bearbeitet:

Rangarid

Erfahrener Benutzer
Edit: Ok das Problem ist ich führe Rx und Tx nicht durch einen Schleifring, d.h. Die Daten eingeben wird schwierig.
Wenn du die 360° Variante nutzen willst brauchst du das aber, oder wie willst du sonst die Daten auf den Tracker bekommen?

Edit2: Hab es jetzt mal getestet, Kalibrieren funktioniert, wenn ich t90 eingebe guckt der schräg nach unten und wenn ich t0 eingebe schräg nach oben. Irgendwas passt nicht^^ achja und bei h90 setzt er den T wert auf 90 und es passiert nichts.
In der config.h gibt es
Code:
/* #### Tilt servo 0° adjustment ####
*
* Enter PWM value of Servo for pointing straight forward
*/
#define TILT_0 1050
/* #### Tilt servo 90° adjustment ####
*
* Enter PWM value of Servo for pointing 90° up
*/
#define TILT_90 2000
Da kannst du den Servowert einstellen den du brauchst um 0° und 90° zu erreichen. Gültige Werte sind übrigens [1000...2000]. Außerdem vermute ich, dass dein Servo andersrum läuft. Ich weiß zwar nicht, ob das funktioniert, aber tausch mal die Werte vonTILT_0 und TILT_90 aus, dann sollte die Richtung andersrum sein.

Wenn das HXXX nicht funktioniert ist der Servo nicht richtig angeschlossen würde ich sagen. Werden denn die Kompasswerte korrekt ausgegeben?
 
Zuletzt bearbeitet:

digaus

Erfahrener Benutzer
Wenn du die 360° Variante nutzen willst brauchst du das aber, oder wie willst du sonst die Daten auf den Tracker bekommen?


In der config.h gibt es
Code:
/* #### Tilt servo 0° adjustment ####
*
* Enter PWM value of Servo for pointing straight forward
*/
#define TILT_0 1050
/* #### Tilt servo 90° adjustment ####
*
* Enter PWM value of Servo for pointing 90° up
*/
#define TILT_90 2000
Da kannst du den Servowert einstellen den du brauchst um 0° und 90° zu erreichen. Gültige Werte sind übrigens [1000...2000]. Außerdem vermute ich, dass dein Servo andersrum läuft. Ich weiß zwar nicht, ob das funktioniert, aber tausch mal die Werte vonTILT_0 und TILT_90 aus, dann sollte die Richtung andersrum sein.

Wenn das HXXX nicht funktioniert ist der Servo nicht richtig angeschlossen würde ich sagen. Werden denn die Kompasswerte korrekt ausgegeben?
Hab jetzt Tilt nochmal eingestellt. Tilt_0 ist jetzt 1965 und Tilt_90 ist 1030. Gebe ich jetzt t90 ein, dann schaut Tilt im 50 Grad Winkel nach vorne, gebe ich t180 ein schaut er waagerecht.

Nun zu Pan, ich muss P auf 40000 setzten damit er sich bewegt. Das Problem ist nur, dass Heading immer 0 zurück gibt und der Tracker sich somit endlos dreht egal welchen Wert ich eingebe.
 

Rangarid

Erfahrener Benutzer
Wenn Heading immer 0 bleibt stimmen die Werte vom Kompass nicht. Eventuell mal mit Multiwii überprüfen. Dann ist klar, dass der Servo nicht geht.

Wegen Tilt: Einfach rumprobieren, bis du die richtigen Werte findest. Fang mit Tilt_0 = 2000 an, dann Servo so ausrichten, dass er genau nach vorne schaut - also nicht zurückschieben oder so, sondern wirklich so, dass der Servo an ist und dann der Bügel abgeschraubt und an 0° angeschraubt wird. Bei TILT_90 sollte er dann genau nach oben schauen wenn du t90 eingibst. Also solange den TILT_90 Wert verkleinern, bis du bei t90 auf 90° kommst.
 
Zuletzt bearbeitet:

digaus

Erfahrener Benutzer
Wenn Heading immer 0 bleibt stimmen die Werte vom Kompass nicht. Eventuell mal mit Multiwii überprüfen. Dann ist klar, dass der Servo nicht geht.

Wegen Tilt: Einfach rumprobieren, bis du die richtigen Werte findest. Fang mit Tilt_0 = 2000 an, dann Servo so ausrichten, dass er genau nach vorne schaut - also nicht zurückschieben oder so, sondern wirklich so, dass der Servo an ist und dann der Bügel abgeschraubt und an 0° angeschraubt wird. Bei TILT_90 sollte er dann genau nach oben schauen wenn du t90 eingibst. Also solange den TILT_90 Wert verkleinern, bis du bei t90 auf 90° kommst.
Ok danke, ich probiere es mal. Wenn der Kompass einen weg hat, könnte ich dann evtl nen externen nehmen?

Die Position der er beim starten einnimmt ist das nicht Tilt_0? So hatte ich das nämlich eingestellt.
 
Zuletzt bearbeitet:

Rangarid

Erfahrener Benutzer
TILT_0 ist der Tilt Winkel 0°, also nach vorne schauend, TILT_90 ist der Winkel 90°, also nach oben schauend.

Externer Kompass sollte gehen, wenn es der selbe ist.
 

digaus

Erfahrener Benutzer
Glaub TILT_0, aber ist ja auch egal, wenn du t0 machst nimmt er TILT_0 und wenn du t90 machst nimmt er TILT_90.
Sehr seltsam... Gebe ich die Standardwerte für Tilt_0 und Tilt_90 ein, dann geht das. Also sende ich dann t0 dann bleibt er da wo er initialisiert hat. Gebe ich aber andere Werte für Tilt_0 ein und sende dann t0 dreht er sich... Für mich sieht das so aus als ob er immer noch mit den alten werten rechnet wenn ich t0 oder t90 eingebe...

Hab das nämlich so eingestellt, Tilt_0 auf 2000 gesetzt und den Servo losgeschraubt und die Halterung auf 0° gedreht. Dann Tilt_0 solange verringert bis der Halter auf 90° steht beim initialisieren und den Wert dann bei Tilt_90 eingetragen und den Wert bei Tilt_0 wieder auf 2000 gesetzt.

Hab jetzt mal den Code durchsucht und in der open360tracker.ino steht ne Zeile mit: tilt = map(tilt, 0, 180, 1000, 2000);
 

digaus

Erfahrener Benutzer
Ja das ist falsch, ist noch alter code. Müsste so sein:
map(tilt, 0, 90, TILT_0, TILT_90)

Und dann eben Eingabe t0...t90.
Ok Tilt passt jetzt, jetzt muss ich nur noch den externen Kompass ausprobieren.

Edit: Funktioniert mit nem externen Kompass, allerdings schaut er immer in die entgegengesetzte Richtung, d.h. bei h0 gibt Heading 180 zurück und Target 0. Und PIDs sind nicht so gut, wackelt ziemlich stark um den Punkt, aber das kann man ja einstellen :)
 
Zuletzt bearbeitet:

Rangarid

Erfahrener Benutzer
Chriss hat eine neue Bügelhalterung designt (mit kleiner Anpassung von mir):
buegel.jpg
Damit muss man den Bügel nichtmehr selber abknicken, sondern braucht lediglich das gerade Stück vorne. Außerdem ist das Servohorn inklusive.

Werde heut abend mal eins zum Testen drucken.
 
Zuletzt bearbeitet:

digaus

Erfahrener Benutzer
Hab noch ne Frage zu den PIDs, bekomme das Schwingen nicht weg, außer ich regel P oder I ziemlich weit runter, das Problem ist dann, dass die Power nicht mehr ausreicht zum drehen. Wenn ich D verändere tut sich garnichts, als ob der Wert keinen Einfluss hat. Hast du nen Tipp wie ich vorgehen soll?
 

digaus

Erfahrener Benutzer
Diese Werte haben ich als ganz gut erwiesen:
#define P 2200 //default 2200
#define I 280 //default 280
#define D 20000 //default 20000
So sieht das aus, wenn ich deine PIDs einstelle: http://youtu.be/hNuxM3gxDLY

Und egal was ich für D einsetzte, es ändert sich nichts. Wenn ich P und I ziemlich weit runter setzte, dann wird es besser aber er schafft es nicht mehr sich zu drehen.
 
Zuletzt bearbeitet:

digaus

Erfahrener Benutzer
Hab langsam das Gefühl, dass im Code was nicht passt... Hab mir jetzt mal den Error[0] ausgeben lassen.

So wie ich das sehe denkt er, er wäre noch 180° vom Istwert entfernt... Dadurch sind dann die PID Werte die beim Pwm Signal draufgerechnet werden so groß und er schwingt ziemlich stark. Und da der Error Wert nie kleiner 10 bzw größer als -10 wird, schwingt er die ganze zeit weiter.


Ich hab h0 eingegeben und er schwingt die ganze Zeit bei 180° :/
 

Rangarid

Erfahrener Benutzer
H ist das was aus dem Kompass kommt (Heading). T (Targetheading = Wo er hinkucken soll) ist das was du angibst. Der Code funktioniert soweit korrekt. Hab ihn selber getestet und er lief auch schon bei 2-3 anderen Leuten.

Mach mal Ein EEPROM Clear und fang von vorne an.
 
Zuletzt bearbeitet:

digaus

Erfahrener Benutzer
H ist das was aus dem Kompass kommt (Heading). T (Targetheading = Wo er hinkucken soll) ist das was du angibst. Der Code funktioniert soweit korrekt. Hab ihn selber getestet und er lief auch schon bei 2-3 anderen Leuten.

Mach mal Ein EEPROM Clear und fang von vorne an.
Ja wenn ich h0 eingebe dann müssten sich doch H und T angleichen, also auch beide 0 werden, aber stattdessen ist H immer 180° versetzt zu T... Naja ich schlaf mal ne Nacht drüber, vllt stehe ich ja einfach auf dem Schlauch.
 
FPV1

Banggood

Oben Unten