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 destičce Arduino připojíme ještě usměrňovač a odpor pro DCC signál podle obrázku 2. 

R1 ……… 22k

DCC sniffer_sch

Obr. 2: Blokové znázornění zapojení celého zařízení.

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í

Pokud se Vám zařízení líbí a chtěli by jste více podobných projektů na webu, můžete autorovi pomoct malým finančním příspěvkem – můžete provést v pravém sloupci (DONATE). 

 

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 :-). 

 

Článek byl 3x komentován “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?

Komentovat

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena *

*

*