Table of Contents

Symphony of Lights

Balanica Darius, 334CC



Introducere

Proiectul presupune construirea unui cub format dintr-o retea de leduri, capabile sa ofere diverse jocuri de lumini. Astfel, este creata o “simfonie” a luminilor, avand totodata si scop educativ, intrucat va ajuta la aprofundarea cunostintelor din cadrul cursului “Proiectarea cu Microprocesoare”.

Descriere generală

Reteaua de led-uri va forma un cub 4 x 4 x 4 (64 de led-uri in total). Initial, am resupus ca pentru controlul ledurilor se vor folosi butoane, insa am renuntat la idee si am ales implementarea mai multor jocuri de lumini. Astfel, am implementat 9 jocuri diferite de lumini, capabile sa creeze “simfonia luminilor”, mentionata anterior.

Schema bloc

Aceasta ilustreaza simplist modul in care utilizatorul interactioneaza cu microprocesorul si cum poate controla jocul de lumini. Schema bloc a fost actualizata cu ultimele modificari in ceea ce priveste implementarea.

Hardware Design

Lista de piese

Denumire Cantitate
Kit-ul cu componentele de baza 1
LED colorat 64
Placa de Test 2
Rezistenta 220 Ohm 16
Tranzistor NPN 2n2222 4
Bareta pini 8
Rezistenta 1k Ohm 4
Fir mama-tata 21
Fir tata-tata 20
Consumabile

Pe parcursul implementarii proiectului, din diverse motive, pot fi adaugate componente aditionale, fapt ce va duce la actualizarea lista de piese ulterior, daca este cazul.

Schema electrica

Schema electrica a fost actualizata pentru a reflecta implementarea curenta. Astfel, s-a renuntat la butoane si au fost actualizati pinii corespunzatori.

Asocierea fiecrui pin cu fiecare coloana a cubului este urmatoarea (Orientarile sunt pentru cubul privit din partea pinilor):

Stanga Centru-Stanga Centru-Dreapta Dreapta
PC0 PC4 PA7 PA3
PC1 PC5 PA6 PA2
PC2 PC6 PA5 PA1
PC3 PC7 PA4 PA0

Asocierea fiecarui nivel (rand) al cubului de leduri cu fiecare pin este urmatoarea:

Nivel (de la baza spre partea de sus) Pin
Nivelul 1 PD5
Nivelul 2 PD0
Nivelul 3 PD4
Nivelul 4 PD1

Software Design

Mediul de dezvoltare

Din punct de vedere software, proiectul a fost realizat folosind Windows 10. Pentru editarea codului a fost folosit Visual Studio Code, compilarea surselor s-a realizat in terminalul de Ubuntu din Windows, iar incarcarea programului pe microcontroller s-a realizat folosind executabilul cu interfata grafica, pus la dispozitie pe platforma cursului.

Alte precizari legate de implementare

Desi fisierul sursa contine un numar considerabil de linii de cod, acesta este destul intuitiv, intrucat pentru fiecare animatie in parte a fost implementata o functie care aprinde ledurile in ordinea dorita. Astfel, animatiile au fost implementate dupa cum urmeaza:

Pentru implementarea acestor animatii, au fost create urmatoarele functii ajutatoare:

Rezultate obtinute

Din considerente estetice, am confectionat un suport pentru placa ce suporta cubul, la care a fost atasat si microcontrollerul, in lateral. Alimentarea se face de la o baterie externa situata in interiorul suportului. In continuare au fost adaugate mai multe poze sugestive, ce ilustreaza intreg ansamblul confectionat, dar si 2 demo-uri cu locurile de lumini implementate.

Demo 1: https://www.youtube.com/watch?v=-SYGo5YHUYs

Dema 2: https://www.youtube.com/watch?v=7wQ3JP7SGgQ

Concluzii

Proiectul a fost unul interesant, intrucat a presupus imbinarea partii hardware (lipirea pieselor, conectarea lor, testarea componentelor, etc) cu cea software (implementarea functionalitatilor dorite). Realizarea acestuia a fost mai dificila la inceput, dar aceasta face ca satisfactia unui proiect realizat de la zero din toate punctele de vedere si pana in stadiul actual sa fie mult mai mare.

Proiectul poate fi imbunatatit prin adaugarea de noi functionalitati (extinderea cubului, adaugarea de animatii pe baza unor sunete, adaugarea unor butoane de control).

Ma declar multumit de ce am realizat in intervalul de timp oferit si iau in considerare adaugarea pe viitor a functionalitatilor mentionate anterior.

Download

Codul Sursa, Readme si Makefile: symphonyoflights.zip

Bibliografie/Resurse

* Datasheet ATMega 324: http://cs.curs.pub.ro/wiki/pm/_media/doc8272.pdf
* https://www.instructables.com/id/LED-Cube-4x4x4/
* https://www.instructables.com/id/LED-Cube-3x3x3-with-ATMEGA8/
* https://www.instructables.com/id/Simple-LED-Cube-4x-with-Arduino328p/
* https://www.youtube.com/watch?v=4pzxR-ZhbJA
* http://www.pyroelectro.com/projects/8x8x8_led_cube/index.html

Descarcati Pagina