Arduino Hodiny pro astronomická pozorování SOFTWARE Displej Pro ovládání displeje Nokia jsem použil základ z těchto stránek: http://arduino8.webnode.cz/news/lekce-7-modul-displeje-z-nokie-5110/ Vzhledem k tomu, že ten program obsahoval několik funkcí, které jsem nepotřeboval a které mi tedy zbytečně zabíraly místo v paměti, tak jsem program dost poopravil. Velkým zásahem bylo převedení fontu do EEPROM. Sketch pro generování obsahu EEPROM včetně popisu uspořádání
dat v EEPROM je tady:
Rozložení prvků na základním displeji je vidět na tomto obrázku: RTC obvod Vycházel jsem z ukázkového příkladu I2C komunikace s obvodem DS1307 pomocí knihovny RTClib.cpp, ze které jsem vyházel nepotřebné věci a zbytek jsem upravil pro obvod M41T81M6.
Externí SRAM Komunikaci s externí pamětí 23lcv512
jsem opsal z příkladu SpiRAM. Organizace dat v paměti je popsána v tomto dokumentu: organizace_sram.xls
Stručný návod k použití - hodiny Okamžitě po zapnutí napájení se displej přepne do základního nastavení, ve kterém je vidět čas a několik dalších informací, popsaných na předchozí stránce. Při pohybu joysticku do libovolné strany dochází k záznamu aktuálního času do paměti. Pokud je nastaveno pípání při pohybu joysticku (viz níže), ozve se krátké pípnutí. Pokud je doba vychýlení delší než 2 sekundy, ozve se při návratu joysticku do klidové polohy druhé hlubší pípnutí. Při stisku tlačítka, které je součástí joysticku se
vstoupí do základního menu, ve kterém je možné měnit jas, listovat
alarmy a zaznamenanými časy, nastavovat čas v hodinách. Listování v
menu se provádí pohybem joysticku nahoru nebo dolu. Vybraná položka je
označena malou šipkou na začátku řádky ">".
Hrubá změna jasu se provádí pohybem joysticku nahoru nebo dolu (+/- 20 jednotek) Jemná změna jasu se provádí vychýlením joysticku vlevo nebo vpravo (+/- 1 jednotka). Rozsah nastavení jasu je 0 až 255 jednotek pro zhasnutý displej až 100% jasu.
Listování jednotlivými záznamy času se provádí vychýlením joysticku do stran. Zrychlené listování po 20 záznamech se provádí vychýlením joysticku nahoru, nebo dolu. Při přelistování za poslední záznam se na displeji objeví dotaz, jestli se mají všechny záznamy smazat. Potvrzení smazání se provede tlačítkem na joysticku. Pokud se záznamy smazat nemají, nalistuje se na nějaký předchozí zaznamenaný čas a stiskem tlačítka se provede návrat na hlavní obrazovku.
Listování alarmy je možné pouze po jednom - náklonem
joysticku vlevo, nebo vpravo. Úprava jednotlivých položek se provádí pomocí joysticku (náklon do stran je listování po jednotlivých položkách - hodiny, minuty, dny ... náklon nahoru nebo dolu je změna hodnoty). Pod právě nastavovanou položkou je malá šipka Pokud má být alarm aktivní, je třeba v editaci nastavit v hranaté závorce znak [A] (nahnutí joysticku nahoru). Pokud je závorka prázdná, je alarm neaktivní.
Nastavení času se provádí podobným způsobem, jako
nastavení alarmu. Pohybem joysticku do stran se vybere příslušný
parametr (hodina, minuta, den, rok...) a pohybem joysticku nahoru a dolu
se mění hodnota. Zvláštní význam má hranatá závorka v pravé dolní části displeje. Pokud se v ní nastaví [X], dojde po následném stisku tlačítka k ukončení editace, ale čas se nenastaví - zůstane beze změny. To je ochrana proti tomu, aby se při náhodném vstupu do nastavení času dalo odejít bez přenastavení. Má to tedy význam jakéhosi "Cancel" tlačítka. Přesné nastavení času je možné také přes PC program - popsáno níže.
Položka "Přenos PC" připraví hodiny na
komunikaci s počítačem. Během přenosu je v pravém dolním rohu displeje
zobrazován údaj o stavu přenesených dat v procentech. Po ukončení přenosu je na několik sekund zobrazen
kontrolní součet přenesených dat. Přenos dat mezi hodinami a PC je možný i bez vstupu do menu.
Položka "Nastaveni" umožňuje nastavit následující parametry: - Jemné doladění frekvence krystalu RTC obvodu v rozsahu -32 až +31 (detaily o tomto parametru viz katalogový list) - Nastavení vnitřního pískáku na pípnutí každou hodinu (H=1), na pípání při alarmu (A=1), na písknutí při záznamu času při pohybu joystickem J=1) a na pípnutí při ukládání naměřené hodnoty teploty, nebo napětí do paměti (S=1). - Výběr kanálů, které se budou ukládat do paměti (T=teplota; U1= první napěťový kanál; U2 = druhý napěťový kanál) - Čas v sekundách, po kterém bude docházet k ukládání hodnot zvolených kanálů do paměti. Výběr položky se provádí náklonem joysticku nahoru nebo dolu, nastavení hodnoty konkrétní položky je proveden vychýlením joysticku vlevo, nebo vpravo. Aktuálně zvolená položka má stejně jako v hlavním menu na začátku řádky malou šipku ">"
Program má zabudovanou "skrytou" funkci servisního
menu. Servisní menu umožňuje nastavení komunikační rychlosti mezi PC a hodinami, jemné nastavení kontrastu displeje, smazání naměřených hodnot teploty a napětí, a uvedení hodin včetně RTC obvodu do základního (továrního) nastavení.
Stručný návod k použití - PC program Program obsahuje 4 záložky (Info+Komunikace+Čas, Záznamy času, Alarmy, Naměřené hodnoty) Po spuštění programu je většina funkcí zablokována do doby, než dojde k prvnímu stažení dat z hodin. Před stažením dat je třeba nastavit správný sériový
port a rychlost komunikace (defaultně 38400). Průběh přenosu se zobrazuje pouze na hodinách. Na první záložce se po dokončení přenosu zobrazí i systémové proměnné.
Všechny úpravy, které se pomocí PC programu provedou, zůstávají pouze v PC. Pro přenesení do hodin je třeba stisknout tlačítko "[Poslat upravené údaje do hodin]". Myslím, že ovládání programu je tak jasné, že nemá cenu se tím nějak detailně zabývat. Upozorním snad jen na rámeček "Napěťové rozsahy", ve kterém je možné změnit rozsah měřených napětí při použití přídavných děličů napětí na dvou měřících napěťových vstupech. Bez děličů je měřící rozsah obou kanálů 5V. Rámeček "Ruční editace SRAM" umožňuje ručně nastavovat systémové proměnné přes PC. U každé položky je uveden krátký popis. Je to stejné jako v tomto souboru. Tlačítko "[Zjistit rozdíl časů]" umožňuje dlouhodobě sledovat, jak se rozchází čas na PC s časem v hodinách a podle toho je možné jemně doladit kalibraci krystalu RTC obvodu. Při každém stisku tlačítka dochází k záznamu rozdílů časů do logovacího souboru "CasoveSychro.txt". Zároveň je v hodinách vytvořen časový záznam. Na rozdíl od časového záznamu, který vzniká při pohybu joysticku, má tento záznam jako směr uvedeno písmeno "S". Tlačítkem "[Nastavit čas v hodinách]" se
nastavuje čas v hodinách přesně podle času v PC. Před použitím je tedy
dobré provést na PC seřízení času podle nějakého NTP serveru. V případě
použití této funkce je třeba přepnout hodiny přes menu do režimu
nastavení času. Nastavení času je také zaznamenáno do logovacího
souboru "CasoveSychro.txt". V případě problému s komunikací je možné přenos ukončit žlutým tlačítkem "[Přerušit přenos]". Na jednom počítači se mi stalo, že při takovémto přerušení zůstal zaseklý komunikační port a bylo třeba restartovat počítač. Doplnil jsem tedy funkci na tlačítku "[Uvolnit COM]", která tento problém řeší. Složka pro ukládání záznamů udává místo na disku, kam se budou ukládat zpracované CSV soubory (viz níže). Desetinný oddělovač v souborech je snad také jasný (jako oddělovač se může v exportovaných souborech používat tečka, nebo čárka).
Druhou záložkou v programu je záložka "Záznamy času",
která obsahuje tabulku se seznamem zaznamenaných časových okamžiků.
Na třetí záložce se připravují alarmy. Kromě ručního vložení alarmu pomocí zápisu hodnot do
jednotlivých políček pod tabulkou je možné importovat alarmy z kalendářových
souborů .VCS (příklad). Speciálně jsem pak doplnil možnost zkracování komentářů
pro alarmy importované z mých vlastních stránek. Editace alarmu v tabulce se provádí dvojklikem na požadované řádce. Alarmy je možné smazat dvěma způsoby: Prvních 5 uživatelských alarmů není možné úplně smazat, ani není možné jim nastavit textový popis. Jejich hlavní účel je v tom, že je možné je upravovat v hodinách i v případě, že nejsou jiné alarmy v hodinách nahrané. Jak jsem psal už výše, všechny provedené změny se týkají pouze dat v počítači. Pro provedení změn i v hodinách je třeba upravená data nahrát do hodin (první záložka, tlačítko "Poslat upravené údaje do hodin").
Poslední záložkou je záložka "Naměřené
hodnoty". V tabulce udávají sloupce "datum" a "čas"
start měření příslušného bloku. Data z označené řádky je možné vyexportovat do textového CSV souboru (data oddělená středníky). S takto vzniklým souborem je pak možné pracovat třeba v Excelu (třeba tvořit grafy vývoje teploty). Data z každého kanálu se ukládají ve dvou bajtech. Pomocí zaškrtávacích políček je možné zvolit, jestli bude export proveden pouze v neupraveném číselném formátu (RAW = hodnota 0 až 65535), nebo jestli se tato hodnota má převádět na čitelné hodnoty (°C nebo volty). Příklady takovýchto souborů jsou zde:
Tlačítko "[Formátovat FAT]" smaže všechny naměřené hodnoty. V hodinách se smažou hodnoty až po stisku tlačítka "[Poslat upravené údaje do hodin]" na první záložce.
Download a používání následujících
souborů Programy pro Arduino a PC Program pro PC jsem vytvořil ve Visual Basicu 6 a odzkoušel
jsem ho na Windows XP.
|
úvodní strana webu AstroMiK.org |
|
poslední úprava stránky 4.12.2014 |