Po tom, čo sme v druhej časti popísali spôsob prenosu dát, dnes ukážeme skutočný prenos (zatiaľ) testovacích dát a ich zobrazenie na LCD displeji budúcej telemetrie. Ale ešte pred tým sa musíme „popasovať“ s problémom, ktorý sme nazvali: „Korekcia“.
autor: Janko O.
V predchádzajúcej časti sme pri popise prenosového protokolu ukázali, že firma FrSky používa 11-Bytové Dátové bloky, ktoré vždy začínajú aj končia dohodnutým znakom 0x7E. Ale čo robiť, keď sa takéto hexadecimálne číslo vyskytne v užívateľských dátach, alebo v hodnote napätia AD1 alebo AD2? To by mohlo spôsobiť chaos pri spracovaní prenesených dát.
Firma FrSky to vyriešila tak, že „hexa číslo“ 0x7E je nahradené dvojicou 0x7D 0x5E. A aby nedošlo k zámene pri prenose „užívateľského“ čísla 0x7D, tak aj toto číslo je nahradené a to dvojicou 0x7D 0x5D (čiže vlastne 0x7D je doplnené o číslo 0x5D).
(Z uvedeného vyplýva, že ak sa pri prenose objaví niektoré z týchto čísiel, tak dátové bloky nebudú mať 11 Bytov, ale viac.) Keď takéto „dvojičky“ privediete do mikrokontroléra telemetrie, tak je treba urobiť jediné: 0x7D „zahodiť“ a nasledujúcu hodnotu (buď 0x5E alebo 0x5D) „XOR-ovať“ hodnotou 0x20. Výsledkom bude, že naspäť dostanete „zakázané“ čísla 0x7E a 0x7D. Ó, aké jednoduché. No, a túto procedúru sme nazvali „Korekcia“.
Korekciu je možné realizovať buď Off-line alebo On-line.
Off-line je určená skôr pre menej výkonné (alebo pomalšie taktované procesory – mikrokontroléry), pretože najprv sú dáta prijaté a potom je realizovaná spomínaná procedúra.
Ak máte dostatočne výkonný procesor, môžete Korekciu realizovať On-line, teda v kratučkých pauzách medzi jednotlivými prijímanými znakmi. Obvod PIC16F88 taktovaný 8 MHz „zvládal“ aj On-line Korekciu, ale pri použití iného, ešte neoptimalizovaného algoritmu dochádzlo k „zamrzaniu“.
A keďže Korekciu máme vyriešenú, môžeme skúsiť skutočný prenos dát, teda nie len dáta základnej telemetrie (analógové vstupy AD1 a AD2 a silu signálu RSSI), ale aj užívateľské dáta. Na experimentovanie sa môže „hodiť“ generátor testovacích dát. Ten sme „hravo“ realizovali pomocou mikrokontroléra PIC16F84A. Pre záujemcov prikladáme schému zapojenia.
A pre zasvätených aj program na generovanie skúšobných dát.
(Keďže sa jedná o informácie, ktoré môžu byť zaujímavé len pre pomerne úzku skupinu modelárov, nemá zmysel popisovať činnosť zapojenia na schéme, detailne rozoberať zloženie "Dvoj-Bytu",
alebo podrobne vysvetlovať činnosť toho-ktorého programu. V prípade záujmu tak môžeme urobiť v komentári k danému článku, alebo v samostatnom článku, ak by bol záujem väčší (o čom silno pochybujeme).)
Firma FrSky vyžaduje dáta pred prenosom „prehnať “ invertorom s úpravou napäťových úrovní. Schéma zapojenia je tu:
Ale keďže mikrokontroléry PIC a programovací jazyk PIC Basic Pro Compiler umožňuje nastaviť aj inverznú „moduláciu“, invertor nebol nutný a napäťové úrovne sme prispôsobili jednoduchým odporovým deličom.
Takže bloková schéma telemetrie s využitím prenosového kanála FrSky môže vyzerať nasledovne:
No a nasledujúce obrázky už ukazujú skutočný prenos telemetrických údajov.
Buď len základnú telemetriu, teda zobrazenie napätia analógových vstupov AD1 a AD2 a Sily signálu RSSI, pričom hodnoty AD1 a AD2 sú následne prepočítané na skutočne pripojené napätia U1 a U2, vyjadrené vo Voltoch.
Alebo k tomu ešte aj užívateľské dáta, ktoré môžu zobrazovať napr. výšku letu vetroňa, otáčky motora alebo dúchadla (EDF), rýchlosť modelu, teplotu motora (batérií) atď.
Po dôkladnej analýze možností a na základe skúseností s našou súčasnou telemetriou sme dospeli k týmto rozhodnutiam:
užívateľské hodnoty budú prenášané ako 10-bitové, čiže v rozsahu 0 až 1023, čo je pre drvivú väčšinu modelárskych potrieb dostačujúci rozsah
aby to bolo dosiahnuteľné, je nutné 8-bitové Byty spájať do „dvojičiek“. Na ich jednoznačné rozlíšenie bude horný Byte začínať nulou a dolný Byte jedničkou.
Každá „dvojička“ v sebe bude mať Adresu - informáciu o tom, hodnotu čoho to vlastne nesie (výška, rýchlosť, teplota atď.).
Tento spôsob prenosu sa nám javil ako najjednoduchší a najvhodnejší, s ohľadom na predpoklad krátkych výpadkov signálu, kedy je výhodné jednoznačne identifikovať aj pomerne malú skupinku úspešne prenesených Bytov.Keďže z pôvodných 16 bitov zostali 4 bity (10 bitov hodnota a 2 bity identifikácie “horný“ či „dolný“), je možné rozoznávať 16 Adries (čiže 16 prenášaných údajov), čo je viac, ako sme mohli “na vlastné oči“ vidieť, že by niekto využíval aj v telemetriách renomovaných firiem. Ďalšie zvýšenie počtu adries je možné dosiahnuť metódou tzv. „stránkovania“, ale to už je iná kapitola.
Súvisiace články (related topics):
Vario z telemetrie FrSky – 1. časť
Senzory k telemetrii FrSky – 2: Kontrola napätia článkov batéri
Senzory k telemetrii FrSky – 1. časť - Napäťový senzor
Zoznámenie s FrSky - 2. časť - Spôsob prenosu dát
Zoznámenie s FrSky - 1.časť - Základné funkcie
Projekt otvorenej telemetrie firmy FrSky
Telemetry telemetrie