Proiectul consta in construirea unui cub din 64 de led-uri, latura cubului fiind de 4 led-uri.
Module:
Interactiunea cu utilizatorul se face printr-o interfata seriala RS232. Citirea coordonatelor led-urilor care vor fi aprinse se va face din fisier. In fisierele de intrare vor fi mai multe linii de tipul:
//x y z//
unde x, y si z reprezinta coordonatele led-ului care se va aprinde. Cele 3 coordonate vor avea valori intregi cuprinse intre 0 si 3.
Voi incerca sa implementez si animatii mai avansate, repetand anumite secvente de coordonate, sau aprinzand led-urile de un numar de ori cu un delay (de exemplu, pentru a simula ploaia).
Pentru controlul led-urilor am ales impartirea cubului in 4 planuri orizontale, fiecare cu cate 16 led-uri. Pentru a adresa un led se vor furniza 3 numere intregi (asa cum am specificat mai sus):
Va fi nevoie sa fac 20 de conexiuni la microcontroller:
Voi realiza programarea microcontroller-ului folosind WinAvr in limbajul C.
Desi majoritatea implementarilor pe care le-am gasit in bibliografie simuleaza imaginile 3D printr-o succesiune foarte rapida de imagini 2D (pe un singur plan orizontal).
De asemenea voi include in arhiva si cateva fisiere de test (coordonate pentru figuri simple sau animatii simple), pe care le voi da ca parametru in linia de comanda. Citirea coordonatelor se va face din aceste fisiere.
Ca voi folosi o matrice de dimensiuni 3 x nr_de_linii_din_fisier in care voi retine coordonatele led-urilor care trebuie aprinse.
In cazul in care voi vrea sa simulez de exemplu ploaia voi repeta afisarea matricei respective de un numar de ori (spre exemplu, 30) cu un delay de 1ms, pentru ca efectul sa fie mai spectaculos.
In implementare voi porni de la codul urmator, care foloseste imagini predefinite in cod:
Urmeaza sa comunic rezultatele obtinute dupa implementarea propriu-zisa.
Dupa terminarea implementarii si testarii voi publica si concluziile.