open360tracker - Der Community Antennentracker Made in Germany

MarenB

Runter kommen sie immer!
Na dann bin ich mal auf deine Tests gespannt...

MarenB funzt dein Tracker inzwischen?
Jein. Er bewegt sich, zielt aber schlecht. Ich hatte noch keine Zeit, der Sache auf den Grund zu gehen, leider.
In Frage kämen ein konstanter Winkel-Offset, eine unterbrochene/verzögerte Übertragung zwischen Taranis und Tracker (wobei dann auch Azimuth falsch sein muss), ein Kompass-Problem,...

Das Problem ist, dass Fliegen und Tracker beobachten gleichzeitig nur bedingt möglich ist ;)
 

Rangarid

Erfahrener Benutzer
Kannst du nicht auf Sicht fliegen und kucken, ob er richtig zeigt? Hab ich am Anfang auch gemacht... Einfach hintern Tracker gestellt und geguckt ob es ungefähr stimmt.

Wegen oszillieren, das hab ich teilweise auch noch so 1-2° hin und her um den eigentlichen Wert, war aber zu faul mit den PIDs rumzuspielen. Hier wäre für die Zukunft vielleicht noch geil, die PID Werte über einen Poti einzustellen, dann kann man einfach draußen rumspielen bis es passt.

Konstanten Winkel offset gibt es:
Code:
/* #### Compass offset ####
 *
 * If you did not mount your compass with the arrow pointing to the front you can set an offset here.
 *
 * Needs to be multiplied by 10 -> 90° = 900
 *
 * Range: 0 ... 3599
 *
 */
#define OFFSET 900
Eventuell mal kucken, ob das bei dir ein anderer Wert sein muss. Unterbrochene bzw. verzögerte Übertragung hatte ich bisher nur als ich die D-Serie Telemetrie mit meinem DIY GPS überlastet hab.

Bei Kompassproblemen einfach mal den clear eeprom Sketch raufladen und danach den Kompass neu kalibrieren. Könnte eventuell helfen. Wenn der Tracker im Servotest aber anständig läuft dann können deine Probleme eigentlich keine Kompassprobleme sein.
 

MarenB

Runter kommen sie immer!
Momentan ist ja leider Bastelwetter...

Ich bin ja mal zu Fuß im Bogen umher gelaufen, da stimmte es manchmal. Oftmals bewegt er sich auch eine ganze Weile lang nicht, weshalb ich die Datenübertragung im Verdacht habe. Allerdings, wenn ich mich recht erinnere, die Daten auf dem Display frieren nicht sein. Immer wenn ich ihn aufgebaut habe, um das zu testen, hatte ich dann mehr Bock auf Fliegen als auf Tracker beobachten :)

Testaufbau ist derzeit folgender:

- Teksumo mit X6R und deinem DIY-FrSky-GPS, eingestellt auf 2Hz (glaube ich)
- Taranis mit NPN-Transistor als Inverter intern verbaut, 2,5mm Klinkenbuchse als Ausgang zum Tracker
- 5m geschirmtes Kabel zum Tracker (ehemaliges S-VHS-Kabel)
- dort Eingang über MPX-Stecker (gleichzeitig AV-Out + Power-out zur Brille)
- und dann natürlich über den Schleifring auf einen Arduino Pro Mini.
 

Rangarid

Erfahrener Benutzer
Im Nahbereich ist er halbwegs ungenau. Das ist bei mir auch so:
https://www.youtube.com/watch?v=t7Wg0ki7fN8

Man sieht ganz gut in dem Video, dass er manchmal leicht daneben liegt oder sich einfach garnicht bewegt, die generelle Richtung aber stimmt. Bei mir habe ich das auf die GPS Ungenauigkeit geschoben, denn im Flug war er wesentlich drehfreudiger und hat eigentlich immer zum Flieger gezeigt. Wie genau kann cih aber auch nicht sagen. Aber selbst mit 4-5° Versatz ist das in der Regel kein Problem, wenn man mal bedenkt, dass eine 12 turn Helix noch ca 30° Öffnungswinkel hat.

Hier sieht man zwar den Flieger nicht besonders gut, aber man sieht gut, dass der Tracker sich schön gleichmäßig bewegt wenn der Flieger fliegt:
https://www.youtube.com/watch?v=KduENCHV0qc
 

MarenB

Runter kommen sie immer!
Ich bin ja auch schon damit geflogen. Der Teksumo hat einen FY 31-AP drin, da kann ich eigentlich Kreise um den Tracker fliegen.
Wie gesagt, das eine oder andere Mal scheiterte der Test-Versuch es an anderen Dingen und beim letzten Mal hatte ich mehr Bock auf Fliegen ;)
 

Rangarid

Erfahrener Benutzer
Habe mal den Fix von kleiner Haribo aufgenommen. Wer aktuell gerade noch die möglichkeit hat, die Firmware vorm testen aufzuspielen soll mal bitte folgende Änderung vornehmen:

Alter Code:
Code:
//Tilt angle alpha = atan(alt/dist)
void calcTilt() {
  uint16_t alpha = 0;
  //prevent division by 0
  if (targetPosition.distance == 0) {
    alpha = 90;
  }
  else {
    alpha = toDeg(atan(float(targetPosition.alt - trackerPosition.alt) / targetPosition.distance));
  }
  //just for current tests, later we will have negative tilt as well
  if (alpha < 0)
    alpha = 0;
  else if (alpha > 90)
    alpha = 90;
  SET_TILT_SERVO_SPEED(map(alpha, 0, 90, TILT_0, TILT_90));
}
neue Code:
Code:
//Tilt angle alpha = atan(alt/dist)
void calcTilt() {
  uint16_t alpha = 0;
  
  //this will fix an error where the tracker randomly points up when plane is lower than tracker
  if (targetPosition.alt < trackerPosition.alt){
    targetPosition.alt = trackerPosition.alt;
  }
  
  //prevent division by 0
  if (targetPosition.distance == 0) {
    // in larger altitude 1m distance shouldnt mess up the calculation.
    //e.g. in 100m height and dist 1 the angle is 89.4° which is actually accurate enough
    targetPosition.distance = 1;
  }

  alpha = toDeg(atan(float(targetPosition.alt - trackerPosition.alt) / targetPosition.distance));

  //just for current tests, later we will have negative tilt as well
  if (alpha < 0)
    alpha = 0;
  else if (alpha > 90)
    alpha = 90;
  SET_TILT_SERVO_SPEED(map(alpha, 0, 90, TILT_0, TILT_90));
}
Damit sollte da Problem behoben sein, dass der Tracker manchmal nach oben zeigt wenn man niedrig fliegt.
 

guillesan

Erfahrener Benutzer
One question, maybe crazy.
It would be possible to use an Arduino 2560?
I say that to have three serial inputs and more capacity microprocessor firmware may work faster.
Not if what I say is feasible but here I throw this question.
 

Rangarid

Erfahrener Benutzer
Yes it would work. You can remove the softserial and use Serial1 instead for local GPS. Pretty easy modification. But you need the same sensors -> HMC5883 compass. So for example mini APM might work as well.
 

guillesan

Erfahrener Benutzer
Yes it would work. You can remove the softserial and use Serial1 instead for local GPS. Pretty easy modification. But you need the same sensors -> HMC5883 compass. So for example mini APM might work as well.
Thanks for your answer Rangarid, I loprobare although I'm not sure know how to make changes in the program, as you know my ultimate goal is that the RVOSD protocol to work to try telemetry video and that have the necessary equipment mounted on a plane, some German, Aeromaster (glider), and not as end up making it work. Thank you
 

guillesan

Erfahrener Benutzer
Hello, I tried to make changes in the firmware necessary to work with Arduino Mega 2560 but my skills are minimal.
Rangarid you would be so kind as to tell me that I have to change to use the gpslocal serial1? I would greatly appreciate it
 

Rangarid

Erfahrener Benutzer
Remove these lines
#include <SoftwareSerial.h>
SoftwareSerial gpsSerial(GPS_RX_PIN, GPS_TX_PIN);

and in Setup() add

Serial1.begin(baudrate);

and in the rest of the file exchange gpsSerial with Serial1. Atmega2560 also has Serial2 and Serial3 so use the one that you like most on the board.

You could also do in the beginning
#define gpsSerial Serial1

then you just have to remove the lines mentioned above.

---------------Edit-----------------

Replace
Code:
#include <SoftwareSerial.h>
SoftwareSerial gpsSerial(GPS_RX_PIN, GPS_TX_PIN);
with

Code:
#define gpsSerial Serial1
--- Edit 2 ----

just added a new config for atmega in config.h. If you uncomment #define MEGA then it will use serial1. Code is on github:
https://github.com/SamuelBrucksch/open360tracker/commit/98c416327a0b26264c70dc86c20962c0995864b6
 
Zuletzt bearbeitet:

guillesan

Erfahrener Benutzer
Rangarid a question:
I downloaded the new firmware github, I wonder if I uncommented
#define MEGA is necessary also clear:
#include <SoftwareSerial.h>
SoftwareSerial gpsSerial (GPS_RX_PIN, GPS_TX_PIN);
and replace it with:
#define gpsSerial Serial1
 

guillesan

Erfahrener Benutzer
OK Rangarid
I assume that the plate is serial1 RX1, for now does not work me in lcd not see satellites, have confirmed that the local GPS gga just send this to 4800 and 1Hz.
I'm still doing tests,
 

guillesan

Erfahrener Benutzer
#ifndef CONFIG_H
#define CONFIG_H

/* Config file
* created by Samuel Brucksch
*
*/
#define DEBUG

/** PID Values
*
*/
#define P 5000 //default 2200
#define I 100 //default 280
#define D 1000 //default 20000

/* #### Atmega 2560 ####
*
* If using Atmega 2560 we do not need softserial, so uncomment if using an atema 2560
*/
#define MEGA


/* #### Protocol ####
*
* FRSKY_D, FRSKY_X, HOTT, EXTERNAL
*
* FRSKY_D -> D-Series
* FRSKY_X -> Taranis / XJT
* HOTT -> MX12, MX16 and all other HoTT transmitters with telemetry
* RVOSD
* MFD -> MFD protocol will not work with local GPS!!!!
* MAVLINK -> Mavlink protocol (APM/Pixhawk/...)
* GPS_TELEMETRY -> direct NMEA input
* SERVOTEST
*/
#define RVOSD

/* #### Baud Rate ####
*
* baud rate of telemetry input
* 9600 for FRSKY_D -> D-Series
* 57600 for FRSKY_X -> Taranis/XJT and MAVLINK
* 115200 for RVOSD (RVGS)
* ??? for HoTT
*/
#define BAUD 115200

/* #### 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 2025

/* #### Pan servo 0° adjustment ####
*
* Enter PWM value of Servo for not moving
*/
#define PAN_0 1470

/* #### Pan servo minimum required speed ####
*
* If the servo has problems to start a rotation when the speed is slow adjust this value until the tracker moves directly from each position
*/
#define MIN_PAN_SPEED 30

/* #### Compass declination ####
*
* http://magnetic-declination.com/
* Enter your city and then get the value for Magnetic declination
* for example [Magnetic declination: 3° 2' EAST]
*
* now enter the value in the format DEGREE.MINUTE * 10 -> 3.2 * 10 = 32
*
* set to 0 if you cannot find your declination!
*/
#define DECLINATION 3

/* #### Compass offset ####
*
* If you did not mount your compass with the arrow pointing to the front you can set an offset here.
*
* Needs to be multiplied by 10 -> 90° = 900
*
* Range: 0 ... 3599
*
*/
#define OFFSET 900

/* #### DIY GPS / Fix Type ####
*
* If you use the diy GPS the fix type is transmitted with the satellites on Temp2. The value is calculated like this:
* Num of Sats: 7
* Fix Type: 3
* Value = Sats * 10 + Fix Type = 7*10 + 3 = 73
*
* If you use the native frsky gps or fixtype is not present comment to disable.
*/
//#define DIY_GPS

#ifndef MFD
/* #### Ground GPS ####
*
* !!!!!!NOT SUPPORTED YET!!!!!!!
*
* needed for ground gps so home does not need to be manually set
*
* Types:
* MTK, UBX
* UBX not implemented yet
*
* does not work when in MFD mode
*/
#define LOCAL_GPS
//#define MTK
#define GPS_BAUDRATE 4800
#endif

/* #### Tracker Setup ####
*
* Start tracking when plane is XXX m away from tracker
*
* It is recommended to start tracking only if plane moved a few meters already. Default: 10m
*
*/
#define START_TRACKING_DISTANCE 10

/* ### LCD Display ###
*
* Uncomment to display data on LCD Display
*
* Please choose for the Display Type:
* I2C
* SPI
*
* LCD Display is required for this.
*
* Requires modified LiquidCrystal library: https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
*
*/
#define LCD_DISPLAY I2C
#define LCD_SIZE_ROW 4 // default 2

/* ### Battery monitoring ###
*
* Uncomment to monitor your Battery
*
* Voltage divider is required for this.
*
*/
//#define BATTERYMONITORING
#ifdef BATTERYMONITORING
//#define BATTERYMONITORING_RESISTOR_1 18000
//#define BATTERYMONITORING_RESISTOR_2 1000
//#define BATTERYMONITORING_CORRECTION 1.0 // default 1.0
#endif

/* #### Do not edit below this line */
#if TILT_0 < 700 || TILT_0 > 2300 || TILT_90 > 2300 || TILT_90 < 700
#error "Tilt servo range invalid. Must be between 800 and 2200."
#endif
Sorry to report that does not work me, the compass starts but my local GPS confirmed this to 1Hz 4800 gga is not on the LCD satellites.
I put my config.h if you see something wrong:

#if OFFSET < 0 || OFFSET > 3599
#error "Offset invalid. Must be between 0 and 3599."
#endif

#endif
 

Rangarid

Erfahrener Benutzer
I just looked at the code... if local gps is enabled it shows local sats, else it shows remote sats. Are you sure you have a fix?
 
Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten