Bc. Gabriel Cséfalvay a Bc. Tomáš Kollár
xcsefa00
stud.feec.vutbr.cz,
xkolla00
stud.feec.vutbr.cz
Jedním z vlastností lidského oka je setrvačnost vidění. Na základě této nedokonalosti funguje například TV na minimálně 50Hz a různé zobrazovací zařízení. Základ jevu spočívá v tom, že když na sítnici dopadne hodně světlý bod, pak tento bod po vypnutí světelného zdroje nezmizí v ten okamih z naši perspektivy. Taky se dá zpozorovat, že když tento světelný bod posuneme jistou rychlostí do nějakého směru před okem, uvidíme světelnou čáru. Tato čára samozřejmě ztrácí časem ze své intenzity, a to od začátku lineárně ke konci, kde se bod právě nachází. V našem zařízení jsme využili pro zobrazování právě tento jev. Při použití 16 SMD LED a ventilátoru o průměru 80mm jsme sestrojili Rotační Displej (dále jen RoD), který umí zobrazit kruhový obrázek s rozlíšením 32 obrazových bodů v radiálním směru a 256 v axiálním. Deska s plošným spojem byla namontována na upravený ventilátor.
Pro napájení se v počátku uvažovalo o použití uhlíkových kartáčů. Tento koncept se dostal i do fáze realizace, ale v důsledku nedokonalosti této techniky se muselo použít jiné řešení. Problémem bylo, že ventilátor se otáčel příliš pomalu v důsledku brzdění uhlíkovými kartáči (ve skutečnosti se použil grafit) a byl příliš hlučný. Jako řešení jsme použili neobvyklý typ trafa se vzduchovým jádrem. Takové trafo sestává ze dvou prstencových vinutí. Jeden má šířku větší, takže druhé (menší) lze vsunout do něho. Tyto vinutí nejsou navzájem mechanicky spojeny. Jeden je připevněn na stator, druhý na rotor a tím pádem se rotor může volně otáčet, přičemž se energie dostává přes trafo k plošnému spoji.
Trafa se vzduchovým jádrem se používají ve VF technice např. ve filtrech, ale nejsou vhodné pro převod velikých výkonů. Toto v našem případě nevadí, protože celkový odběr systému nebude velký. U těchto typů transformátorů ale musíme vědět, že zdaleka nemají takové parametry jak transformátory s ferromagnetickým jádrem. Z literatury se dá zjistit, že transformátory se vzduchovým jádrem ztrácí své negativní vlastnosti na vyšších frekvencích, a dají se použít od frekvencí několik kHz, typicky 20kHz. Naše speciální trafo se vzduchovým jádrem se skládá z lakovaného drátu o průřezu 0,28mm, z papíru a lepící pásky. Navíjeli jsme ručně primární i sekundární vinutí. Počet závitů je stejný pro primární i sekundární stranu, a to 30x5, čili 150 závitů.
Na plošném spoji je na vstupu pro napájení diodový můstek pro usměrnění napětí, pak kondenzátor a nakonec stabilizátor. Napájecí napětí je na primární straně 12V ss. a zařízení je pak napájeno 5V ss. Abychom dostali z 12V ss. střídavé napětí a to dokonce o frekvenci několik kHz, použili jsme nastavitelný generátor funkcí, který řídil výkonový tranzistor. Ten pak s touto frekvencí spíná ss. napětí 12V. Pro spínání se používá pravoúhlý signál, protože způsobuje menší ztráty ve spínacím tranzistoru a v důsledku toho se tranzistor i méně zahřívá. Negativní vlastností pak je, že vyrábí více harmonických složek, což může ovlivnit příjem DV nebo SV v blízkosti zařízení.
Pro tento účel bylo původně vymyšleno použití hallovy sondy. Problém ale nastal při použití transformátoru se vzduchovým jádrem. S určitostí se dá říct, že nesprávnou funkčnost způsobovalo naše speciální trafo. Pravděpodobně generovalo příliš silné magnetické pole, v důsledku čeho použití hallovy sondy dále nepřipadalo v úvahu. Jako alternativní řešení, jsme použili pro detekci fototranzistor. Referenční bod na kruhové dráze je určen jednou infračervenou LED, která je snímána tímto fototranzistorem. Jeho proudový výstup je konvertován na napětí jedním rezistorem a je veden přímo do vstupu externího přerušení. Zapojení obsahuje ještě jednu část, která ale zatím nebyla využita. Původně se totiž plánovalo i možnost zobrazení streamovaného videa pomocí infračervené diody z portu RS-232 z PC. Tato možnost nyní zůstává nevyužita, ale v budoucnu se plánuje rozšíření softwaru. Pro přenos informace by se dalo využít i modulační přenos přes transformátor.
Na desce se nachází ještě už zmiňována část pro napájení, a jako poslední část samozřejmě LED diody. Před každou diodu je sériově zapojený odpor pro nastavení proudu. Mikroprocesor plně vyhovuje našim účelům, ovšem kdyby bylo potřeba použít více LED, tak by se musel použít MCU s více porty. Druhou možností by bylo použití posuvných registrů. V tom případě by byl přenos sériový pro všechny LED a celé zapojení by bylo mnohem jednodušší co se týče realizace i výroby. Pro zapojení bylo použito většinou SMD součástek, aby se dosáhlo co největší integrace.
ISR(TIMER0_OVF_vect) { //mereni hodinovych cyklu
meas_a++;
}
Postupné zobrazování zmíněných "řádků" se taky nejjednodušeji realizuje pomocí přerušení, tentokrát ale pomocí 16-ti bitového čítače TIMER1, který dovoluje určit svoji maximální hodnotu, teda periodu. Tak lze zapsáním hodnoty do registru OCR1A změnit periodu zobrazování. Registr OCR1A je dvojnásobně bufferovaný, může se zapisovat do něho kdykoliv a nemůže dojít k opominutí zjistění skutečnosti, že čítač dosáhl nastavěnou hodnotu, při změně hodnoty z většího na menší.
ISR(TIMER1_OVF_vect) { // zobrazeni jednolivych radku
ledout(pgm_read_word(pcpix + lindex)); //cteni z pgm. pameti
lindex++; //nasl. radek
if (lindex==AXIAL) lindex=0;
}
Referenční bod na kruhové dráze, jak už bylo zmíněno, je snímán fototranzistorem. V okamžiku, kdy napětí na vstupu dosáhne prahovou úroveň, vyvolá se přerušení INT0. Provede se výpočet a uložení periody zobrazení. Uloží se pro každý obrázek animace zvlášť, o tom ale později. Změřené hodnoty periody projdou jednoduchým dolním propustem prvního řádu. Doba trvání jednoho obrázku je určen v počtu otáček a lze ji určit zvlášť pro každý snímek.
// TDX - koeficient DP 1. radu pro mereni frekvence #define TDX 2 ISR(INT0_vect){ //referencni bod na kruhu static uint8_t w; TCNT1=0; //nove mereni TCNT0=0; meas_a_tmp=meas_a; //pocet taktu za otoceni meas_a=0; lindex=LIND_C; //zacatek zobrazeni //DP a ulozeni OCR1A = meas[anix] = ((uint32_t)meas[anix]*(uint32_t)(TDX-1) + (uint32_t)meas_a_tmp ) / TDX; if (w==0) { anix++; //nasl. obraz animace if (anix==A_FRAMES) anix=0; w=ani_wait_seq[anix]; //koresp. hodnota casu trvani akt. obr. pcpix=ani0[anix]; //ukazatel akt. obrazu } else w--; }
Aby se obrázek mohl zobrazit na takovémto specielním displeji, musí se přetransformovat do axiálno-radiální formy. Pro tento účel vznikl jeden malý program pro Matlab, který realizuje tento přepočet pro animované gif obrázky. Jeho výstupem je - kromě kontrolního vykreslení předpokládaného obrazu na displeji - přímo .h soubor, který obsahuje veškerá obrazová data v textové podobě a může být přímo vkládána do programu pro mikroprocesor. Program načte obrázek do paměti, převede ho na binární (černobílý) obraz a následně ho nevzorkuje postupně dle polárního souřadnicového systému, kterého počátkem je střed obrazu. Opcionálně může být aplikována jednoduchá filtrace (DP) při obrazcích s větším rozlišením pro zabránění aliasingu. Aliasing a maximální prostorový kmitočet obrazu ale není jednoznačně definován v tomto případě, poněvadž vzájemné vzdálenosti obrazových bodů na různých koaxiálních kružnicích jsou rozdílné. Při každém převodu se parametry programu musí nastavit dle vlastního uvážení uživatele. Na obrázku je vidět vlevo vstup, vpravo předpokládaný výstup a dole axiálno-radiálně vzorkovaný obraz vykreslený v kartézských souřadnicích. Tento obraz reprezentuje obsah paměti mikroprocesoru.
Nedostatkem tohoto zařízení je jeho nízké radiální rozlíšení. Tento problém se ale obtížně řeší, protože ruční pájení SMD součástek vyžaduje neobvyklou zručnost.
Jako další problém bych uvedl nevhodnou volbu typu oscilátoru pro mikrokontolér. V zapojení se nepoužívá stabilní krystalový oscilátor ale vnitřní kalibrovaný RC oscillátor. Jeho frekvence je závislá na hodnotě napájecího napětí, která kolísá podle toho, kolik je svítících bodů na aktuálně zobrazeném obrázku. Důsledkem tohoto kolísání je to, že výsledný obrázek není stabilní. Lze pozorovat roztažení nebo stažení obrazu při změně. Tento problém se částečně vyřešil tak, že pro každý obrázek animace se měří perioda otáčení zvlášť.
Jak už bylo zmíněno jako další směr vývoje by bylo možné přidat real-time streamování videa (v omezeném rozlíšení), textu nebo vytvoření znakové sady a použití tak zařízení jako jednoduchý zobrazovací prvek.