2012 m. lapkričio 5 d., pirmadienis

Laikrodis su PCF8583

Laikrodis : galima paprastai, bet nuobodžiai, o galima ir sudėtingai, gal taip gražiau...

Nežinau, kaip kiti, bet aš negaliu bent akies kraštu nežvilgtelėjęs praeiti pro laikrodį. Ir visai nesvarbu didelis jis ar mažas, su rodyklėmis, ar skaičiais. Jie man patinka. Todėl, kai tolimais 2011-ais iš Serbijos man atkeliavo štai toks gražuolis - mikrommb PIC18FJ :



        
             (nuotraukos pasiskolintos iš http://www.mikroe.com/mikromedia/pic18fj)


tai tik laiko klausimas buvo, kada...
Tiesa, kad daug "nešūdmaliauti"(atsiprašau :)) - štai nuoroda : http://www.mikroe.com/ , ten, jei įdomu, surasit l. išsamiai pristatytą įrenginuką, nematau reikalo iš naujo visko aprašinėti. Man, pradinukui, tas puslapis su visa ten "gyvenančia" informacija... kažkas nuostabaus! Na, bet ne to, mes čia susirinkom :))....

I. Schemotechnika

Schemotechnika, kaip ir minėjau - nuobodyybėėė, klasikų klasika. Kai kažkuriam gudriam žmogeliukui atėjo į galvą I2C magistralės idėja, tai jis manau, palengvino gyvenimą daugeliui entuziastų ir ne tik(irgi nesiplėsiu su ditirambais - kam reikia - visagalis "Google" !).
Taigi, keletas vakarų su "Google", pdf'niais  "datashit"- išsirenku PCF8583. Nebaksnokit, nebambėkit, kad kur nors matėt geriau, pigiau, greičiau, DS1307... ir t.t. Internetas "lūžta"nuo schemų, nuotraukų ir idėjų. Jums geriau - jus ir darykitės :)). Dėl savo vidinės struktūros paprastumo  man patiko ši mikroschema. (Ateity gal  pabandysiu sakykim Microchip'o, kas žino...). Taigi sekančią dieną artimiausia radijo detalių parduotuvė ( nesakysiu kokia, nors tai buvo "Lemona" :)), valandėlė pamojavimo su "švinuokliu" ir vualia...



(šiek tiek pakeista, bet irgi iš ten pat, tipinė jungimo schema)

Taigi lengviausia darbo dalis padaryta. Šioje vietoje nukrypsiu į lankas. Mano minėtieji MikroElektronika be tikrai nuostabių "gadžetų" kuria ne ką mažiau vertus pagirų kompiliatorius (kaip suprantu, savo veiklą jie ir pradėjo išskirtinai nuo kompiliatorių kūrimo) visokių "seksualinių pakraipų"  :)) mikrokontroleriams : PIC'ai, ARM'ai, AVR'ai, 8051, maža to kompiliatoriai irgi visokių pomėgių programuotojams : C++ pamėgusiems - yra, BASIC - yra, PASCAL - yra. Apie ką aš čia, ogi apie tai, kad kitas įrankis, leisiantis patogiai jaustis kuriant laikroduką ir bus C++ kompiliatorius.
Taigi aparatinė dalis yra, jungiu ją prie MMB I2C magistralės ir tolygiai pereinu prie sekančio etapo.

II. Programa

Kartą, vienas inžinierius yra man pasakęs, mano nuomone labai protingą mintį, kad bet kokią elektroninę užduotį galima išspręsti dviem būdais : vien tik schemotechniniu - t.y daugybė rezistorių, kondensatorių, tranzistorių, diodų, mikroschemų; arba programiniu - t.y parašant programą. Jūsų teisė rinktis.
Pasigirsiu: elektroninį laikrodį pirmuoju būdų senai senai jau esu sukūręs :)) Dabar liko antras būdas.
.......
Na ir ką, keletas dienų/vakarų ir manasis MMB ekrane jau rodo realų laiką, "išlukštentą" iš PCF8583
registrų gelmių :)).

Na argi ne nuobodus eilinis laikrodukas? Taip, skaičiai matosi, informacija ištraukta - viskas, atlikta!! BET ... perdaug viskas paprasta.
Ir čia mano galvoje pradėjo dėliotis vizija, kaip nuobodų padaryti įdomiu...


Pirmiausia -  PAGRINDINIS MENIU :


Matoma net keturių veiksmų pasirinkimo laisvė  :
a) NUSTATYMAI - laikrodžio pradinių reikšmių nustatymas,
b) RODYKLINIS LAIKRODIS - analoginio ( rodyklinio ) laikrodžio atvaizdavimo rėžimas,
c) SKAITMENINIS LAIKRODIS - atvaizdavimo skaitmenimis rėžimas,
d) ŽADINTUVAS - žadintuvo nustatymas.


Nuosekliai, žingsnis po žingsnio

Iš pagrindinio meniu keliaujame į NUSTATYMŲ MENIU


 Pradinis puslapis nustatymuose pradedamas nuo kalendoriaus ir kalbos pasirinkimo

Metų, mėnesio, mėnesio dienos pasirinkimas yra pageidautinas. Savaitės diena, vienos gudrios formulės dėka išskaičiuojama automatiškai!! - Va čia tai bent atradimas man buvo :)).
Nuoširdžiausias ačiū sugalvojusiam, ačiū Mike Keith publikavusiam šią formulę savo interneto puslapyje Calendar Curiosities.

 Kadangi mėnesiai rašomi žodžiais ir kaip nebūtų keista ne visi pasaulyje supranta lietuviškai :)), rinkitės vieną iš penkių : lietuvių, anglų, vokiečių, ispanų, prancūzų - turėtu pakakti :))





Kalbą galima keisti tiesiog mėnesių, rinkimosi metu - smagu matyti, kaip skirtingomis kalbomis atrodo tie patys žodžiai :)







Laiko nustatymas - paprasčiau nebūna. Žodis melodija - irgi skirtingomis kalbomis.
Žadintuvo melodijos pasirinkimas. O gal mp3 grotuvas? Na čia jau, kaip kam.. :))

Pažiurėkim, kas gavosi...

"Rodyklinukas", su kukliu kalendoriumi kampe.

 "Skaitmenukas"
... su "iššliaužiančiu" kalendoriumi.

Žadintuvas kas rytą mielai sugros šią melodiją... greitai ji nebus tokia miela :))

 Valio!! Pirmadienį, trečiadienį ir penktadienį žadintuvas tylės, kaip vandens prisisėmęs :)) - matot, tos dienos žaliai pažymėtos?

III. Viskas, viskas.....


Toks laikinas variantas su prijungtu išoriniu garsiakalbiu.

Pabaigai - savybės.

SAVYBĖS :
Nustatymai :
  • Kalendorius. Pasirenkamos metų, mėnesių, mėnesio dienų reikšmės. Savaitės dienos apskaičiuojamos automatiškai. Automatiškai tikslinamos vasario mėnesio dienos keliamaisias ir ne metais.
  • Laikrodis. Valandų, minučių reikšmių išsirinkimas. Pasirenkami 24/12(AM/PM) valandų formatai.
  • Žadintuvo melodijos pasirinkimas. Dėl integruoto SD kortelės lizdo, galimas išanksto į SD kortelę įrašytų melodijų sąrašo peržvelgimas.
  • Pasirinktos melodijos perklausymas. Dėl integruoto mp3 formato aparatinio dekoderio galimas pasirinktos mp3 bylos perklausymas kartu pasirenkant norimą garsumo lygį.
Žadintuvas : Valandų, minučių nustatymas pasirinktame 24 arba 12 valandų formate. Kasdieninis arba pasirinktos savaitės dienos(-ų) žadinimo melodijos įjungimo algoritmas. Tolydžio garsėjanti melodija. Po 5 min. pasikartojantis melodijos grojimas, jei žadintuvas nebuvo išjungtas(snaudimo funkcija) **.
Rodyklinis laikrodis : Laiko rodymas savaime suprantama 12 valandų laiko skalėje su AM/PM (ryto/popietes) indikavimu. Kalendorius statiškai atvaizduojamas ekrane.
Skaitmeninis laikrodis : Laiko rodymas 24 arba 12 valandų laiko skalėse su AM/PM (ryto/popietes) indikavimu jei yra pasirinktas 12 valandų formatas. Kalendorius atvaizduojamas 5 sekundes tik po atskiro ikonos su kalendoriaus ženklu paspaudimo.

** - ateities versijų funkcijos.

 IV. Nuorodos

Video : 

Programa :