Propeller clock

25. Október, 2010, Autor článku: Kuruc Marian, Elektrotechnika, Študentské práce
Ročník 3, číslo 10 This page as PDF Pridať príspevok

Tato práce se zabývá návrhem hardware a software pro aplikaci rotujícího LED displeje. Ten využívá nedokonalost lidského oka. Každý jednotlivý obraz v oku zanikne za cca 1/30 vteřiny. To umožňuje vytvořit displej složený „pouze“ z pruhu LED diod, které při roztočení na určitou frekvenci otáčení budou vytvářet neblikající kruhový obrazec. Protože se většinou tento displej používá pro zobrazení hodin a data, vžil se pro něj název „Propeller clock“, neboli „vrtulové hodiny“.

1. Úvod

1.1 Princip činnosti rotačního LED displeje

Rotační LED displej pracuje na principu využívajícího nedokonalosti lidského oka. Oko funguje vlastně jako kamera a zaznamenává kontinuální děj. Každý jednotlivý obraz v oku zanikne za cca 1/30 vteřiny (proto televize a kino nebliká i přesto, že se skládá ze série snímků). To umožňuje vytvořit displej složený „pouze“ z pruhu LED diod, které při roztočení na určitou frekvenci otáčení budou vytvářet neblikající kruhový obrazec. Protože se většinou tento displej používá pro zobrazení hodin a data, vžil se pro něj název „Propeller clock“, neboli „vrtulové hodiny“. Na následujícím obrázku vidíme rameno s LED diodami otáčející se kolem středového bodu.


Obr.1 Výpis textu „Hello“ na rotační LED displeji

Základem displeje je rotující rameno kolem středového bodu S. Na rameni je umístěno 12 LED diod, které se postupně v závislosti na poloze ramena rozsvěcují a zhasínají. Pokud budeme ramenem kroužit dostatečně rychle, dostaneme statický neblikající nápis „Hello“. Podmínkou je, že zaručíme dostatečně rychlé otáčení ramene. Čím větší frekvence otáčení f, tím kvalitnější zobrazení. Experimentálně bylo zjištěno, že blikání displeje vyšší než 75 Hz oko už ani periferním pohledem nepostřehne.

Způsob zobrazení – Rotating display system – je již chráněn patentem USA No. 6856303.

2. Návrh konstrukce

2.1 Základní požadavky

Rotující LED displej je velice náročný z hlediska přesného časování a zobrazení. Dále jsou zde bodově uvedené požadavky na konstrukci:

  1. 64 LED v jedné řadě na rameni, řízení jasu
  2. obnovovací frekvence f>50Hz a s tím spojené měření otáček
  3. 120 (nebo 240) poloh ramene během jediné otáčky, tzn. úhel \phi = 360/120 = 3^o (1,5^o)
  4. hodiny reálného času zálohované baterií
  5. externí paměť EEPROM pro pozdější rozšíření
  6. ovládání režimu zobrazení pomocí dálkového ovladače s kódem RC-5
  7. napájení 5 V


Obr.2 Blokové schéma návrhu rotačních hodin

2.2 Výběr HW komponent

MCU dsPIC30F6015 – Výkonný DSP procesor od firmy Microchip. V této aplikaci taktován na výkon 30 MIPS (zpracování jedné MAC instrukce = 34ns). Provádí veškeré funkce rotačního displeje a je srdcem celého zařízení. Programování se provádí přes rozhraní ICSP.

Led driver – Je zde použit 4x integrovaný obvod STP16CP05. Jedná se o převodník ze sériového synchronního rozhraní (SPI) na 16bitový výstup s konstantním zdrojem proudu na každém z výstupu. Proud lze nastavit v rozsahu 5 ÷ 100 mA.

Optosenzor CNY70 – Reflexivní optosnímač je zde použit pro měření doby otáčky rotující části. Informace se pak dále používá k přesnému časování zobrazení LED diod.

RC-5 přijímač – Obsahuje v sobě infrasenzor na frekvenci 36kHz spolu s demodulátorem signálu. Impulzy na výstupu demodulátoru jsou v Manchester kódu a následně se musí dekódovat v MCU.

EEPROM 128kB – Paměť typu EEPROM připojena ke sběrnici I2C. Umožňuje uživateli nahrát objemné data, jako jsou obrázky a animace do paměti, a poté je zobrazovat na displeji.

RTC DS1307 – Výborný a jednoduchý obvod hodin reálného času komunikující rovněž po sběrnici I2C. Záložní baterie pomáhá v běhu hodin i po odpojení 5V napájecího napětí.

2.3 Výpočet časových konstant

Při výběru každé součástky muselo být přihlíženo na její časové konstanty, abychom mohli dosáhnout vysokých obnovovacích frekvencí.


Obr.3 Výpočet časových konstant

Máme navrhnout rotující displej se 120ti polohami ramene a obnovovací frekvencí f=60Hz. Jedna otočka ramene bude tedy trvat 1/60 sekundy. Doba mezi dvěma polohami ramene (na obrázku proměnná tON) bude trvat:

t_{ON} = \frac{1}{f.k} = \frac{1}{60.120} \doteq 139 \mu s (1)

Jak později uvidíme, jedná se o velice důležitý čas, během kterého se musí „stihnout“ matematické operace tak, aby ještě před vypršením této doby byla připravena data pro zápis na displej. Dá se říci, že jsme postaveni před úkol splnit požadavky hard real-time systému.

Tab. 1: Časové konstanty pro vybrané typy frekvence f a počtu poloh k

f [Hz] | k [-] 120 240 360
50 167 µs 84 µs 56 µs
60 139 µs 70 µs 47 µs
70 119 µs 60 µs 40 µs
80 104 µs 52 µs 35 µs

Doba tON není zdaleka jediná časová konstanta nacházející se v systému. Proto musíme počítat při návrhu i s těmito následujícími:

Doba zápisu na LED displej – S LED diodami se komunikuje prostřednictvím sérioparalelního převodníku z SPI na 16 bitů. Rychlost SPI komunikace je nastavena na 10MHz. Doba odeslání (tLED) informace na 64bitový LED displej tedy trvá minimálně:

t_{LED} = \frac{n}{f_{SCK}} = \frac{64}{10^7} \doteq 6,4 \mu s (2)

Doba čtení z I2C periferií – Sběrnice I2C je schopna pracovat na frekvenci až 1 MHz. Bohužel obvod RTC podporuje komunikaci na rychlosti pouze 100 kHz. Doba přenosu jednoho Byte při této rychlosti (nepočítáme – li čas potřebný pro režii sběrnice) je minimálně:

t_{I2C} = \frac{n}{f_{SCK}} = \frac{8}{10^5} \doteq80 \mu s (3)

Toto je doba výměny jednoho Byte na sběrnici I2C. Abychom například zjistili přesný čas z obvodu RTC, uložený v pěti Bytech, je potřeba komunikovat s periferií po dobu t_{I2CTIME} = 5.80 \mu s = 400 \mu s. Tento čas několikanásobně překračuje kritickou dobu tON a je tedy zřejmé, že komunikace po I2C se bude muset provádět „na pozadí“.

3. Software

Program pro mikroprocesor dsPIC30F6015 je napsán v jazyce C v prostředí MPLAB v8.30 s využitím kompilátoru jazyka C. Prostředí umožňuje připojit programátor/debugger ICD3, nicméně ladění programu je kvůli pohybu rotující části, kde je i procesor, znemožněno.

3.1 Režimy zobrazení

Displej umožňuje několik režimů zobrazení. Zde je jejich krátký popis:

  • IDLE – v tomto režimu LED displej nerotuje. Na displeji bliká pouze červená LED dioda signalizující přítomnost napájecího napětí. Z tohoto stavu se displej dostává automaticky po roztočení.
  • CLOCK – zobrazení analogových hodin na displeji. Zobrazení minutové, hodinové ručičky a ciferníku je klasické, ukazatel sekund je vytvořen postupným rozsvěcováním červené diody v kruhu na obvodu displeje.


Obr.4 Zobrazení analogových hodin na displeji

  • TEXT – zobrazení statického textu. Ten se vypisuje buď ve spodní, nebo horní části displeje a jeho zobrazení je symetrické vůči vertikální ose displeje. Délka textu je omezena počtem kroků a poloměrem displeje.






Obr.5 Ukázka různých statických nápisů na displeji

  • MOVING_TEXT – zobrazení pohybujícího se textu. Text ve formě string se postupně zprava doleva posunuje po displeji rychlostí 40 ms/krok. Délka textu je prakticky omezena pouze velikostí paměti pro data v mikroprocesoru, kde je text uložen.








Obr.6 Ukázka rotujícího textu „VŠB TU Ostrava“

  • IMAGE – zobrazení obrázku na displeji. Obrázek je prozatím uložen v datové paměti mikroprocesoru v podobě pole hodnot o celkové velikosti 512 B. Data jsou ve skupinách po 4 Bytech v každém ze 120 kroků posílána na LED displej. Zbývajících 32 B je využito pro informace o obrázku.
  • ANIMATION – Zobrazení animace na displeji. Použití této funkce je ve stádiu implementace. Funkce bude podobná jak u režimu IMAGE s tím, že snímky budou obsahovat své pořadové číslo a budou uloženy na externí EEPROM I2C paměti, která umožní animaci o délce až 255 obrázků. Mikroprocesor pak bude postupně data z EEPROM stahovat a zobrazovat na displeji.

4. Hardware

4.1 Rotující část

Plošný spoj je koncipován jako oboustranný s kombinovanou metodou osazení, SMT i Through-hole technologií. Celkem je na desce umístěno 66 LED diod. Z toho jsou dvě barevné (modrá a červená) a zbytek jsou bílé. Barevné diody jsou umístěny na konci ramene, a při svitu vytvářejí barevný kruh.

Deska je napájena ze zdroje o napětí 12 V, to je dále stabilizováno snižujícím měničem napětí TPS54232 firmy Texas Instruments na hodnotu 5 V s výstupním proudem maximálně 2 A. Obvod v sobě integruje řídicí obvody měniče spolu s proudovou a tepelnou ochranou a výkonovým N-kanálovým MOSFET tranzistorem s nízkou hodnotou odporu v sepnutém stavu RdsON = 80 mΩ, která nám mj. spolu s frekvencí spínání ovlivňuje výkonovou ztrátu měniče. Spínací frekvence je 1 MHz. Hlavní částí je 16bitový DSP procesor (dsPIC30F6015). Ten se programuje a zároveň ladí prostřednictvím rozhraní ICSP (In Circuit Serial Programing).

V zapojení jsou využity dvě komunikační sběrnice, a to SPI a I2C. Pomocí sběrnice I2C jsou připojeny hodiny reálného času (DS1307) a paměť EEPROM (24LC128). Druhá sběrnice je využita pro komunikaci se čtyřmi integrovanými obvody STP16CP05 na buzení LED. Komunikace je pouze jednosměrná, takže jsou využity jen signály MOSI (Master Out Slave Input) a SCK (hodiny). K hodinám reálného času je připojen krystal s frekvencí 32,768 kHz a 3V Lithiová baterie pro zálohování vnitřních obvodů generujících čas při výpadku napájení.


Obr.7 Hotová DPS – strana TOP


Obr.8 Hotová DPS – strana BOTTOM

4.2 Pohon a přenos energie na rotující část

Pohon rotujícího displeje zajišťuje stejnosměrný motor SPEED 480. Ten je zabudován do hliníkového nástavce. Na následujícím obrázku je zobrazen model vnitřní části pohonu. Pro přenos elektrické energie na rotující část je využito dvou uhlíkových kartáčů. Napájecí zem prochází přes jeden z kartáčů, mosazný kroužek a přes hliníkovou osu, na které je pak připevněna rotující část. Kladný pól napájení je veden přes druhý kartáč, na mosazný kroužek, který je od osy izolován. Na tomto kroužku je naletován vodič, který je pak na rotující část veden dutou částí osy.


Obr.9 Model pohonu (Vnitřní část)

Celý mechanizmus pohonu byl namodelován v prostředí Autodesk Invertor. Je sestaven celkem ze čtyř různých materiálů a několika běžně dostupných součástek. Uchycení uhlíkových kartáčků a izolace jednoho z třecích kroužků je vyrobena ze silonového materiálu. Osa, matice pro uchycení DPS a samotné tělo mechanizmu je vyrobeno z hliníku. Třecí kroužky jsou vyrobeny z mosazi a uchycení motoru je zkonstruováno ze železného plechu síly 1mm.


Obr. 10 Řez pohonem

5. Závěr

Rotující displej je zajímavé zařízení využívající nedokonalosti lidského oka. Pomocí „pouhých“ 64 rotujících LED diod jsme dokázali vytvořit displej o 15360 zobrazovacích bodech. Displej byl odzkoušen na frekvenci 80 Hz a 240 polohách ramene, což je jeho maximum, kdy doba výpisu LED diody trvá jen 52 µs. Při této frekvenci rotace je již obraz na displeji velmi stabilní a ani lidské oko nepozná, že obraz je vytvářen rotací LED diod.




Obr. 10 Ukážka


Spoluautorom článku je H. Prokop, Studentská tvůrčí a odborná činnost 2010, FAI UTB ve Zlíně
Stránka autorov: www.mcuhobby.cz

1 príspevok k článku “Propeller clock”

  1. Martin prokop napísal:

    Ahoj, chtěl by sem si udělat tyto hodiny, ale nejsem si jist s napragramováním. Takže bych vás chtěl touto cestou poprosit, jestli by jste mi neposlali zdrojový kod toho programu. Předem děkuji a přeji pěkný den

Napísať príspevok