Převodník RC vysílač - PC joystick

 

Na internetu se objevil návod ( od autora "qquattro" ) na převodník z vysílače na gameport. Kamarád, který tento převodník postavil se na mě obrátil s prosbou o vyřešení problémů. Převodník bohužel nefungoval tak, jak by měl. Vzhledem k tomu , že jsem se touto problematikou již dříve dosti zabýval, chtěl bych Vás seznámit s mými poznatky a úpravami.

Trochu teorie
Většina publikovaných převodníků používá elektronické potenciometry, které jsou řízeny procesorem. Výhodou tohoto řešení je 100% kompatibilita a nevýhodou je velká cena těchto potenciometrů. Také 100 kroků ( v některých verzích 64 ) na celou výchylku není mnoho.
Nedávno se na internetu objevilo velmi zajímavé řešení (
zde), které využívá zcela jiného a zajímavého principu. Autorem je J. Vanin z Ruska. Jeho řešení spočívá v tom, že časovací kondezátor se nabíjí přes dosti malý odpor. Delší doby nabití se dosáhne tím, že po spuštění nabíjení se kondenzátor přes výstupní port procesoru ” zkratuje”. Doba tohoto zkratu je vlastně přímo velikostí výchylky. Tu určí procesor změřením hodnoty z vysílače pro příslušný kanál a převodem na čas. Výhodou je obrovská jednoduchost a naprostá linearita převodu. Okamžik spuštění časování se testuje komparátorem ( vnitřním v procesoru ). Měří se napětí na jednom z kanálů a při dosažení určité velikosti se spustí časování. Napětí musí být menší než maximální pro ukončení nabíjení. V originále byla použita 1/3 Ucc, přičemž maximum je 2/3 Ucc. Tolik tedy krátce teorie.

U vzorku "české" varianty se projevily tyto problémy:

  • program v převodníku je nestabilní a občas ” zběhne”, pomůže reset procesoru.
  • vzhledem k malému výkonu procesoru dochází k dosti značnému chvění a nepravidelnostem
  • malé výchylky
  • na některých počítačích nefunguje vůbec
  • problémy s kalibrací v různých programech
  • s některými vysílači nepracuje

Proto bych Vás dále chtěl seznámit s úpravami, které jsem provedl pro zlepšení funkce.

Program v mikroprocesoru
Byl zcela přepracován , tak aby nedocházelo k nedefinovaným stavům. Dále byla provedena optimalizace programu tak, aby chvění výchylek bylo co nejmenší . Originální konstrukce totiž používá procesor řady 90S2313, který je asi 12x rychlejší než 89C2051 se stejným krystalem. Navíc má přerušení od komparátoru, které je pro tyto aplikaci dosti důležité. Procesor musí totiž obsluhovat dvě zcela nezávislé činnosti a to: čtení signálu z vysílače a generování výstupu pro joystick, přičemž nesmí docházet k jejich vzájemnému ovlivňování. Dále byla v programu provedena tato rozšíření:
- Zvětšeny výchylky asi na dvojnásobek.
- Pro 4 kanálové vysilače doplněny vstupy pro tlačítka.
- Dvě kombinace přiřazení ovladačů – Futaba/Graupner.

Výkon procesoru byl alespoň částečně zvýšen použitím krystalu 24 Mhz místo 10 Mhz.

Připojení vysílače
Původní zapojení vstupu vyhoví bohužel jen pro některé typy souprav. Proto používám o něco složitější zapojení vstupních obvodů, které lze použít prakticky pro všechny typy. Vstup je oddělen kondenzátorem, takže funguje i se soupravami JR , které mají výstup netypický. Zároveň vstupní obvod pracuje jako tvarovač ( Schmittův klopný obvod ) takže procesor dostává perfektní obdélníkový signál. Na polaritě signálu nezáleží, minimální velikost signálu je potřeba cca. 1,5V šš.
Pokud Vám původní zapojení vstupu funguje a neměníte vysílače, může zůstat tak jak je.
Zde je upravené zapojení: ( zlepšený vstupní obvod, R2 nahrazen trimrem )


Doporučuji doplnění kondenzátoru C5, protože v převodníku žádná filtrace nap. napětí nebyla.
Na piny 8,9 se je možno připojit tlačítka ( stačí jedno ) pro vysilače, u kterých není ovladač 5. kanálu. Tlačítko je připojeno mezi příslušný vývod a zem. Tranzistory mají být typu BC546 ( libovolné NPN).

Nastavení vysílače
Pozor ! Vysílač musí být přepnut do módu PPM. Předpokládá se, že jde o počítačový typ. I když i správně nastavený nepočítačový typ lze úspěšně použít. Pokud nemáme na vysílači 5 kanál, musíme si připojit alespoň jedno tlačítko na převodník. Je vhodné každý krok při kalibraci ve Windows potvrzovat z převodníku ( použitím klávesnice nebo myši se kalibrace v některých verzích Windows neprovede !!! ).
Dále se předpokládá, že všechny kanály mají nastaveny hodnoty Subtrim = 0 a ATV = +/-100%. Nejlépe je si pro simulátor vyhradit jeden model. Převodník nekontroluje vstupní hodnoty na rozsah ( kvůli rychlosti ) a při nedodržení těchto hodnot může v krajních polohách dojít k ” přeskočení” výchylky.
Propojka pro volbu tytpu vysílače má význam pouze pro ty, kteří předpokládají připojování dvou typů vysílačů. Pokud správně naprogramujeme přiřazení funkcí pro vysílač Futaba, po připojení vysílače Graupner a přepnutí propojky je pořadí kanálů shodné a přiřazení kanálů v PC se nemusí dělat znovu.

Rozdílné Gameporty
Jak je u PC zvykem, nikdy není nic 100% kompatibilní. I mezi Gameporty jsou bohužel velké rozdíly. Jak se ukázalo, napěťová úroveň pro zjištění začátku měření je dosti kritická. Původní autorovy předpoklady vycházely z toho, že průběhy napětí a úrovně na vstupu odpovídají obvodu 555 (556) , který se v prvních PC v gameportu skutečně používal. Dnes je vše integrováno a úrovně jsou jiné a značně odlišné u různých výrobců..
Proto dosti často potřebuje komparátor individuální nastavení v daném počítači. Nejjednodušeji to jde nahrazením odporu R2 trimrem P1=10K. Trimr nastavíme na nejnižší hodnotu, při které převodník spolehlivě funguje. Při nesprávném nastavení převodník nepracuje vůbec, nebo např. nefunguje jeden kanál. Hlavní příčinou je posunutí klidové úrovně vstupu. Normálně by měla být nulová, ale často dosahuje až napětí 1V. Dobře je to vidět na změřeném reálném průběhu
zde.
Navrhl jsem a vyzkoušel jednoduchou úpravu, která by měla odstranit nutnost nastavování úrovně. Úprava spočívá v tom, že je odstraněna ss složka, a komparátor reaguje pouze na změny signálu. Úprava zapojení je vyznačena modře na obrázku.
Byla odzkoušena na několika počítačích, ale vzhledem v velkému množství typů a vlastností gameportů nemohu zaručit, že bude fungovat všude. Doporučuji jako první nejdříve vyzkoušet variantu s trimrem.

Odpor R5 je na místě původního R2 a má změněnu hodnotu na 10K. Odpor R6 určuje citlivost detekce startu měření ( cca. 100 mV ). Dioda D1 je běžná např. 1N4148.

Simulátory
(v závorce čísla verzí se kterými byly prováděny testy )

RealFlight
(v1.10.145) RealFligt G2
Jako výchozí přiřazení ovladačů je použito z tohoto programu. Typ ovladače nastavíme v programu na : Mode 1, Europe, Asia. Potom stačí mít správně nastaven na převodníku typ vysílače: Futaba ( pin 2 procesoru volný ), Graupner ( pin 2 procesoru na zem ). Při změně typu vysílače není nutno provádět přiřazení kanálů znovu.
Provedeme kalibraci v programu podle instrukcí.
Nestabilita polohy je v tomto programu indikována cca. +/-1 ( menu kalibrace ), což je srovnatelné s analogovým ovladačem s potenciometry.

Aerofly (1.2)
Po spuštění programu se objeví hlášení: No transmiter signal found. Using Joystick. Po spuštění kalibrace by měly hodnoty ve sloupci “Zero” být v rozsahu 15 až 25 ms. Pokud nejsou , zkontrolujeme polohu kniplů na vysilači a případnou odchylku odstraníme. Pokud hodnoty nebyly v pořádku musíme kalibraci ukončit a spustit znovu . Pokud jsou nyní hodnoty v pořádku, postupně zahýbáme kniply až se objeví u všech 4 funkcí “Yes”.
Potom přiřadíme funkce příslušným kanálům. Buď automaticky, nebo raději ručně.

FMS (v2.0b6)
Provedeme kalibraci ovladače ve Windows. Potom již po spuštění FMS zvolíme Joystick a přiřadíme kanály funkcím. Okna kanálů mohou různě problikávat v závislosti na poloze ovladačů. Tento jev nastává pouze v tomto menu. Při simulaci je vše v pořádku.
Poznámka:
Při připojení vysílače seriovým kabelem dochází u tohoto programu často ke kmitání kormidel, které je viditelné i za letu modelu. Ve většině případů není způsobeno interfejsem ( časté zdůvodnění: špatné napěťové úrovně, nevhodný kabel ), ale vzniká až v počítači. Můžeme si to jednoduše ověřit vypnutím zvuku.

RCFS (4.05)
Tento starší simulátor pro DOS bohužel s tímto převodníkem nefunguje. Testovací program pro joystick je sice funkční, ale vlastní simulátor ne. Příčinou je kalibrace joysticku v simulátoru. Ta se zde provádí bohužel nestandardním způsobem. Program si totiž testuje vždy dvakrát po sobě jeden kanál. Po změření hodnoty kanálu okamžitě spouští další měření , přičemž nečeká na dokončení pulzu ostatních kanálů. Nové spuštění převodník bohužel neregistruje , protože ten snímá start měření pouze z jednoho kanálu. Pro odstranění této závady by musel mít každý kanál svůj komparátor a testovat začátek nového měření.

Ostatní
Všechny programy pro Windows, které používají běžný ovladač pro joystick , by měly bez problémů fungovat. Samozřejmě na funkci nemá vliv operační systém ( W9x,2K, ... ).
Ale vyjímka se může vyskytnout.

Když jsou problémy

  • po zasunutí převodníku do gameportu zkontrolujeme napětí na procesoru ( pin 10 a pin 20 ). Musí být minimálně asi 4,5V. Pokud je menší je možné , že zrovna náš Gameport není schopen dát proud asi 20 mA nutný pro chod procesoru. Pak nezbývá než použít jiný zdroj napětí 5V.
    Pozor na zkrat napětí 5V na zem. Některé desky mají na tomto výstupu vyvedeno přímo napětí ze sběrnice 5V a při zkratu dojde většinou k  přepálení spoje na desce a může dojít až k poškození základní desky !
  • Vysílač zatím nepřipojen. Spustíme v Ovládacích panelech “Možnosti her” a převodník se ohlásí stavem OK. Pokud ne, zkusíme převodník vytáhnout a znovu zapíchnout do Gameportu. Pokud máme trimr na nastavení úrovně komparátoru, zkusíme změnit jeho polohu. V tomto režimu testuje Windows joystick cca. 1x za sec., čili odezva je zpožděná.
    Samozřejmostí je správně nainstalovaný ovladač . Můžeme provést také tuto zkoušku – z převodníku vyjmeme procesor a připojíme převodník k PC. To musí indikovat stav OK. Tím se otestuje alespoň správně připojený R1 a ovladač Windows.
  • Připojíme a zapneme vysílač. Překontrolujeme nastavení vysilače ( PPM, Subtrim, Atv ). Zvolíme Ověření funkce. V případě, že ukazatele reagují, provedeme kalibraci.

Program
Nový
program do procesoru je zde. Pro jeho použití je nutné změnit krystal na 24 MHz. Pozn. Krystal musí být na základní harmonické jinak většinou kmitá na 8 Mhz. Z označení krystalu tuto skutečnost nelze poznat !
Jak se později ukázalo, program má jiné rozložení kanálů než původní konstrukce "quattro". Příčinou je chybná dokumentace ( zrcadlově otočený konektor ) k této konstrukci. Pokud by tato skutečnost někomu vadila, je k dispozici program se zcela shodným rozložením kanálů pro desku "quattro".
Dále program dodávaný ke stavebnici umožňuje ovládání všech čtyř tlačítek na rozdíl od verze volně ke stažení.

 

Objednávka

Vzhledem k tomu, že se jedná o starší konstrukci, dnes již neaktuální, je prodej stavebnic ukončen. V současné době je lepší použít převodníku RC-USB joystick, které nabízí několik firem.


kompletní stavebnice - 250Kč
samotný naprogramovaný mikroprocesor - 140 Kč

Stavební návod publikován v RC Revue 7/2002


 

 

HOME - Hlavní strana