Autodráhový multifunkční ovladač

 

Obrázky jsou miniatury - kliknutím se Vám zvětší.

       

           


                     

Přehled
Jednoho krásného dne mně můj syn řekl, že by chtěl pod stromeček autodráhu, ale protože jsem mněl doma již starou dobrou Českou autodráhu (a nechtěl jsem investovat do nové :-) slíbil jsem mu že spravíme tu starou. A při průběhu spravování jsem se rozhodl že to lehce vylepšíme a dopadlo to následovně.
Vyhodil jsem veškerou původní elektriku a nahradil to plně digitální krabičkou vlastní výroby, která zvládá tyto věci:
- Nahrazeno původní řízení aut odporem – moderním řízením PWM (Pulse Width Modulation)
- Ovladače vytvořeny potenciometrem a doplněny jedním tlačítkem , které má převážně funkci brzdy
- Obě auta lze nezávisle na sobě plně ovládat:
        - Plynule ovládat rychlost od minimální po maximální
        - Odpojit úplně dráhy od zdroje ( Z-state )
        - Zkracovat dráhy – běžné rychlé brzdění
        - Reverzovat směr – velmi účinné brzdění
- Připojení na LCD inteligentní displej – veškeré nastavení , časy, kola vše se zobrazuje přes něj
- Měření času – na setiny vteřin
        - Pamatuje si nejlepší kolo
        - Pamatuje si čas nejlepšího kola
        - Počítání kol do 250 v aktuální verzi
- 8 indikačních LED:
        - Chyba – i to se někdy stává – pokud nastane nějaká chybička na výkonové části (zatím mně tato situace nenastala)
        - Pauza – během závodu nebo tréninku lze vše pozastavit
        - Safety – v brzké době bude doprogramován safety mód - tzn. Po srážce můžou hráči pozastavit závod a po přiznání se    

            viníkovi přičte penaltový čas.
        - Závod – indikuje závodní režim hry
        - Trénink – indikuje tréninkový režim hry
        - Jízda – indukuje volný režim používání dráhy (klasika tak jako dřív)
        - Auto 1 – indikační LED pro AUTO 1
        - Auto 2 – indikační LED pro AUTO 2
- 5 ovládacích tlačítek:
        - Režim – přepíná mezi režimy použití krabičky (Volná jízda, Trénink, Závod)
        - Menu – procházení a potvrzování jednotlivých menu (viz dále)
        - Nastav, Safety – měnění hodnot v jednotlivých krocích menu, spouštění safety režimu při závodu
        - Pauza, Jazyk – Při závodu a tréninku dokáže pozastavit čítání času a ovládání aut, při jakémkoliv jíné činnosti přepíná jazyk    

        ovládání mezi češtinou a angličtinou.
        - Reset – návrat z menu, v tréninkovém režimu vymazání průběžných výsledků
- Dráha pouze doplněna dvěma mechanickými koncovými spínači (pro každou dráhu jeden) na startovní čáře.
- Velký semafor pro startovní potřeby – lze též využit pro jakékoliv jiné účely
- Připojení na PC pomocí RS-232C linky (COM port na PC)
- Napájecí napětí 7 – 30 V DC
- Dokáže měřit napájecí napětí – možnost provádění korekcí rychlostí na napětí
- Dokáže měřit odebíraný proud pro každou formuli zvlášť
- Automatické dojíždění aut na startovní čáru
- Piezo sirénka

2. Hardware zařízení
Stěžejními prvky zařízení jsou součástky firmy Freescale, jedná se hlavně o 8 – bitový mikrokontrolér MC689S08AW60 a výkonový prvek H-bridge MC33887 (možná náhrada je MC33886). Ostatní součástky jsou jen doplňkové a pasivní prvky. Deska je navržena jako jednostranná DPS vyrobitelná šikovnějším bastlířem doma nebo jako v mém případě malá levná firma z fólie.
2.1. Popis zapojení:
Zapojení lze rozdělit do třech bloků a připojených periferií:
- Mikroprocesorová část – kompletní řídící část
- Výkonová část – napájecí napětí, výkonové ovládání aut
- Komunikační část – zajišťuje komunikaci s PC
- Periferie – zapojení ovladače , semaforu a připojení k dráze

2.1.1. Mikroprocesorová část
Základem zapojení je již zmíněný 8 – bitový mikroprocesor Freescale MC9S08AW60, který se výborně hodí pro tenhle účel a to hlavně díky těmto vlastnostem:
- 20 MHz BUS clock - dostatečná rychlost pro účely autodráhy
- 60 KB flash paměti – dostatečná rezerva jak pro kód, tak pro texty i případné ukládání výsledků
- 2 KB RAM – prakticky pamětí RAM nejsme omezeni
- 10 – ti bitový AD převodník, 16 kanálů – čtení ovladačů, napájecího napětí, odebíraných proudů
- SCI – sériová linka – komunikace s PC
- SPI – nevyužito
- IIC – nevyužito
- Časovače – 2 nezávislé časovače jeden s 2 kanály, druhý 6 kanálový – využito pro generování přesných časových intervalů (měření času), a druhý pro řízení motorů pomocí PWM (Selectable input capture, output compare, and edge-aligned PWM capability on each channel. Each timer module may be configured for buffered, centered PWM (CPWM) on all channels)
- KBI – přerušení od klávesnice – využito pro připojení spínačů v dráze, tlačítek na ovladačích a tlačítek na krabičce
- Celkově má 54 vstupně/výstupních pinů – možno připojit hromadu signálů. Na všech lze jednotlivě zapnout PULL-UP rezistor
- Programování a odlaďování programu po BDM rozhraní
- Vyrábí se i v 64 pinovém QFP pouzdru – pájitelné doma.

K procesoru jsou připojeny nutné součástky a to krystal, k němu dva kondensátory a jeden paralelní odpor (Y1, C1, C2, R1 ), jeden filtrovací kondensátor (C8) a programovací konektor pro BDM (J1). A to je vše co potřebuje mikroprocesor (dále jen MCU) pro svou činnost, snad jen první 4 komponenty pro zdroj hodinového signálu (Y1, C1, C2, R1 ) by šli odstranit a nechat MCU brát hodiny se svého vnitřního oscilátoru , ale pro větší přesnost byla zvolena možnost externího krystalu.
Indikační LED diody jsou přes rezistory připojeny přímo k pinům MCU (R7-R14, JP1), LED diody jsou umístěny na vrchní straně krabičky proto se na desce nachází jen konektor pro jejich připojení. Diody mají všechny anody spojené a připojené na +5V (VCC). Pro tyto LED diody je využit port F (PTF).
Semafor je připojen úplně stejně jako všechny diody (též rezistory R15-R17), ale aktivní úrovně jsou opačné. Toto je uzpůsobeno pro zapojení uvnitř semaforu. Pro semaforové piny jsem využil část portu E (PTE).
Většina tlačítek (režim, menu, set, reset) je připojena na přímo na port G (PTG), protože je zde vyveden modul KBI (PTG0 – PTG3). Poslední tlačítko na krabičce je zapojeno na obyčejný vstupně/výstupní (dále jen V/V) pin na portu A (PTA7).Na KBI modul jsou též připojeny ovladačové tlačítka brzd (PTD2, PTD3) přes konektory ovladačů (J3, J10) a koncové spínače na dráze (PTD7, PTG4) které jsou připojeny skrze konektor J4. Pouze pro o koncové spínače jsou použity externí PULL-UP rezistory, protože při nastavení KBI modulu na citlivost na vzestupnou hranu se vnitřní odpojí a připojí se PULL-DOWN rezistory,které jsem musel softwarově odpojit úplně. Všechny tlačítka uzemňují signál po stisknutí (tzn. Druhý drát připojen k zemi).
Ovladače jsou připojeny ještě do vstupů AD převodníků na čtení požadované rychlosti. Do analogového signálu je zařazen RC filtr pro omezení šumu ( R2, R3, C3, C4). Ovladače se připojují konektory J3 a J10. Dále je do AD převodníku připojeno vstupní napájení přes odporový dělič (R4, R5) o poměru 1/6. Toto napětí je též filtrováno RC článkem (R6, C6).
Port A je využit pro připojení inteligentního LCD displeje v 4- bitovém komunikačním módu. U konektoru displeje (J5) je umístěn trimr na nastavení kontrastu displeje.
Na připojení RS-232C linky je využito její nejočesanější verze. Jsou připojeny pouze signály RXD a TXD (PTE0 a PTE1).Více při popisu Komunikačního bloku.
Připojení výkonové části je realizováno pomocí pěti signálů pro každou dráhu. A to třech obyčejných V/V signálů Fault_status ohlášeni chyby (PTB4, PTD0), Disable_power přepnutí výstupů výkonových budičů do stavu vysoké impedance (PTB2, PTB6) a PWM_DIR směr aut (PTB5, PTD1). Dále jednoho vstupu do AD převodníku na čtení odebíraného proudu auty (PTB3, PTB7). A nakonec výstupů od kanálů časovače na generování PWM signálu (PTE2, PTE3).

 

2.1.2. Výkonová část
Výkonová část se dělí na dvě oblasti a to napájení zařízení a ovládání aut.
Zdroj je velmi jednoduchý a skládá se jen z napájecího konektoru ( J7 ), pojistky 4A pomalá ( F1 ), sériové diody chránící proti přepólování napájecího napětí ( D12) a paralelní zenerovy diody na 30 V chránící proti přepětí od napájení ( D13 ). Dále je zde použit velký vyhlazovací kondensátor 4,7mF ( C7 ) , stabilizátor 7805 na +5V pro živení digitální části ( U2 ) a za ním jen filtrovací kondensátor 100nF (C5).
Snad zajímavější je řešení na ovládání aut. Jsou použity H-bridge Fy Freescale MC33887 (MC33886) které dokážou zesilovat logické signály na vstupech až na +40V výstupní úrovně při 5 Ampérech. Každý H-bridge má dva samostatné kanály (možnost reverzace) a má ještě ochrany proti zkratu, podpětí a přehřátí (což tu doufám nehrozí). Pro každou dráhu je použit samostatný H-bridge (možnost reverzace a nezávislé nastavení výstupů na stav vysoké impedance). (Mám i verzi s jedním H-bridge ale není to ono.) Kondensátory jsou skoro všechny filtrovací (C9, C11 – C13, C15 - C18) a dva pro vnitřní nábojové pumpy ( C10, C14). Pro měření výstupního proudu se měří úbytek napětí na rezistorech (R21, R24) připojených do výstupu FB kudy teče poměrová část výstupního proudu.


2.1.3. Komunikační část
Komunikační část je vytvořena jen klasickým MX3232 (jen 100nF kondensátory oproti MAX323 ) převodníkem úrovní (U5) a konektorem na sériový port ( J12 ). MAX3232 je doplněn jen nutnými kondensátory 4 x 100nF (C19 – C22).

 

2.1.4. Periférie
Periférie jsou velmi jednoduché. Začněme s ovladači. Ty jsou tvořeny jen potenciometrem přibližně 10K a jedním tlačítkem. Tlačítko je připojeno mezi zem (GND) a aktivní vodič „brake“. Potenciometr zapojíme jako odporový dělič , tzn. na jeden kraj připojíme zem a druhý VCC a střed vyvedeme na čtecí vodič „An_ovl“. Všechny potřebné vodiče jsou v konektoru ovladače přítomny.
Dráha je zapojena též velmi jednoduše a to tak že výstupy z výkonového konektoru J6 připájíme na jednotlivé troleje dráhy a koncové spínače připojíme mezi zem a aktivní drát na koncovce J4.
U semaforu máme dvě možnosti:
- Pokud proud jednotlivými diodami nepřesáhne 8mA tak můžeme vše zapojit na přímo se společnou katodou.
- Pokud diody přesahují odběr více jak 8mA pak se nabízí zapojení se společnou anodou. Katody přes spínací MOSFET tranzistory (typ BS170) připojit k zemi a ovládací signály připojit na gaty těchto tranzistorů.

2.2. Deska DPS

DPS je navržena jako jednostranná jednoduchá na výrobu a je přímo určena do typu plastové krabičky (UK05AP), která lze lehce koupit . Většina prvků je SMD ale použil jsem co největší kousky , aby šlo vše lehce pájet i doma (velikost 1206).


3. Software a ovládání
Takže software je napsán v jazyce C a programovacím prostředí Freescale CodeWarrior for HC08/HCS08 v5.1 (volně ke stažení s licencí na 16 KB kódu zde:

https://www.freescale.com/webapp/Download?colCode=CWX-H08-PROED-EX&prodCode=CWS-H08-STDED-CX&nodeId=01272694010559&location=psp

a licence zde:

https://www.freescale.com/webapp/Download?colCode=CWX-HC08-SE&prodCode=CWS-H08-STDED-CX&nodeId=01272694010559&location=psp .

 Pro stáhnutí se člověk musí zdarma zaregistrovat na www.freescale.com ). Celkový počet řádek zdrojového kódu je přibližně 3500 a stále přibývá!
3.1. Ovládání (tzv. user interface)
Po zapnutí do elektriky se objeví dvě úvodní obrazovečky s nápisem autodráha a potom s verzí aktuálního programu uvnitř dráhy.Tento úvodní stav lze urychlit stisknutím tlačítka RESET. Poté program volně přechází do režimu volná jízda. Mezi jednotlivými režimy se přepíná tlačítkem REŽIM (moc nápadité to asi není)

3.1.1. Volná jízda


Volná jízda vlastně nahrazuje původní režim autodráhy, tzn. podle toho jak zmáčkneme ovladač tak formulka jede a nic víc. Tlačítko brzda je zde trvale zapnuto na pomalou brzdu ( stejně jako když v původní autodráze pustil plyn – ale samozřejmě to lze jakkoliv předělat).
Jediná věc co je tu navíc oproti původní autodráze je po stisknutí tlačítka MENU možnost nastavit (tlačítkem NASTAV) hráčovu úroveň ve čtyřech krocích (Dítě, Nováček, Normální, Expert). Tato funkce je velmi důležitá při používání dráhy dětmi. Oni si myslí že jedou na plný plyn, ale auta jsou omezena na takovou rychlost, aby třeba nevyletěli ještě z dráhy při plném stisku ovladače. Nejvyšší stupeň dovoluje dosahovat maximálních rychlostí. Tímto není jen omezena maximální rychlost,ale je i přizpůsoben průběh rychlosti, aby se přizpůsobil na celý chod ovladače.




3.1.2. Trénink


Trénink už je snad zajímavější a hlavně zábavnější. Při průjezdu startovní čarou se změří čas minulého kola (na setiny vteřin) a pokud auto zajelo své nejlepší kolo krabička pípne, zabliká hráčovou diodou a hlavně napíše čas právě odjetého nejlepšího kola. Pokud ale auto nezajelo nejlepší kolo, poté se na displeji objeví informace kolik činil rozdíl času tohoto a nejlepšího kola- a tím hráč ví kolik mu chybělo. Tyto časy lze jednoduše vymazat tlačítkem RESET.
Při vstupu do menu (kupodivu tlačítkem MENU, tímto tlačítkem též přecházíme mezi jednotlivými kroky menu) máme možnost nastavit tyto věci:
- opět úroveň hráčů jako ve volné jízdě
- nastavit brzdy (normální , měkké, tvrdé a vypnuty).

- Dalším stiskem MENU se přepneme do další možnosti a to Nastavit auta na startovní čáru. To se spustí tlačítkem NASTAV. Dojíždění na start je uděláno tak, že program nechá konstantní rychlostí auto objet jedno kolo a při dalším průjezdu 0,5 vteřiny před cílem zpomalí na velmi nízkou rychlost a tak se mu podaří přesně zastavit na startovní čáře. Pokud bych zkoušel brzdit ihned z větší rychlosti auto setrvačností vždy startovní čáru přejede. A pokud bych jel celou dobu nízkou rychlostí , tak nepřejedu ani jednu křižovatku .

- Zobrazení nejlepšího kola 1 hráče.
- Zobrazení nejlepšího kola 2 hráče.

Z jakéhokoliv menu se můžeme do hry vrátit tlačítkem RESET.
 

3.1.3. Závod


Při vstupu do tohoto režimu ( asi to nejlepší co se tu dá najít) se zobrazí jen nápis „Závodní režim“, pokračovat k závodu musíme nastavením parametrů tlačítkem MENU. Následnými kroky musíme projít:
- Opět nastavením úrovně obtížnosti (max rychlosti, hlavně skrze dětí) tak jako v předchozích dvou režimech.
- Počet kol – tlačítkem nastav si „nalupkáme“ na kolik kol pojedem závod. Do desíti přičíta po jednom kole, do 30 po 5 kolech a od 30 po deseti. Maximální počet kol je 250.

- Safety car – zde se povoluje možnost při závodu využívat možnosti Safety car režimu .Safety režim znamená že pokud bude nějaká kolize kdokoliv zmáčkne tlačítko Safety a až se auta vrátí na dráhu musí se hříšník co nehodu způsobil přiznat (tlačítkem na ovladači ) a dostane časovou pokutu. Během aktivního safety módu se nepočítá čas.

- Tomto kroku se nastaví velikost pokuty při safety car režimu. Nastavit lze s rozlišením desetiny vteřin až po hodnotu 25s .

- Brzdy (normální , měkké, tvrdé a vypnuty).
- V dalším kroku se nastaví typ závodu – jsou zde dvě možnosti:
- Nejlepší čas – klasika, kdo prostě dojede dřív
- Nejlepší kolo – vyhraje ten kdo prostě během závodu zajel lepší kolo

- V tomto kroku se jen čeká až budou hráči připraveni na závod. Připravenost se potvrdí tlačítkem na ovladači.

Po potvrzení auta sama automaticky dojedou na startovní čáru a semafor se rozsvítí červeně, pak žlutě a nakonec zeleně ale to asi každý zná. Kontrola ulitých startů je samozřejmostí, po takovémto nepovedeném startu je hříšník vrácen automaticky na start.
Během závodu je na displeji zobrazován aktuální čas závodu a kolo každého hráče. Pokud hráč zajede své nejlepší kolo, krabička pípne a zabliká jeho diodou..
Při závodu lze též spustit pauzu , poté se auta zastaví a čas se nepočítá.
Po dojetí prvního hráče do cíle krabička dlouze pípne a odpojí auto od napájení – zůstane stát. Až dojede i druhý hráč tak se zobrazí výsledkové skóre:
- Čas závodu vítěze (bliká jeho dioda)
- Nejlepší kolo vítěze (bliká jeho dioda)
- Čas nejlepšího kola vítěze (bliká jeho dioda)
- Rozdíl času obou hráčů (bliká vítězova dioda)
- Čas závodu druhého (svítí jeho dioda)
- Nejlepší kolo druhého (svítí jeho dioda)
- Čas nejlepšího kola druhého (svítí jeho dioda)
Tyto jednotlivé údaje se cyklicky zobrazují. Ukončit to lze buď:
- Tlačítkem RESET - ocitneme se sice v závodním režimu ale před nastavováním závodu
- Tlačítkem MENU - zopakuje nastavený závod – ocitneme se v kroku kde krabička čeká na potvrzení obou hráčů že jsou připraveni.

3.1.4. Další věci kolem softwaru
Z de jen, že ve všech případech kromě závodu a tréninku (ale v jejich menu ano) můžeme tlačítkem Jazyk přepínat komunikaci na displeji mezi angličtinou a češtinou.

4. Výroba
Velmi krátce tomuto tématu (pokud někdo má zájem mám i e-mail). Takže deska je jednostranná tzn. žádný problém při výrobě – Gerber soubory dám na vyžádání.
Procesor a H- bridge lze jako Hamply objednat na www.freescale.com , hledejte přesně tyto typy - MC9S08AW60CFUE na strance http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC9S08AW60&nodeId=016246844914372654
a MC33886VW na této stránce http://www.freescale.com/webapp/sps/site/prod_summary.jspcode=MC33886&nodeId=01435979968446 .
Převodník MAX3232 lze též objednat na strance https://shop.maximic.com/storefront/searchsample.doevent=Sample&menuitem=Sample&Partnumber=MAX3232CSE%2B
A pokud chcete naprogramovat lehce Freescale procesor a nedat do toho prachy doporučuji následující zařízení TBDML. Lze najít na webu a třeba tady http://forums.freescale.com/freescale/board/message?board.id=TBDML&message.id=2#M2 .

Tak mnoho zdaru s autodráhou.

 

Petr Gargulák - Gargulak.Petr@seznam.cz
Rožnov pod Radhoštěm

zpět na fanoušky

Schémata a výkresy ve formátu pdf:

00285_01.pcb

00285_01.pcb.all

00285_01.pcb.ssb

00285_01.pcb.sst

00285_01.sch_com

00285_01.sch_mcu

00285_01.sch_pom