Cub 3D

Pirvan Anca 335CA

Introducere

Proiectul Cub 3D consta in construirea unui cub cu latura de 4, din leduri rosii . Pentru a construi cubul am folosit 64 leduri.

Scopul proiectului este redarea de animatii simple,imagini geometrice si imagini 3D, obtinute prin apriderea ledurilor.

Dupa finalizare, cubul poate fi folosit ca obiect de decor.

Descriere generala

Schema bloc

Module:

  • interfata de comunicare seriala
  • microcontrollerul ATMega16 (cuprinde si placuta de baza de la prima etapa)
  • cubul de 64 de leduri rosii

Cu ajutorul interfetei seriale voi programa microcontrollerul ATMega16.

Hardware design

Mai jos este lista cu componentele pe care le-am cumparat pentru a realiza cubul:

Componente Bucati
Leduri rosii 5mm 64
ULN2003A 1
Rezistente 1kΩ 16
Placuta de test 1
Bareta pini 1
Cablu panglica 1 m
Conectori panglica 6

Atentie! Pentru leduri rosii trebuie sa cumparati rezistente cu valori cuprinse intre 200Ω si 1kΩ.

Schema electrica

Construirea propriu-zisa a cubului

Ideal ar fi fost sa pot controla fiecare led individual,dar acest lucru ar fi insemnat sa folosesc foarte multe fire. Pentru a evita acest lucru am impartit cubul pe nivele(4 nivele), fiecare nivel avand 16 leduri si am construit pe rand fiecare nivel.

Am folosit o matrita pentru fiecare nivel al cubului. Matrita este o matrice 4×4,desenata pe o bucata de carton, formata din gaurele.(vezi poza)

Am lipit intai fiecare nivel legand catozii impreuna pe linii;

Dupa ce am obtinut cele 4 nivele cu 16 leduri fiecare le-am lipit prin legarea anozilor pe coloane si am format cubul.

In urma acestei organizari a ledurilor,voi avea nevoie de 16 fire pentru a alimenta coloanele si de 4 fire pentru a alimenta liniile.

Fiecare pin din ATMega16 poate fi in starea high sau low ( 0 sau 1) . Un pin poate sa faca sink sau source de maxim 20 mA (la o intensitate mai mare microcontrollerul se va arde). In cazul meu un pin al microcontrollerului ar trebui sa suporte 16 x 20 mA = 320 mA (la un pin va fi legat anodul comul al coloanei, adica 16 leduri). Pentru a evita ca aceasta intensitate sa ajunga pe pinii microcontrollerului folosesc ULN2003A .

ULN2003A se comporta ca un set de tranzistori. La un pin al ULN2003A voi lega catodul comun al liniei si, astfel, sink se va face cu ground-ul,nemaiajungand 320 mA pe microcontroller. Daca sunt aprinse toate ledurile, ULN va face sink la ground pentru 320mA, care nu ar putea fi suportati de un pin al microcontrollerului.

Pentru a ma conecta la microcontroller am folosit 8 pini de pe PORTB si 8 pini de pe PORTD pentru a conecta coloanele si 4 pini de pe PORTA pentru a conecta liniile.

Software design

Am folosit programul WinAvr pentru a programa microcontrollerul. WinAvr include compilatorul GNU GCC pentru limbajele C si C++.

Pentru a realiza animatiile am tinut cont de portul pe care se afla fiecare led,pentru a seta starea portului, am folosit operatii pe biti, shift-ari, vectori si numere in hex.

Insa pentru anumite animatii nu a fost suficient sa tin cont de portul pe care se afla fiecare led deoarece daca incercam sa aprind 2 leduri de le coloane si niveluri diferite, in acelasi timp, nu era posibil. Pentru a evita acest lucru folosesc fenomenul The persistence of vision. Voi aprinde nivelele si coloanele care imi trebuie la un interval foarte mic de timp astfel incat ochiul uman sa nu isi dea seama de acest lucru.

Arhiva contine urmatoarele fisiere: Makefile, cub.c , run.bat, program.bat si build.bat. In cub.c sunt implementate toate animatiile cubului meu.Atunci cand se ruleaza scriptul build.bat se vor genera cub.hex si cub.elf. In final in urma rularii scriptului program.bat se va obtine animatia pe cub.

Rezultate obtinute

Proiectul in starea finala arata astfel:


Filmuletul este disponibil aici:

Video cub

Concluzii

Cubul arata foarte dragut si pot spune ca a fost un proiect interesant.

Aveti grija cum legati firele la pinii lui ULN2003A si de asemenea aveti grija ce fel de rezistente va luati pentru ca difera in functie de tipul ledului.

“Succes is a result, not a goal.”

Bibliografie

pm/prj2011/dloghin/cub_3d.txt · Last modified: 2021/04/14 17:07 (external edit)
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