Već duže vrijeme po internetu viđam ove takozvane "Word Clock" satove. Nikada mi nisu bili nešto posebno zanimljivi sve dok nisam naišao na izvedbu od Biegert&Funk. Jednostavno nisam mogao a da ne napravim lokalnu verziju ovog sata koja bi prikazivala puno vrijeme (a ne 5-minutno kao original) i zbog toga je u izradi korišteno 248 LED-ica. Da bi sat u konačnici imao taj "stealthy" izgled, korišteni su kapacitivni "touch" senzori umjesto običnih prekidača za podešavanje vremena i ostalih parametara.
UPDATE: Ima i diskusija o konstrukciji sata na forumu ovdje!
Čitav projekat je open source i svi projektni fajlovi se mogu downloadovati klikom na crveno download dugme, na dnu članka.
Firmware features
1. prikaz vremena, očigledno 2. prikaz datuma 3. prikaz temperature 4. prikaz sekundi 5. podesiva vremena za prikaz gore nabrojanog (naprimjer, moguće je podesiti sat tako da se vrijeme prikazuje 20 sekundi i nakon toga da se prikaže datum, temperatura pa sekunde. Takođe je moguće podesiti sat da prikazuje naprimjer samo temperaturu) 6. automatsko prilagođavanje jačine LED osvjetljenja prema osvjetljenju ambijenta (sa automatskom kalibracijom senzora) 7. blinkanje LED-ica u uglovima (tačaka) sa frekvencijom od 1/2 Hz (ili isključeno) 8. sleep režim - isključenje sata do narednog pritiska dugmeta (senzora)
Struktura sata
Sat se sastoji iz 5 slojeva: a) Staklo, b) Grafika (naljepnica sa slovima), c) Paus papir, d) Medijapan-ploča, e) Zadnja stranica. Slojevi "a+b" ćemo zvati Maska, "c" je obični paus papir da zamuti i propušta svjetlost od LED-ica, "d" je Sredina, a sloj "e" je Zadnja stranica. Dimenzija sata je 45x45cm.
Maska (staklo + grafika) Prednja stranica sata je napravljena od 3mm debelog stakla sa mašinski obrađenim ivicama. Ovdje sam mogao koristiti i pleksiglas umjesto stakla ali je on nešto skuplji a uz to je manje otporan na ogrebotine. Folija sa riječima je naljepnica SERILUX™ koju je izrezala mašina za pravljenje reklama u obližnjoj štampariji. Ideja je bila da se naljepnica nalijepi na unutrašnju stranu stakla tako da sat izgleda još sjajnije. Zbog toga je bilo veoma bitno da se prilikom ljepljenja slučajno ne nađe prašina ili dlačica između stakla i naljepnice jer bi to upropastilo cijeli izgled sata. Najbolji način da se folija zalijepi za staklo a da na kraju ne sadrži prašinu uopšte, jeste da se lijepi pod vodom. Mnogo jednostavnija metoda je ona uobičajena - koristeći prskalicu napunjenu sa mješavinom vode i kapljicom deterdženta za pranje suđa. Na kraju ljepljenja voda se pažljivo istisne sa kreditnom karticom.
Bazen sa vodom za podvodno ljepljenje folije
Pozicioniranje folije na staklo pod vodom
Sam proces ljepljenja ovdje neće biti objašnjen jer postoji mnogo "tutoriala" na internetu. Samo ću naglasiti da je ovo posao za 2 osobe jer je vrlo teško odlijepiti ovoliku naljepnicu sa zaštitnog papira i prenijeti je na staklo. Naljepnica je dizajnirana u programu Inkscape - open-source program za vektorsku grafiku. Font koji je korišten se zove "DIN" i odgovara onom koji je korišten u originalnom QlockTwo satu.
Naljepnica konačno na staklu - trenutno bez "sredine" na nekim slovima
Maska je zalijepljena na drvo sa silikonom. Korišteno je relativno malo silikona u slučaju da se maska bude morala skinuti - iako se nadam da se to neće nikada desiti.
Medijapan-ploča Kompletna elektronika je ugrađena u samu MDF ploču standardne debljine 18mm. Krajevi ploče su "kantovani" sa sjajnom bijelom PVC kant-trakom. Ploču sam jednostavno naručio od lokalnog proizvođača kuhinjskih elemenata. Nakon što je ploča bila gotova, trebalo je izbušiti 248 konusnih rupa i prefarbati ih sa reflektirajućom farbom.
Početak
Proširenje rupa na vrhu - konusni borer još uvijek nisam imao
Naredni korak je bio da se naprave žljebovi za elektroniku, pločice sa LED-icama i panele od kapacitivnih senzora.
Pravljenje žljebova na drugoj strani ploče
Žljebovi za elektroniku i rupe za 4 "tačke"
Farbanje rupa kroz koje će LED-ice svijetliti
Ivice sata su ofarbane u crno jer je folija bila manja za 1mm od stakla pa se sprijeda nazirala bijela boja
Kroz donju kant-traku je probušena mala rupa (5mm) za CdS foto-ćeliju koja se koristi za automatsko podešavanje osvjetljenja slova prema osvijetljenosti ambijenta.
Elektronika Cijeli sat je u suštini jedan veliki matrični displej sa 244 LE diode, i 4 LE diode za svaki ugao (tačke). Mikrokontroler koji je korišten u ovom projektu je ATmega328P ali se program može ubaciti i u ATmega168P. Vrijeme čuva DS3231 (ili DS3232) i2c RTC kolo od Maxim-a. Ovo je vrlo dobar i tačan RTC koji takođe ima i temperaturni senzor kojeg možemo čitati preko i2c-a.
U elektronici nema naponskog pretvarača/regulatora da bi izbjegli zagrijavanje sata. Korištena je samo zener dioda kao zaštita od prenapona, jer se cijeli sat napaja direktno iz SMPS 220V/5V 1A adaptera.
Shema glavne elektronike - klikni da uvećaš
Bušenje glavne štampane pločice
Glavna štampana pločica završena
Komponente na pločici su lemljene na gornjoj strani (kao SMD), iako neke od njih nisu SMD
Kontrolisanje svih 248 LE dioda se vrši sa 4 seriski povezana MAX7219 IC-a. Ova kola mogu kontrolisati do 64 LE diode ponaosob tako da nam je trebalo ukupno 4 komada za kompletni projekat.
LED matrica - sat se sastoji iz 4 ovakve matrice, po jedna za svaki MAX7219
Štampane pločice koje "drže" LED-ice - napravljeno je ukupno 56 ovih pločica
Svih 56 LED pločica je zalemljeno i stavljeno u svoje žljebove/utore
Sada je konačno vrijeme da spojimo i MAX7219 IC-ove
LE diode korištene u ovom projektu su bijele SMD diode koje zahtjevaju svega 4-5mA za puni sjaj. Kako su diode multipleksirane koristeći MAX7219, najgori slučaj potrošnje struje je oko 8*4*5mA = 160mA + nekoliko mA za Atmel uC i ostale IC-ove. Pri normalnom radu sat troši svega ~40mA!
Shema MAX7219 štampanih pločica - klikni da uvećaš
MAX7219 pločice završene - 4 potrebne za ovaj projekat
MAX7219 PCB postavljena u svoju rupu, spremna za spajanje sa LED matricom
Sve 4 pločice sa MAX7219 zalemljene za svoje LED matrice
Kasnije sam dodao i 4 LE diode u uglove (tačke). One su spojene na dva gornja MAX-a jer se kod njih koristi samo 6 redova sa diodama
Mala napomena kod lemljenja LED matrica na MAX7219 - nije bitan raspored lemljenja redova/kolona jer postoji dio koda u firmware-u kod kojeg je moguće re-mapirati redove/kolone u zavisnosti od toga kako su zalemljeni. Taj dio koda sam dodao jer sam ih i ja lemio freestyle. Za korisnički interface sam se odlučio da koristim kapacitivne touch senzore od Atmel-a AT42QT1011 koji rade odlično kroz naljepnicu i staklo. Obični dugmići su jednostavno - obični.
AT42QT1011 touch senzor shema - klikni da uvećaš
Kapacitivni touch senzor - pločice
AT42QT1011 zalemljeni
Paneli za senzore su prefarbani sprejem PLASTIK 70 da bi se spriječila njihova oksidacija
Pločica koja će detektovati približavanje ruke (touch/proximity)
Elektronika od "touch" senzora postavljena na svoje mjesto
Sve komponente su spojene međusobno koristeći kablove kao što je prikazano na slici, dok je kablo za napajanje ostalo slobodno za spajanje na adapter.
Glavna pločica spojena sa svim ostalim komponentama
Završeno!
Zadnja stranica (šperploča) Zadnja stranica je napravljena od bijele šperploče debljine 3mm.
Testiranje LE dioda Od svih 248 zalemljenih LE dioda, samo jedna je bila neispravna, a 3 su bile pogrešno zalemljene.
Testiranje LED matrice
Slike gotovog sata
Video snimci sata
Normalni rad sata
Klikanje kroz MENU, isključivanje blinkanja tačaka
Testiranje automatskog podešenja osvjetljenja i kalibracija CdS senzora
Video snimci napravljeni u toku izrade sata Napravljeno je i nekoliko video snimaka tokom same izrade sata.
Testiranje displeja sa jednom defektnom LE diodom
Testiranje koda za prikaz teksta
Sve što je sada ostalo da se uradi, je da se sat okači na zid.
Imas gore link za temu na forumu, tamo imas shemu spajanja tako da nema puno programiranja :) U
sustini trebas spojiti kao na shemi sa foruma i treba ti jos programator da ucitas program u
mikrokontroler. IP: n/a
Hi, I have seen it but did not have time to answer yet. Anyway, did you read the entire forum
topic? I think there is an explanation on how to identify rows and columns (to map them in
code). It is not easy :( IP: n/a
You are right, it is 8MHz :-) I was looking at the wrong project. Anyway, here it is: LOW:
0xFE, HIGH: 0xDF, EXTENDED: 0xFD. You can do this yourself here:
http://www.engbedded.com/fusecalc/ IP: n/a