FrSky telemetrija – GPS (4 dalis)

Turbūt įdomiausia telemetrijos funkcija – GPS duomenų perdavimas, kad galima būtų matyti skrydį žemėlapyje. Kaip jau minėjau, tiesiogiai GPS duomenų perdavinėti neina, todėl pasidariau paprastą schemą su mikrokontroleriu, kuri priima NMEA duomenis iš GPS modulio ir perduoda juos mano norimu formatu.

Visų GPS duomenų perdavinėti neverta, tiesiog ne viskas reikalinga. Pvz. nereikalinga laikas ir data. Kadangi duomenų perdavimo per FrSky telemetriją kiekis labai ribotas, reikia pasirinkti tik tai, ko reikia. Be to, perdavinėti tekstiniu formatu paprasta, bet nelabai efektyvu. Pvz. jei paimsim koordinačių duomenis (pvz. 5504.8546), tekstiniame formate tai užima devynis baitus. Tačiau koordinates galima perduoti ir kaip 32 bitų skaičių, o tai užima 4 baitus. Akivaizdu, kad taip galima taupyt protokolo pralaidumą. Programa gaunasi šiek tiek sudėtingesnė, bet nedaug.

Taigi, ką būtina perduoti? Koordinatės, palydovų skaičius, greitis, aukštis. Greitį ir aukštį galima taip pat perdavinėti kaip 16 bitų skaičių, taip sutaupant dar keletą baitų. Gaunasi, kad vienas paketas užima 4(ilguma)+4(platuma)+1(palydovai)+2(greitis)+2(aukštis)=13 baitų. Tai visai nedaug. Taupant dar, galima pagalvoti, kas kiek laiko kokius duomenis reiktų perdavinėti. Pvz. koordinates ir greitį galima perdavinėti 2 kartus per sekundę, o visa kita vieną kartą per sekundę. Bet nebūtinai taip, galima pasirinkti pagal poreikį.

Čia matosi tas mano modulis, kuris perdavinėja GPS duomenis per FrSky telemetriją. Kadangi programa gana nesudėtinga, užtenka mega8 mikrokontrolerio. Dar reikia paminėt, kad laisvai galima būtų perdavinėti ir dar kokius nors duomenis. Pvz. kokias nors analogines reikšmes, pajungus prie to pačio mikrokontrolerio. Tai tik programinis reikalas. Kol kas man tokio poreikio nėra, tai padariau tik GPS.

Kiekvienas paketas perduodamas su kontroline suma. Jei papuola klaida, į paketą nekreipiama dėmesio. Nors praktika rodo, kad klaidų papuola labai retai. Bet klaidų patikrinimas būtinas, kad nepapultų neteisingos koordinatės. Kitaip žemėlapyje maršrutas gali atrodyti nekaip… :)

Parašiau ir programą, kuri parodo visus telemetrijos duomenis. T.y. akumuliatoriaus įtampa, srovė, kiek energijos sunaudota, RSSI (ryšio kokybė) ir visi GPS duomenys atvaizduojant skrydžio maršrutą google žemėlapyje. Kai kurie duomenys apskaičiuojami. Pvz. atstumas nuo „namų“, visas skrydžio atstumas, kryptis. Taip pat galima paimti autopiloto maršruto failą ir parodyti jį žemėlapyje. Skrydžio metu galima bus matyti kaip lėktuvas skrenda šiuo maršrutu. Programa parašyta Delphi, nemažai aš prie jos pasėdėjau, ypač kol susidraugavau su žemėlapiais… :) Skrydžio maršrutas įrašinėjamas į log failą.

Mėlyna linija su daug taškų – maršrutas iš autopiloto. Žalias H žymeklis – tai namų taškas, nuo kurio skaičiuojami visi atstumai. Linija, ant kurios matosi lėktuvo žymeklis – testinis maršrutas.

Dar viena funkcija, kuri man buvo reikalinga testuojant, bet ir šiaip neblogai turėt patikrinimui – modulis pats gali generuoti koordinates, taip imituojant, kad pajungtas GPS modulis. Taip patogu testuoti namuose, nereikia eit į lauką, kad pažiūrėt kaip veikia. Ne šiaip generuoja bet ką, o konkretų maršrutą, kad galima būtų matyti skrydį žemėlapyje.

Bebandydamas telemetriją, pabandžiau pažiūrėti koks yra GPS tikslumas palikus modulį vienoje vietoje 5 min. Buvo paliktas automobilyje ant priekinės panelės. Galit pažiūrėti failiuką, kuriame matosi rezultatai. Atidaroma su google earth. Kartais kokią minutę koordinatės nepasikeičia nė vienu metru, kartais šiek tiek pradeda plaukiot. Bet vieta automobilyje ne pati geriausia, reiktų palikti atviroje vietoje, kur dangus matomas vienodai į visas puses. Tada rezultatai būna geresni.

Šį modulį, kartu su srovės davikliu jau galima įdėti į bet kokį lėktuvą ir pasižiūrėti kokiu greičiu, kokiame aukštyje, kokiu atstumu skraidoma, kiek srovės ima variklis. Sekantis žingsnis – padarysiu, kad mano autopilotas perdavinėtų tuos pačius duomenis. Tada bus įdomiau, bus galima pažiūrėti kaip lėktuvas praskrenda nurodytą maršrutą.

5 dalis.

This entry was posted in Elektronika, Programavimas, RC modeliai. Bookmark the permalink.

One Response to FrSky telemetrija – GPS (4 dalis)

  1. Artus says:

    Labas,
    Rimtai padirbėta prie Frsky telemetrijos. Gal įmanoma gauti išsamesnę informaciją (schema, mega8 turinys, programa PC).

Leave a Reply

Your email address will not be published. Required fields are marked *