Nixie Clock

Introducere

Ceasul Nixie este un ceas electronic care utilizează tuburi Nixie, sau afișaj cu catod rece pentru afișarea orei, folosind descărcarea strălucitoare. Tuburile Nixie sunt tuburi electronice ce conțin cifre sau alte simboluri, care emit lumină atunci când sunt alimentate cu un curent electric. Acest ceas poate fi reglat manual, dar este de asemenea echipat cu un modul GPS, care permite sincronizarea timpului.

Descriere generală

Un ceas Nixie este un ceas electronic care utilizează tuburi Nixie pentru a afișa ora. Tuburile Nixie sunt tuburi electronice ce conțin cifre care emit lumină atunci când sunt alimentate la o tensiune electrică specifică. Aceste tuburi oferă un aspect retro, vintage și distinctiv ceasului, în timp ce tehnologia GPS adaugă o notă modernă și practică, o nouă funcționalitate: sincronizarea automată a orei, oferind precizie.

Proiectul implică intergarea mai multor tehnologii, precum:
* tuburile, componentele centrale ale ceasului
* electronica digitală, incluzând plăcile de control și driverele necesare pentru a alimenta și controla tuburile
* modul GPS, primind semnale de la sateliți pentru a determina ora exactă și poziția geografică
* software pentru controlul și sincronizarea acestora.

Hardware Design

Pentru a controla fiecare tub Nixie, este necesar un driver dedicat, care va primi cifra ce trebuie afișată, codificată binar. Fiecare tub Nixie poate afișa 10 cifre, ceea ce înseamnă că fiecare driver va necesita 4 pini de intrare. În total, pentru controlul celor 16 pini de date necesari, vor fi utilizate două registre de deplasare. Această abordare permite reducerea numărului de pini necesari pe plăcuța principală. Carcasa a fost realizată la imprimanta 3D, design-ul fiind făcut pe SolidWorks.

Lista de piese:
* 6 tuburi Nixie
* 6 drivere pentru tuburile Nixie
* o placă principală cu microprocesor ce asigură conexiunea dintre tuburi și periferice
* rezistențe
* condensatoare
* butoane
* LED-uri
* antenă GPS

Software Design

Pentru a porni ceasul, acesta trebuie conectat la o sursă de curent(priză, calculator). Când ceasul Nixie este conectat, începe secvența de inițializare. Microcontroller-ul pornește și inițializează toate perifericele, inclusiv modulele pentru afișajul Nixie și modulul GPS. Ceasul se sincronizează cu semnalele GPS. Această sincronizare asigură că ora afișată este extrem de precisă, utilizând informațiile de timp furnizate de sateliți. După sincronizarea inițială, microcontroller-ul începe să controleze driverele tuburilor Nixie. Fiecare driver primește un semnal binar, codificat pentru a afișa cifrele corecte pe fiecare tub Nixie.
Modul GPS
Codul prezentat configurează și controlează un modul GPS pentru a funcționa optim într-un ceas Nixie cu precizie de nanosecunde, disciplinat de GPS. Acesta transmite comenzi către modulul GPS folosind UART și așteaptă 50ms pentru procesarea comenzii și, de asemenea, resetează hardware-ul modulului GPS, asigurându-se că începe de la o stare cunoscută și stabilă.
Functiile tuburilor Nixie
Într-un ceas Nixie, protocolul SPI este esențial pentru controlul precis al afișării cifrelor pe tuburile Nixie. Fiecare tub Nixie necesită un driver dedicat care primește date codificate binar pentru a controla afișarea unei cifre. Întrucât fiecare tub poate afișa zece cifre (de la 0 la 9), driverul va avea nevoie de 4 pini de intrare pentru a reprezenta aceste cifre în cod binar.
Funcțiile cap_digit și cap_brightness asigură că cifrele și luminozitatea sunt în limitele corecte. cap_digit se ocupă de conversia cifrei 0 în 10 din cauza specificațiilor tehnice ale modulului Exixe, în timp ce cap_brightness se asigură că luminozitatea nu depășește valoarea maximă permisă.
Metoda set_dots ajustează luminozitatea punctelor stânga și dreapta(o funcționalitate adăugată), fiind implementate separat și reprezentate de câte 2 LED-uri legate in paralel.
De asemenea, o implemetare vizual plăcută a fost făcută la cifrele tubului Nixie, mai precis la tranziția dintre 2 cifre. Pentru a face schimbarea mai netedă, s-au creat 2 funcții:
- crossfade_init care setează cifra destinație, calculează momentul de început al animației, stabilește durata acesteia, ajustează luminozitatea la valoarea dorită și pregătește incrementul de luminozitate care va fi aplicat în fiecare cadru - crossfade_run care permite realizarea tranziției line, controlând luminozitatea în timpul tranziției(scade luminozitatea cifrei precedente și crește luminozitatea treptat cifrei care trebuie să apară).

Rezultat final

pm/prj2024/rrusu/anca_elena.negoita.txt · Last modified: 2024/05/26 11:08 by anca_elena.negoita
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0