Table of Contents

Persistence of Vision Clock

Introducere

Scopul proiectului este realizarea unui dispozitiv de afișare bazat pe fenomenul de inerție a retinei (Persistence of Vision). Astfel, prin succedarea rapidă a unor imagini distincte dar apropiate, percepem o animație. În cazul acestui dispozitiv ne bazăm pe o plăcuță cu 16 LED-uri, care se rotește în câmpul vizual al privitorului. LED-urile se aprind alternativ pentru a crea impresia unui ecran care afișează un ceas.


Descriere generală

Pentru realizarea proiectului voi folosi plăcuța făcută la etapa 1 la care voi adăuga o extensie (o placă imprimată) care se va lega la prima. Aceasta extensie va conține ledurile și partea de setare a ceasului. Ambele plăcuțe vor fi montate pe un dispozitiv care le va învârti (un cooler). Alimentarea se va face de la o baterie care va fi prinsă tot de suportul ce va învârti placa.

Pentru a seta ceasul se va folosi un senzor de lumină. Astfel, când se va lumina ceasul sub cifra 3 se va incrementa minutul iar când se va lumina sub cifra 9 se va decrementa minutul. Pentru a incrementa ora se va lumina sub 12, iar pentru a decrementa ora se va lumina sub cifra 6. Astfel când senzorul de lumină va avea la ieșire 1 logic, se va verifica cadranul în care s-a primit această valoare și se va face modificarea corespunzătoare. După ce s-a efectuat o modificare, luminarea senzorului nu mai are nici un efect timp de două secunde.

Schema Bloc


Hardware Design

Placuta principala conține 2 extensii:

Schema generală


Schema PCB

leduri2.jpg

Lista pieselor folosite

În afară de piesele folosite la prima etapă, pentru realizarea proiectului am mai folosit:

Design-ul extensiilor (PCB-urile) au fost făcute în Eagle și plăcuțele au fost realizate prin imprimare și corodare.


Software Design

Pentru programarea microcontrolerului am folosit limbajul C și WinAvr.

Cadranul ceasului este împărțit în 120 de linii. Astfel, programul constă într-o buclă infinită în care sunt afișate cele 120 de linii. Pentru afișarea lor am folosit porturile A și C, fiecare linie fiind formată din 16 LED-uri.

Pentru afișarea numerelor pe cadranul ceasului am format o matrice a LED-urilor aprinse în fiecare poziție pe portul A, iar pentru afișarea limbilor am creat câteva măști pentru cele două porturi.

Pentru partea de funcționare a ceasului am realizat un timer pentru secunde cu prescalerul de 1024. În acesta se vor incrementa secundele și se vor face modificările, atunci când este necesar, pentru minute și ore, precum se și vor decrementa numărul de secunde până când va fi acceptată următoarea comandă de setare.

Pentru partea de setare, am verificat pinul al șaselea al portului D (PIND) dacă are valoarea 1 în liniile multiple de 30, senzorul de lumină având ieșirea pe acest pin. Dacă valoarea este 1 atunci se modifică ora sau minutul și se setează o variabilă pentru a nu mai putea face modificări în următoarele două secunde (se dorește acest lucru pentru că altfel nu s-ar putea face setările datorită numărului de rotații pe secundă destul de mare).

Practic pentru afișarea ceasului se afișează fiecare linie, verificându-se dacă pe aceasta trebuie afișată vreo limbă a ceasului, se modifică valorile pentru cele două porturi și acestea sunt lăsate o perioadă de timp până se modifică pentru următoarea linie.


Rezultate obtinute

În aceasta secțiune am pus câteva imagini cu proiectul finalizat și părțile sale componente precum și câteva filmulețe în care se poate observa modul de funcționare a ceasului.

Imagini

1.jpg2.jpg







Plăcuța cu leduri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Senzorul de lumină

3.jpg 4.jpg













5.jpg 6.jpg



















7.jpg 8.jpg















Video

Funcționalitatea proiectului poate fi observată în filmulețele următoare. Datorită faptului că viteza cu care este învârtită placa nu este constantă ceasul se poate roti ușor.

The Adobe Flash Plugin is needed to display this content. The Adobe Flash Plugin is needed to display this content.


















The Adobe Flash Plugin is needed to display this content. The Adobe Flash Plugin is needed to display this content.



















Concluzii


Download


Bibliografie/Resurse