Jaroslav Nušl

projekt.cvut.org

 

 

Řízení světelných efektů hudebním signálem

 

 

Obsah

 

  1. Úvod
  2. Anatomie DMX512
  3. Teoretický rozbor
  4. Interface USB – DMX512 (http://www.soh.cz/produkty/dmx-pipe)
  5. Software – komunikace PC -> DMX (http://www.soh.cz/podpora/teorie)
  6. Rozbor – moduly řízené DMX 512 protokolem
  7. Bezdrátový přenos DMX512
  8. Odkazy a doporučená literatura

 

Přílohy

 

1.      Popis modulu KM-1 (.pdf)

2.      Popis modulu UMS2 od firmy Asix s.r.o. (.pdf)

3.      Princip krokových motorků

4.      Zapojení elektrické síťové zásuvky (typ E)

5.      Zdrojový kód programu pro modul KM-1

 


Úvod

 

       Tato práce má za cíl najít co nejefektivnější způsob řízení světelných efektů za účelem podbarvení hudby. Je zbytečné vymýšlet něco co je již hotové, proto se při této práci snažím využít již hotových prostředku které by usnadnily tvorbu tohoto projektu a jeho dovedení do využívatelné podoby popřípadě rozšířily jeho možnosti. Proto jako komunikační protokol jsem se rozhodl použít standardní DMX512, jehož rozbor naleznete níže, neboť je nímž již skoro veškerá profesionální technika ovládána a k jeho řízení dostupné PC. Efektivnost je také v jednoduchosti ovládání. Snažím se tedy také vytvořit SW, který by analyzoval hudbu a pokud možno sám, bez dalšího zásahu osvětlovače by dokázal vytvořit srozumitelnou a pro oko příjemnou světelnou scénu vhodnou pro daný hudební žánr.

 

 

Anatomie DMX

(čerpáno ze serveru www.mcu.cz, autor Milan Kostomlatský)


    Protokol DMX512 byl navržen v roce 1986 institutem USITT, jako základ řízení stmívačů a dalších světelných efektů v divadlech pomocí digitálního rozhraní. Měl nahradit do té doby používané analogové řízení. Přinesl první digitální standard do džungle výrobců konzolí, stmívačů a efektů používaných nejen na prknech znamenajících svět.

DMX512 není v žádném případě dokonalý protokol, ale potřebám pro které byl navržen, vyhovuje. ESTA si je jeho nedokonalostí vědoma a připravuje nové standardy založené na TCP/IP. Na druhou stranu je tento protokol ve své implementaci tak jednoduchý a spolehlivý, že umožnil použití světelné techniky v místech opravdu nečekaných.

Základem DMX512 je jeho elektrická specifikace. Ta vychází z osvědčeného průmyslového standardu EIA485 (RS485). Vzhledem k širokému použití tohoto standardu v průmyslu jsou technické prostředky pro jeho implementaci velmi levné a přizpůsobené pro nejtvrdší podmínky nasazení.

Základní charakteristiky EIA485

  • diferenciální napěťový přenos po kroucené dvoulince
  • maximálně 32 přijímačů v jednom segmentu (existují budiče umožňující použít až 256 přijímačů) 
  • impedanční přizpůsobení linky (120 ohmů)
  • délka segmentu až 1000 m
  • počet segmentů není limitován

Nedílnou součástí specifikace DMX512 je i stanovení doporučených konektorů a obsazení jejich pinů. Standardně jsou doporučeny konektory XLR. A to v pěti pinové verzi. U starších zařízení je možné nalézt i tří pinovou verzi těchto konektorů. Rozložení pinů a přiřazení signálů je popsáno v následující tabulce.


 


Pohled na konektory z "vnějšku"

XLR5M

XLR5F

XLR3M

XLR3F

 

Přiřazení pinů XLR konektoru Pin

Vodič

Signál

1

Stínění

zem / 0V

2

1 pár (black)

Data -

3

1 pár (white)

Data +

4

2 pár (green)

*Data -

5

2 pár (red)

*Data +

Standardně je k přenosu signálu použit jeden pár kroucené dvojlinky (1 pár). Ve specifikaci je pamatováno na případná rozšíření a je uvažován i druhý datový pár (2 pár) v tabulce označen jako *Data. Využití tohoto doplňkového páru není přesně definováno a je na vůli výrobce jak jej použije.

Pro převod úrovní EIA485 na běžnou TTL úroveň je možné použít standardní průmyslové obvody - například SN75176B od Texas Instruments, případně řadu ekvivalentů. V případě galvanického oddělení existuje řada obvodů řešících vše potřebné na jednom čipu - například ISO485P od Burr-Brown.

Často použité přímé připojení optočlenu na linku DMX512 je možné použít pouze za předpokladu, že jste schopni zajistit přímé propojení jednoho vysílače na jeden přijímač. V opačném případě toto zapojení dramaticky snižuje počet současně připojených přijímačů a zvyšuje možnost vzniku chyb.

Formát dat
Vlastní přenos informace je asynchronní s jedním start bitem, osmi datovými bity, bez parity a se dvěma stop bity. Bitová rychlost je stanovena na 250 kBd/s, tedy poměrně vysoko. Jeden bit má dobu trvání 4_s a jeden datový bajt je přenesen za 44_s (11 bitů).  Datové bity jsou vysílány od nejméně významného (D0) k nejvýše významnému (D7).

DMX Frame
Reprezentace datového bajtu s hodnotou 91 (DEC)

Start a stop bity jsou využívány k synchronizaci vysílače a přijímače. Klidová úroveň na lince je "1"  Na následujících obrázcích je zobrazen stav na lince při vysílání dvou mezních hodnot 0 a 255.

DMX - All 0's
Data = '0'

DMX - All 1's
Data = '255'

Formát DMX512 paketu
Formát paketu je hlavní přínos standardu DMX512. V podstatě se jedná o jednoduchý "vláček" datových bajtů uvozený synchronizační mezerou a startovacím kódem.

  • Synchronizační mezera "Break" je nulový pulz o délce minimálně 88_s následovaný klidovou úrovní (Mark-after-break) v délce minimálně 8_s. Minimální doba trvání synchronizační mezery byla stanovena s ohledem na maximální možný výskyt nulové úrovně na lince při běžném satovém přenosu. Při vysílání hodnoty "0" je nulová úroveň na lince po dobu 36_s ( 4_s (Start bit) + (8 x 4_s (Data bit)) ).
  • Klidová úroveň po synchronizační mezeře (Mark-after-break) zamezuje detekci falešných start bitů.
  • Start kód - v normě je definována pouze hodnota "0", která určuje, že následující datové bajty nesou informaci o úrovni stmívačů. V praxi je téměř vždy start kód vysílán s hodnotou "0" i když jsou ovládaná zařízení naprosto jiného typu než stmívač. Také stmívače, které by měli přijatou hodnotu ignorovat pokud je start kód různý od nuly, se takto většinou nechovají. Prostě krásný příklad nedotažení "normy". 
  • Mezera mezi datovými bajty (Inter-frame-time) může být nulová. V praxi se nenulová hodnota vyskytne pouze v případě, že konzole (osvětlovací pult) přechází z jedné naprogramované scény do druhé.

DMX512 Packet

Specifikace časování  

Min

Max

Break

88_s

1s

Mark-after-break

8_s

1s

Inter-frame-time

0_s

1s

Výskyt vysoké, nebo nízké úrovně na lince po dobu delší než jedna sekunda je vyhodnocen jako ztráta signálu (chyba). Koncová zařízení (stmívače, efekty) se při ztrátě signálu chovají naprosto nevyzpytatelně. Některá automaticky nastavují vše na nulovou úroveň, některá udržují stav dle posledně přijaté hodnoty a některá se prostě "zblázní".

Slovo závěrem
Instalace DMX512 je kapitola sama pro sebe. Hodně chyb se dělá v nepochopení termínu sběrnice - není možné zapojit koncová zařízení stylem "hvězda". Jednoduchá aplikace Ohmova zákona vysvětlí proč. Je bezpodmínečně nutné používat zakončovací odpory - to co Vám bez problému funguje v testovacím provozu na stole se bude naprosto jinak chovat v prostředí, kde zapínání a vypínání tisíců watů je dílem okamžiku. Používejte rozbočovače (Splitters) a opakovače (Repeaters). Používejte optická oddělení.

DMX Network
Typická instalace DMX512

 


Detailní rozpis průběhu signálu na sběrnici:

(čerpáno ze stránky http://www.niehoff.nl/tips/DMX-512_duits.htm)

 

[DMX STANDARD]

č.

 Popis

Min.

Typ.

Max.

Jednotky

1

Reset (Break)

88

88

 

us

2

MAB

8

-

1 s

us

3

Rámec

43,12

44,0

44,48

us

4

Start bit

3,92

4,0

4,08

us

5

LSB (první datový bit)

3,92

4,0

4,08

us

6

MSB (poslední datový bit)

3,92

4,0

4,08

us

7

Stop bit

3,92

4,0

4,08

us

8

MTBF (mezera mezi rámci)

0

0

1,00

s

9

MTBP (mezera mezi pakety)

0

0

1,00

s

 

 

Význam zkratek:

 

MAB – Mark After Break

MTBF - MARK TIME BETWEEN FRAMES

MTBP - MARK TIME BETWEEN PACKETS

 

Pozor! Převodní jednotka „k“ má podle trvání bitu (4 us) hodnotu 1000 a ne 1024.

(Tedy rychlost je 250 000 bps a ne 256 000 bps.)

 


Zapojení kabelu pro DMX

(Volně přeloženo z manuálových listů výrobce American DJ)

 

Zapojení kabelu je na obr. 5. Na uzemnění se nepoužívá zemnící vývod konektoru XLR. Nezapojujte tedy stínění (zem) na kovový kryt konektoru, může to způsobit zkrat nebo nevyzpytatelné chování. Stínění se připojuje na pin číslo 1.

 

Obr. 5: Zapojení kabelu DMX

 

 

Při připojení delších kabelů je třeba použít terminátor (pro impedanční přizpůsobení vedení) na konec vedení. Terminátor je odpor 90 – 120  Ohmů, ¼ W připojený mezi piny 2 a 3 na zásuvce konektoru XLR (tedy na DATA+ a DATA-). Odpor lze zapájet do XLR zástrčky a připojit do poslední DMX jednotky. Tím se sníží možnost eventuelního nevyzpytatelného chování jednotek.

 

Někteří výrobci používají 5-pinový XLR DMX konektor pro přenos dat, místo 3-pinového. Standardní 5-pinový XLR konektor může být implementovaný do 3-pinového pomocí kabelového adaptéru. Zapojení pinů pro 5 a 3-pinový XLR konetor je v tabulce 11.

 

Conductor

3-Pin XLR Female (Out)

5-Pin XLR Male (In)

Ground/Shield

Pin 1

Pin 1

Data Compliment (- signal)

Pin 2

Pin 2

Data True (+ signal)

Pin 3

Pin 3

Not Used

 

Do Not Use

Not Used

 

Do Not Use

Tab. 11: Zapojení konektoru XLR

 

 

Teoretický rozbor

 

    Co se týká HW řešení  je tedy pevně daný cíl: Vytvořit interface DMX a PC. Na PC lze pro tento účel využít výstupy LPT, MIDI, USB, Ethernet. Využívá se také COM portu, neboť jde o sériové rozhraní stejně jako v případě DMX. Bohužel nedosahuje takové rychlosti jako DMX, musí se tedy stejně použít mikrořadiče který posílá opakovaně stejná data pro dosažení potřebné rychlosti. LPT port je již zastaralý a nemusí být vždy dostupný, např. při použití notebooku. MIDI běžně na PC nenalezneme a Ethernet je příliš složitý. Nejvhodněji se tedy jeví USB. V tomto případě se jako nejednodušší způsob jeví použít obvod od fy. FTDI, které do ČR distribuuje firma ASIX s.r.o. Na jejich stránkách www.asix.cz naleznete také popis k těmto obvodům. Firma FTDI vyrábí obvody FT8U245BM a FT8U232BM. První je konvertor USB – FIFO s  8-bitovou obousměrnou sběrnicí a maximální přenosovou rychlostí až 1 MByte/s. Druhý obvod pro naše použití vhodnější je konvertor USB – UART s přenosovou rychlostí 300 Bd až 3 MBd. Tyto obvody obsahují buffer 384 bajtů směrem k PC a 128 bajtů směrem opačným.  Konkrétní technické řešení je rozepsáno v kapitole Interface DMX - USB  

 

Interface DMX - USB  

 

 

       HW řešení vychází z doporučeného zapojení obvodu FT8U232BM, doplněného o obvod SN75176 zajištující správné napěťové úrovně pro standard EIA485 (RS485) a je uvedeno na obr. 6.  Při konstrukci bylo využito hotového modulu UMS2 fy. Asix. Tento modul představuje doporučené zapojení obvodu FT8U232BM zapájeného do patice DIL 28. Tím se složitost celého zapojení velice zjednodušila a ani není třeba pájet náročné SMD součástky. Odpory R2,R3,R4 jsou připojeny pro ochranu obvodu. Zařízení však pracuje i bez těchto odporů a i výstup z U1 je odolný proti zkratu. Odpor R5 zaručuje impedanční přizpůsobení na straně vysílače. Dioda D1 rychlým blikáním signalizuje vysílání nebo příjem obvodu FT8U232BM a v ostatních případech je odpojená. Ovládání diody je implementováno v samotném obvodu. V amatérských podmínkách funguje celé zapojení i bez těchto externích součástek. Stačí tedy propojit obvody U1 a U2.

 

Schéma modulu UMS2 je uvedeno na obr. 7. Bližší parametry pro případné další využití jsou na stránkách výrobce www.asix.cz.

 

 

Obr. 6  Interface USB - DMX

Rozpis součástek

 

U1       SN75176

U2       modul UMS2

D1       LED

R1       390 R

R2       10 R

R3       10 R

R4       10 R

R5       120 R

DMX   konektor XLR

USB    konektor USB

 

Obr. 7  Modul UMS2

 

 

 

Obr. 8  Modul UMS2 – konstrukce

 

 

 

Obr. 9  Kompletní schéma interface USB – DMX 512

 

  

  

Obr. 10  Fotky - konstrukce USB – DMX 512

 

 

Software – komunikace PC -> DMX

 

Open source zdrojové kódy pro Borland C++ naleznete např. na stránce http://www.enttec.com/dmxusb.php

 

Na vývoji software se bude pracovat i mimo rozsah tohoto projektu. Pro odzkoušení a využití základních možností DMX lze použít např. program Simple DMX http://www.chromakinetics.com/DMX/

 

Program pro řízení světelné techniky hudbou naleznete na stránce http://www.svetla.org/

 

 

Rozbor – moduly řízené DMX protokolem

 

            Pro řízení krokových motorků, dekodér DMX na analogové řízení 0 – 10 V apod.

lze využít SN75176 + mikrořadič a obvod zajišťující dostatečnou výkonovou úroveň výstupů.

 

V mém případě jsem využil obvod ATmega8 a výkonové budiče v obvodu ULN2003.

Viz schéma na obr. 12.

 

K naprogramování obvodu je použit program SP12 (http://www.xs4all.nl/~sbolt/e-spider_prog.html) a schéma uvedené na obr. 11. Napájení mikrořadiče je z konektoru USB.

Na stránce programátoru SP12 jsou uvedeny i jiné varianty programátorů.

 

 

Obr. 11  Programátor AVR přes LPT

 

 

Datasheet ATmega8 ( http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf )

Datasheet ULN2003 ( http://wwww.ges.cz/sheet/u/uln2003.pdf )

Datasheet SN75176 (http://www.datasheetarchive.com/datasheet/pdf/65/650737.html  )

 

 

 

Modul pro řízení krokových motorků ovládaný protokolem DMX-512

 

            Tento modul nazvaný KM-1 (Krokový Motor I) je určen pro univerzální využití, kde je potřeba řídit krokové motorky pomocí protokolu DMX-512. Zapojení je navrženo s miktořadičem ATmega8, který je dostatečně rychlý a i univerzální pro další rozšíření zapojení. V mikrořadiči ATmega8 se využívá sériového kanálu UART pro dekódování protokolu DMX-512 a jednoho časovače s přerušením pro krokový motorek. Signál RS485 (dle normy DMX-512) je přiváděn na rozdílový sběrnicový přijímač SN75176, který převádí napěťové úrovně RS485 na úroveň TTL, kterou dále zpracovává mikrořadič ATmega8. Výstupy mikrořadiče jsou přivedeny do darlingtonového tranzistorového pole ULN2003, který tyto výstupy převede na požadovanou výkonovou úroveň pro krokový motorek, či jinou aplikaci. Schéma je na obrázku č. 12. Na následujících odkazech je zdrojový a zkompilovaný kód pro řadič ATmega8. V následující dokumentaci je adresa DMX kanálu pevně nastavena na 1 a 2. Momentálně je již hotový modul, kde se počáteční adresa nastavuje v 10ti pólovém DIP spínači. Devět spínačů slouží k nastavení počáteční adresy, jak je uvedeno v manuálu pro KM-I a desátý spínač slouží k zapnutí automatického ovládání, které je implementováno v mikrořadiči. Dokumentace a schéma budou doplněny.

 

Asembler:

http://projekt.cvut.org/sources/DMX_Steep_Motor.asm

http://projekt.cvut.org/sources/DMX_Steep_Motor.hex

 

WinAVR GCC:

http://projekt.cvut.org/sources/stappen.c

http://projekt.cvut.org/sources/stappen.hex

 

 

 

 

Obr. 12  Dekodér DMX

 

 

 

 

Rozpis součástek:

 

U1       ULN2003A*

U2       SN75176

IC1      ATmega8 - DIL28

C1       100 uF / 16 V

C2       100 nF

C3       100 nF

D1       Zenerova dioda 12V (možná lépe propojit přímo bez diody <- bude odstraněna
ze schématu)

 

*vhodnější obvod lze použít např. L298

Technické parametry:

 

Napájení přípravku                              5 V

Napájení krokového motorku   max. 50 V

Odběr korkového motorku                  max. 500 mA

Řídící signál – dle normy DMX min +- 200 mV

Vstupní odpor                                     > 12 kOhmů

 

 

Obr. 13  Náhled na zapojení ve zkušebním poli

 

 

Univerzální dekodér DMX 512

Obr. 14  Dekodér DMX 512 s ATmega8
(pozor, zenerova dioda D14 je potřeba přemostit odporem, třeba 30k)

 

Osmikanálový stmívač

 

Stmívač je určený pro připojení k univerzálnímu dekodéru DMX 512. Maximální výkon na kanál je 1 kW a celkový maximální výkon 3,6 kW. Napájení stmívače je potřeba připojit přes síťový odrušovací filtr, viz. web: http://wes.feec.vutbr.cz/UREL/EncyklopedieEMC/index.php?soubor=4.3.1.htm

 

Obr. 15  Karta s triakovými regulátory pro Dekodér DMX 512

 

    

Obr. 16  Prototyp stmívače - měření


Program stmívače (ATmega 8, univerzální dekodér DMX512) od pana Zdenka Novotného: http://projekt.cvut.org/sources/dimmer.asm

 

Bezdrátový přenos DMX

 

     Jedná se o sériový protokol s rychlostí 250 kbps. K přenosu půjde zřejmě použít třeba některých modulů CzechLabs http://www.czechlabs.cz/. Zajímavá by byla pro přenos technologie Bluetooth. Šlo by třeba upravit řízení světel pomocí nějakého PDA apod., avšak dosah pro technologii Bluethoot je ve třídě 1 max. 100 m což nemusí být vždy dostatečné. Další možností jsou datové UHF radiomoduly s nízkým výkonem BiM-418-F, BiM-433-F a BIM-433-FH firmy Radiometrix Ltd (http://www.artbrno.cz/radiometrix/radiometrix2_cz.php). Jde o miniaturní UHF radiomoduly se schopností přenosu dat rychlostí až 40 kbit/sec v módu half duplex na vzdálenost 30 metrů "v budovách" a 120 metrů v otevřeném prostoru ve verzi F a 350m v otevřeném prostoru ve verzi FH. Možnosti bezdrátového přenosu ještě prostudují a o jeho výsledcích se jistě podělím.

 

 

 


Odkazy a doporučená literatura

 

USB prakticky s obvody FTDI 1. díl, David Matoušek, BEN

Mikrokontroléry ATMEL AVR, Vladimír Váňa, BEN

Amatérská rádia pro konstruktéry a praktická elektronika

Katalog firmy GES elektronics

Katalog firmy GM elektronic

 

Seznam použitých odkazů:

http://www.asix.cz/

http://www.niehoff.nl/tips/DMX-512_duits.htm

http://www.mujweb.cz/kultura/svetla/index.htm

http://avr.hw.cz/programy/uart/uart.html

http://quattro.haje.cz/

http://www.mcu.cz/

http://www.enttec.com/dmxusb.php

http://dmx512.no-ip.com/

 

…a mnohé další

 

Schémata uvedená na této stránce naleznete v lepším rozlišení také na http://projekt.cvut.org/obrazky2/

Fotky konstrukcí naleznete na http://projekt.cvut.org/obrazky3/

Další schémata jsou na http://projekt.cvut.org/obrazky4/ 
Zdrojové kódy některých programu najdete na: http://projekt.cvut.org/sources/ 

 

Program pro řízení světelné techniky hudbou naleznete na http://www.svetla.org/   (umí ovládání přes USB-DMX512, nebo i LPT = spínání 8 nezávislých výstupů)

 

Některé dotazy k projektu FAQ:

 

Poslední změna 20.4.2008

Pokud jste stránku již jednou navštívili, nezapomeňte pro jistotu stisknout tlačítko reload, aby se Vám nezobrazovala stará data.

 

 

----- NA PROJEKTU SE STÁLE PRACUJE. DOTAZY, NÁPADY A PŘIPOMÍNKY PIŠTE NA EMAIL: dmx@cvut.org ------

 

 

TOPlist