Zanim...
Zanim...

Zanim...


Polskie Forum FPV

Forum modelarzy i pilotów FPV
Dzisiaj jest wtorek 25 wrz 2018, 00:59


Strefa czasowa UTC+1godz.




Nowy temat Odpowiedz w temacie  [ Posty: 178 ]  Przejdź na stronę Poprzednia  1 ... 8, 9, 10, 11, 12
Autor Wiadomość
Post: niedziela 24 cze 2018, 11:08 
Offline

Rejestracja: poniedziałek 12 maja 2014, 18:01
Posty: 221
Lokalizacja: Polska
W końcu jest jakiś postęp, kod wygląda obecnie tak:
Kod:
/*
  FrSky Telemetry library example
  (c) Pawelsky 20170831
  Not for commercial use
 
  Note that you need Teensy 3.x/LC or 328P/168 based (e.g. Pro Mini, Nano, Uno) board and FrSkyTelemetry library for this example to work
*/

#include "FrSkyTelemetry.h"
#include "NazaDecoderLib.h"
#include "SoftwareSerial.h"

FrSkyTelemetry telemetry; // Create telemetry object

void setup()
{
    Serial.begin(115200);
  telemetry.begin(FrSkyTelemetry::SOFT_SERIAL_PIN_11);
}

void loop()
{
if(Serial.available())
{
if(NazaDecoder.decode(Serial.read()) == NAZA_MESSAGE_GPS)
{
  telemetry.setGpsData(NazaDecoder.getLat(), NazaDecoder.getLon(),
    NazaDecoder.getGpsAlt(), NazaDecoder.getSpeed(), NazaDecoder.getCog(),
    NazaDecoder.getYear(), NazaDecoder.getMonth(), NazaDecoder.getDay(),
    NazaDecoder.getHour(), NazaDecoder.getMinute(), NazaDecoder.getSecond());
  telemetry.setTemsData(NazaDecoder.getNumSat(), NazaDecoder.getFixType());

    Serial.print("Lat: "); Serial.print(NazaDecoder.getLat(), 7);
    Serial.print(", Lon: "); Serial.print(NazaDecoder.getLon(), 7);
    Serial.print(", Alt: "); Serial.print(NazaDecoder.getGpsAlt(), 7);
    Serial.print(", Fix: "); Serial.print(NazaDecoder.getFixType());
    Serial.print(", Sat: "); Serial.println(NazaDecoder.getNumSat());
    Serial.print("Heading: "); Serial.println(NazaDecoder.getHeadingNc(), 2);
  telemetry.send();
}
}
}

W końcu pokazuje prawidłowe koordynaty GPS, niestety wartości kompasu bardzo skaczą, nie wiem czym jest to spowodowane, na wcześniejszym programie Flarssena kompas działał bardzo dobrze, zauważyłem, że podczas lotu kompas lepiej trzyma pozycję natomiast gdy stoi w miejscu (lub wisi) pozycja skacze, na poprzednim sofcie kompas jako nieliczna funkcja działał i trzymał cały czas prawidłową pozycję bez względu czy leciał czy stał w miejscu.
Chciałbym też zrobić aby wysokość pokazywało tak, że 1 metr to 1.0, teraz 1 metr pokazuje jako 0,1 i nie wiem jak można to zmienić, w ustawieniach aparatury nie było opcji przesunięcia przecinka.


Ostatnio zmieniony wtorek 26 cze 2018, 22:23 przez mrozilla, łącznie zmieniany 1 raz

Na górę
 Wyświetl profil  
 
Post: wtorek 26 cze 2018, 17:39 
Offline

Rejestracja: poniedziałek 12 maja 2014, 18:01
Posty: 221
Lokalizacja: Polska
Z tego co się dowiedziałem w telemetrii Hub prędkość powinna być wysyłana w węzłach, w bibliotece NazaDecoder z tego co rozumiem po wpisie " double spd; // speed in m/s" Arduino wysyła do aparatury prędkość w m/s. W Ersky9x przy jednostkach metrycznych jest standardowo jednostka "kts" bez możliwości zmiany na m/s więc w takiej sytuacji pomimo jednostki "kts" na wyświetlaczu prędkość jaką osiągam otrzymuję w m/s czy węzłach, bo już nie wiem. Podczas testów maksymalnie osiągnąłem 6 "kts" nie była to maksymalna prędkość tylko właśnie jaka to jednostka, bo ciężko określić to w powietrzu, a różnica po przeliczeniu na km/h różni się prawie dwukrotnie.


Na górę
 Wyświetl profil  
 
Post: wtorek 26 cze 2018, 18:36 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 6504
Lokalizacja: Polska
mrozilla pisze:
Z tego co się dowiedziałem w telemetrii Hub prędkość powinna być wysyłana w węzłach

I tak tez jest wysylana.


Na górę
 Wyświetl profil  
 
Post: wtorek 26 cze 2018, 18:39 
Offline

Rejestracja: poniedziałek 12 maja 2014, 18:01
Posty: 221
Lokalizacja: Polska
Czyli jest wysyłana w węzłach, Arduino dzięki Twoim bibliotekom konwertuje ją na m/s i taką prędkość widzę na wyświetlaczu? Moje 6 "kts" to 6 m/s czyli 21.6 km/h? Wystarczy aby w Ersky9x dodać opcję zmiany "kts" na "m/s" bez żadnego dodatkowego konwertowania?


Na górę
 Wyświetl profil  
 
Post: wtorek 26 cze 2018, 18:46 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 6504
Lokalizacja: Polska
mrozilla pisze:
Czyli jest wysyłana w węzłach

Tak

mrozilla pisze:
Arduino dzięki Twoim bibliotekom konwertuje ją na m/s

Nie, bibloteka konwertuje m/s na wezly.

mrozilla pisze:
i taką prędkość widzę na wyświetlaczu?

Nie uzywam Ersky9x, o to co widac na wyswietlaczu i jak to zmienic pytaj autorow Ersky9x


Na górę
 Wyświetl profil  
 
Post: wtorek 26 cze 2018, 19:04 
Offline

Rejestracja: poniedziałek 12 maja 2014, 18:01
Posty: 221
Lokalizacja: Polska
Dziękuję. Skoro konwertuje na węzły, czyli tak jak powinno, to wychodzi na to, że wyświetlaczu również są węzły wyświetlane tym bardziej, że standardowo jest tam właśnie "kts", bo takie wartości miały być odbierane z GPS Frsky. Wygląda na to, że jedna kwestia wyjaśniona i w dodatku działa :)

Jeżeli chodzi o problem z wysokością i zmianą wysokości fizycznie o 1 metr co na wyświetlaczu objawia się zmianą o 0.1 to już Mike pracuje nad poprawką Ersky9x w tej kwestii dla 9XR Pro.

Czy może wiesz również dlaczego jest teraz problem z kompasem jeżeli nie występuje on gdy wgrany jest program Flarssena? Tam kompas działa stabilnie w każdej sytuacji, na programie, który wysłałem wyżej i na którym działa większość opcji kompas właśnie bardzo skacze ale podczas lotu wydaje się, że działa dużo stabilniej, gdy model stoi/wisi w miejscu wartości ponownie zaczynają skakać i nie wiadomo gdzie jest północ. Jeżeli na drugim programie to działa dobrze to wykluczam fizyczny problem z kompasem. Jak można to naprawić?


Na górę
 Wyświetl profil  
 
Post: wtorek 26 cze 2018, 19:22 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 6504
Lokalizacja: Polska
mrozilla pisze:
Czy może wiesz również dlaczego jest teraz problem z kompasem

Nie uzywasz kompasu tylko COG z GPS

mrozilla pisze:
Tam kompas działa stabilnie w każdej sytuacji

Tylko ze blednie bo nie uzglednia przechylu modelu.

mrozilla pisze:
podczas lotu wydaje się, że działa dużo stabilniej, gdy model stoi/wisi w miejscu wartości ponownie zaczynają skakać i nie wiadomo gdzie jest północ.

Odpowiedz na pierwsze pytanie powinna Ci wyjasnic dlaczego

mrozilla pisze:
Jak można to naprawić?

Lecac


Na górę
 Wyświetl profil  
 
Post: wtorek 26 cze 2018, 19:51 
Offline

Rejestracja: poniedziałek 12 maja 2014, 18:01
Posty: 221
Lokalizacja: Polska
Faktycznie pomyliłem kompas z COG, za dużo tego nie testowałem ale nie zauważyłem żeby wskazania w tamtym programie były złe, chyba zawsze północ pokazywało w tym samym kierunku, a ruch w lewo/prawo powodował odjęcie/dodanie kilku stopni ale faktycznie sprawdzałem raczej przy niepochylonym lub lekko pochylonym modelu. Czy w obecnej wersji programu, który zamieściłem wyżej jest uwzględniony przechył o którym piszesz i dlatego tak skacze? Nie zauważyłem aby na Taranisie strzałka wariowała, a są wykorzystywane te same biblioteki, jednak nie mam Taranisa, przeglądałem tylko filmy w sieci. Czasami dobrze byłoby móc ocenić w którą stronę jest obrócony model gdy wisi w miejscu.

W sumie dlaczego nie można skorzystać właśnie z kompasu skoro jest dokładniejszy, jest on wbudowany w Nazę, a nie GPS? Jeżeli byłby w GPS chyba nie ma żadnych przeciwwskazań aby z niego nie skorzystać?


Na górę
 Wyświetl profil  
 
Post: wtorek 26 cze 2018, 19:56 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 6504
Lokalizacja: Polska
mrozilla pisze:
Czy w obecnej wersji programu, który zamieściłem wyżej jest uwzględniony przechył o którym piszesz i dlatego tak skacze?[...]
Czasami dobrze byłoby móc ocenić w którą stronę jest obrócony model gdy wisi w miejscu.


A moze bys tak laskawie wpisal sobie w Google "COG GPS" i poczytal o czym mowa, zamiast strzelac nieprzemyslanymi pytaniami jak karabin maszynowy?

mrozilla pisze:
W sumie dlaczego nie można skorzystać właśnie z kompasu skoro jest dokładniejszy, jest on wbudowany w Nazę, a nie GPS? Jeżeli byłby w GPS chyba nie ma żadnych przeciwwskazań aby z niego nie skorzystać?

Bo wskazania z niego nie sa skompensowane wzgledem wychylenia, wiec nieprawdziwe.


Ostatnio zmieniony wtorek 26 cze 2018, 19:59 przez pawelsky, łącznie zmieniany 1 raz

Na górę
 Wyświetl profil  
 
Post: wtorek 26 cze 2018, 19:59 
Offline

Rejestracja: poniedziałek 12 maja 2014, 18:01
Posty: 221
Lokalizacja: Polska
Oczywiście wpisałem i doczytałem, że właśnie pozycja jest ustalana podczas lotu tylko właśnie ten program jak i Flarssena korzysta z COG i tutaj skacze, a tam nie dlatego nie do końca wiem dlaczego tak się dzieje.

Odnośnie kompasu w między czasie Twojej wypowiedzi zaktualizowałem posta, bo jeżeli w Ublox M8N, który jest kompatybilny z Nazą jest wbudowany kompas to w oryginalny GPS chyba też więc dlaczego z niego nie skorzystać zamiast z COG?


Na górę
 Wyświetl profil  
 
Post: wtorek 26 cze 2018, 20:01 
Offline
Awatar użytkownika

Rejestracja: środa 19 mar 2014, 02:03
Posty: 6504
Lokalizacja: Polska
mrozilla pisze:
Flarssena korzysta z COG

Nie, korzysta z kompasu. Nieskompensowanego.


Na górę
 Wyświetl profil  
 
Post: środa 25 lip 2018, 18:04 
Offline

Rejestracja: poniedziałek 12 maja 2014, 18:01
Posty: 221
Lokalizacja: Polska
Kilka problemów udało się rozwiązać, wszystko zaczyna działać bardzo fajnie.

Chciałbym się jeszcze dowiedzieć odnośnie tego kompasu, bo faktycznie Hdg praktycznie jest nieużywalne gdy tylko model jest w ruchu, czy da się jakoś właśnie dodać tą kompensację, o której pisałeś czy po prostu już tego parametru nie da się poprawić aby był dokładniejszy i rozwiązaniem jest tylko COG, który za to na postoju "wariuje" ale w locie działa bardzo dobrze (już wiem dlaczego tak jest).

Wydaje mi się, że przydatne byłoby również dodanie czujnika temperatury, a to, że można go zrobić samemu gdyż jest to tylko termistor z dwoma przewodami, ułatwia całą sytuację. Niestety pozostaje opcja programowa, jeżeli dobrze rozumiem, jeden przewód muszę podłączyć pod którykolwiek GND w Arduino, a drugi, do pinu, który będzie opisany w programie tylko jak się za to zabrać od strony software?

Obecnie program wygląda tak, dodałem większą część przykładu ale w sumie nie zauważyłem różnicy w działaniu niż ten z posta:
viewtopic.php?p=551563#p551563 czy oba przykłady w moim przypadku będą działały tak samo czy są jakieś różnice w działaniu, których nie widać na pierwszy rzut oka?
Kod:
/*
  FrSky Telemetry library example
  (c) Pawelsky 20170831
  Not for commercial use
 
  Note that you need Teensy 3.x/LC or 328P/168 based (e.g. Pro Mini, Nano, Uno) board and FrSkyTelemetry library for this example to work
*/

#include "FrSkyTelemetry.h"
#include "NazaDecoderLib.h"
#include "SoftwareSerial.h"

FrSkyTelemetry telemetry; // Create telemetry object

void setup()
{
    Serial.begin(115200);
  telemetry.begin(FrSkyTelemetry::SOFT_SERIAL_PIN_11);
}

void loop()
{
if(Serial.available())
{
if(NazaDecoder.decode(Serial.read()) == NAZA_MESSAGE_GPS)
{
  telemetry.setGpsData(NazaDecoder.getLat(), NazaDecoder.getLon(),
    NazaDecoder.getGpsAlt(), NazaDecoder.getSpeed(), NazaDecoder.getCog(),
    NazaDecoder.getYear(), NazaDecoder.getMonth(), NazaDecoder.getDay(),
    NazaDecoder.getHour(), NazaDecoder.getMinute(), NazaDecoder.getSecond());
  telemetry.setTemsData(NazaDecoder.getNumSat(), NazaDecoder.getFixType());

  {
    uint8_t decodedMessage = NazaDecoder.decode(Serial.read());
    switch (decodedMessage)
    {
      case NAZA_MESSAGE_GPS:
        Serial.print("Lat: "); Serial.print(NazaDecoder.getLat(), 7);
        Serial.print(", Lon: "); Serial.print(NazaDecoder.getLon(), 7);
        Serial.print(", Alt: "); Serial.print(NazaDecoder.getGpsAlt(), 7);
        Serial.print(", Fix: "); Serial.print(NazaDecoder.getFixType());
        Serial.print(", Sat: "); Serial.println(NazaDecoder.getNumSat());
        break;
      case NAZA_MESSAGE_COMPASS:
        Serial.print("Heading: "); Serial.println(NazaDecoder.getHeadingNc(), 2);
        break;
    }
  }

#ifndef ATTITUDE_SENSING_DISABLED
  currTime = micros();

  // Display attitude at 5Hz rate so every 200000 microseconds
  if(attiTime < currTime)
  {
    attiTime = currTime + 200000;
    Serial.print("Pitch: "); Serial.print(NazaDecoder.getPitch());
    Serial.print(", Roll: "); Serial.println(NazaDecoder.getRoll());
  }
#endif
}

  telemetry.send();
}
}


Na górę
 Wyświetl profil  
 
Post: poniedziałek 30 lip 2018, 18:44 
Offline

Rejestracja: sobota 09 lip 2016, 17:32
Posty: 102
Arduino nano będzie się nadawało do tego projektu?

Wysłane z mojego SM-N950F przy użyciu Tapatalka


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 178 ]  Przejdź na stronę Poprzednia  1 ... 8, 9, 10, 11, 12

Strefa czasowa UTC+1godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Technologię dostarcza phpBB® Forum Software © phpBB Group

Strona korzysta z plików cookie w celu realizacji usług zgodnie z . Polityką prywatności
Możesz określić warunki przechowywania lub dostępu do cookie w Twojej przeglądarce lub konfiguracji usługi.