cz flag en flag

Nejlevnější DCC analyzátor z Arduina Nano!

 Taky se Vám už stalo, že jste potřebovali zjistit jaké data jdou ve Vašem digitálním kolejišti? Nebo zda-li tam vůbec nějaké jsou? Co vlastně posílá digitální DCC centrála za data? Nyní máte možnost to zjistit a to skoro zadarmo!

Během programování mé digitální centrály (Digitální DCC centrála pro řízení modelové železnice pomocí Android (iOS) aplikace) jsem se mnohokrát setkal s tím, že jsem potřeboval vědět, jaké data posílá. Nejprve jsem k tomu používal logický analyzátor SALEAE (Měření digitálních sběrnic snadno, rychle a levně! Logický analyzátor SALEAE aneb jeho levnější verze!), jenže tam mě nebavilo stále odečítat jednotlivé bity a vytvářet si z toho jednotlivé pakety. Rozhodl jsem se tedy napsat program pro mikrokontrolér Atmel328, který je na destičce Arduino Nano. Tento program je velice jednoduchý, vypisuje jednotlivé přijaté pakety, jak ve formě jedniček a nul, tak i textově typ paketu, adresu a dané data podle typu. Výpis pak tedy vypadá nějak takto:

+-----+-----------------------------------------------------------------------+-------------+------+
|  #  |                                              DCC PACKET               | PACKET TYPE | ADDR |
+-----+-----------------------------------------------------------------------+-------------+------+
|  0  | 1111111111 11111111 0 00000000 0 11111111 1                           |    IDLE     |    0 |
|.....|.......................................................................|.............|......|
|  1  | 1111111111 11111111 0 00000000 0 11111111 1                           |    IDLE     |    0 |
|.....|.......................................................................|.............|......|
|  2  | 1111111111 00000011 0 00111111 0 10100111 0 10011011 1                |    TRAIN    |    3 |
|     | Direction: 1, Speed: 39                                               |             |      |
|.....|.......................................................................|.............|......|
|  3  | 1111111111 00000011 0 10000000 0 10000011 1                           | TRAIN_FUNC  |    3 |
|     | F0=0, F1=0, F2=0, F3=0, F4=0,                                         |             |      |
|.....|.......................................................................|.............|......|
|  4  | ERROR: DCC signal corrupted.                                          |             |      |
|.....|.......................................................................|.............|......|
|  5  | 11111111111 10000001 0 11111010 0 01111011 1                          |  ACCESSORY  |    1 |
|     | Switch: 2, State: 1                                                   |             |      |
|.....|.......................................................................|.............|......|

Data se vypisují do konzole na počítači (obr. 1), ale kamarád na to už chystá program na počítači. 

16402663_1239509922803893_4670285958642025133_o

Obr. 1: Výpis jednotlivých paketů v konzoli. 

V současné chvíli program umožňuje rozpoznat následující pakety:

  1. IDLE – neaktivní paket, pouze pro udržování napětí v kolejích
  2. RESET – vyresetuje všechno
  3. TRAIN – ovládání jízdy vlaku
  4. TRAIN_FUNC – funcke vlaku (světla, zvuky, …)
  5. ACCESSORY – ovládání doplňků (výhybek, osvětlení, …)
  6. ACCESSOR_EX – rozšířený paket doplňků
  7. PROGRAM – programování (zatím jen jeden z režimů)

 

A jak to teda vyrobit?

Je to úplně jednoduché. Stačí vzít Arduino Nano a nahrát do něj HEX program, který je ke stažení na konci článku.  To můžete udělat například pomocí programátoru z článku Programátor ATMEL do USB nebo libovolným jiným programátorem pro Atmel AVR, který máte doma. 

K Arduino desce je potřeba ještě připojit konvertor na DCC signál podle obrázku 2. Signál DCC z kolejí se připojí na konektor DCC-IN a Arduino se připojí na konektor OUT takto:
1 – Arduino VCC (3V3)
2 – Arduino PB3
3 – Arduino GND 

Obrázek 2: Připojení DCC k Arduino Nano.

Nakonec celé zařízení můžeme vložit do krabičky, jak je vidět v galerii na konci článku.

Jakmile budeme mít hardware hotový a program nahraný, pak můžeme zařízení připojit k počítači pomocí micro USB kabelu. V počítači se nám vytvoří nový virtuální port COM (pokud máte správně ovladače k Arduinu). Číslo tohoto portu můžeme zjistit následovně:

  1. kliknout pravým tlačítkem myši na Tento Počítač a vybrat z roletky Vlastnosti
  2. Poté vlevo kliknout na Správce zařízení
  3. Rozkliknout Porty (COM a LPT)

 

Nyní by jsme měli vidět všechny COM porty v počítači (Obr. 3). Jestliže Arduino odpojíte od počítače, pak port zmizí a tím zjistíte, který to je. Po připojení se zase objeví. 

spravce_zarizeni

Obr. 3: DCC analyzátor zobrazený ve správci zařízení. Číslo portu je COM12.

Dále je potřeba spustit program pro konzoli (terminál). Já používám program Putty (http://www.putty.org/). Po spuštění vyberete správný COM port a rychlost, která je 115 200. Mělo by to vypadat pak jako na obrázku 4. Já už mám některé porty uložené, vy je tam mít nebudete. Stačí jen nahoře do pole “Serial line” napsat COM2 třeba. Po stisknutí tlačítka Open, se zobrazí konzole z obrázku 1. Je potřeba šířku okna dostatečně roztáhnout, aby se celá tabulka vešla bez problémů. 

putty_settings

Obr. 4: Nastavení konzole Putty.

Jestliže nerozumíte všem paketům dostatečně, stačí si přečíst článek DCC pro laiky a začátečníky nebo mě kontaktujte a pokusím se Vám pomoct.

Používání

Program obsahuje i několik velice jednoduchých nastavení. Například můžete vypnout či zapnout zobrazovaná IDLE paketů pomocí tlačítka “i” na klávesnici. Takže pokud máte otevřenou konzoli, tak stačí stisknout v konzoli “i”.

Video

 

Galerie

Ke stažení

Zdrojový kód programu si můžete stáhnout na GitHub: https://github.com/zavovi/DCCSniffer

 

Nechcete vyrábět sami?

Pokud nemáte možnost si zařízení vyrobit nebo jednoduše nechcete ho vyrábět, pak mi můžete napsat pomocí kontaktního formuláře a domluvíme se podle toho, jak budu mít zrovna čas :-). 

 

3 thoughts on “Nejlevnější DCC analyzátor z Arduina Nano!

    1. admin Post author

      Díky za info. Určitě nad tím popřemýšlím, to mě ani nenapadlo, ale dává to asi smysl. A ani nevím, že se dá sehnat můstek na vyšší kmitočty.

      Když se tak dívám na ten odkaz, co jste poslal, to jste stavěl vy? Jaký software používáte na zobrazení paketů? Nebo jakým způsobem zobrazujete?

Napsat komentář: admin Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*

0
0
0
1
0
0
0
0
0
Verified by ExactMetrics