Scopul proiectului a fost construirea unui dispozitiv de afisare bazat pe fenomenul de inertie a retinei(persistance of vision)… in esenta sa lase niste dare de lumina in aer, pe care controloandu-le sa poti afisa text sau imagini.
In mare proiectul consta din 3 parti:
1. Circuitul de control a trebuit sa il modific putin in asa fel incat sa il fac cat mai usor si cat mai echilibrat, tinand cont ca va fi rotit la viteze foarte mari. Astfel am pus interfata USB si Seriala pe placute de extensie, iar pe placa am lasat doar niste pinii la care acestea sa fie conectate cand va fi nevoie.
Senzorul infrarosu ar fi urmat sa fie folosit pentru a comanda circuitul printr-o telecomanda de televizor.
Cardul MicroSD ar fi urmat sa-l folosesc pentru stocarea unor animatii, litere, poze, etc. care nu ar fi avut loc in memoria si asa limitata a ATMEGA16.
2. Bareta de led-uri am decis sa o pun pe o placuta separata pentru a putea-o aseza perpendicular pe sol(vezi video de mai jos), si nu paralel.
Cele 2 drivere TLC5947 le-am folosit pentru ca in total led-urile ar fi avut 16*3=48 pini, prea multi pt ATMEGA, si in plus au PWM pe toate cele 24 de linii cate are fiecare.
3. Senzorul Hall urma sa fie folosit pentru a determina cand mototul a executat o rotatie completa, pentru a calcula numarul de rotatii pe minut, pentru a putea sincroniza led-urile sa se aprinda in acelasi loc in decursul a 2 rotatii.
* Sursa de alimentare * Cicuitul trebuie cumva alimentat si cand se roteste, evident fire direct bagate in priza nu merg pentru ca s-ar incolaci si rupe, asa ca am alimentat circuitul prin colectorul unui motor de curent continuu cu perii(mai multe detalii mai tarziu). Am folosit 3 din cele 6 faze ale motorului meu(de la radiatorul unei Dacii). Problema e ca tesiunea de pe acele fire e variabila, intre 3.4V si -3.6V. Aici intra puntile redresoare din stanga circutului, care scot doar tensiune pozitiva. Apoi urmeaza un condensator de 1000uF(care merge ca un fel de baterie atunci cand nu e nici una din faze in contact cu alimentarea), apoi regulatorul de tensiune(care nu ar fi trebuit sa mearga sub tensiuni de 7V), si inca un condensator de 1000uF(nu 10uF ca in poza). La iesire sunt +5V.
* Multi pini * Pentru a conecta la diveresele componente externe.
* Receptor IR * Neaparat conectat la PD6(ICP), pentru a putea decodifica semnalul de la telecomanda.
* Slot card MicroSD * Pentru ca SD era mai mare si ar fi ingreunat putin circuitul.
16 LED-uri cu Anod(+) comun(neaparat, altfel TLC-urile nu merg). Cele 2 drivere fac toata treaba. Tot ce trebuie sa faca utilizatorul e sa trimita date serial pe intrarile DATA1 si DATA2(cate 288 biti sincronizati cu SCLK), apoi sa puna pe 1 XLAT(care salveaza aceste date intr-un LATCH), apoi sa puna BLANK pe 0(care porneste practic led-urile).
Cel mai important e senzorul HALL, care e bipolar, deci se aciveaza cand trece prin dreptul unui pol al unui magnet, si se dezactiveaza doar cand trece prin dreptul polului opus.
Lista cu ce am cumparat. Driverle de led-uri le-am luat pe gratis ca sample-uri de la TexasInsturments, tot ce trebuie sa faceti e sa intrati pe site-ul lor, sa completati niste formulare, si le puteti primi pe gratis la camin prin FedEx. In mod normal ar fi costat 20*2=40RON de pe Farnell.
Mentionez ca placutele au fost imprimate pe Textolit cu Fotorezist in cele din urma, prin bunavointa lui Dan Tudose(cred ca prin metoda cu transfer de tonner nu ar fi mers placuta cu Led-urile, circuitele sunt prea subtiri). Asa ca mersi Dan!
Unele piese le planuisem a fi altele, dar a trebuit sa ma adaptez cu ce am gasit.
Cheltuilile au fost defapt mult mai mari de atat, dar in principiu astea sunt componentele de baza care alcatuiesc proiectul.
Am folosit AVR Studio 4, care e foarte ajutator in genu asta de proiecte(are simulator de ATMEGA si poti rula pas cu pas instructiunile si sa vezi cum se schimba registrii sau timer-ele sau altele pe acolo prin el).
Nu am scris foarte mult software pentru ca m-am impotmolit la o problema: odata bagat motorul in priza microcontrollerul se tot reseteaza pentru ca nu are tensiunea constanta in mod continuu, si deci programul scris nu intra niciodata. Sper sa pot rezolva problem, ma gandesc ca led-urile trag prea mult curent si sper ca daca o sa modific bootloader-ul sa tina led-urile stinse(sa dea '1' pe BLANK, adica PC0), sa poata intra programul si sa le tin eu mai putin aprinse din cod.
Am scris si o interfata de comunicare cu TLC-urile.
Aici e arhiva cu proiectul de AVR Studio 4.
Si acum partea cea mai interesanta, ce am obtinut.
Din pacate nu ce vroiam.
In primul video e bareta de LED-uri in actiune. Pe ea ruleaza si programul atasat anterior.
In al doilea video in schimb nu e tocmai un POV, ci mai degraba o veioza care face si vant pe deasupra. Led-urile se aprind random. Sper ca la un moment dat sa pot rectifica asta, tinand cont ca am investit foarte mult timp si bani in proiectul acesta.
A fost interesant sa lucrez si cu altceva decat numai cu calculatorul in fata, sa mai pun mana pe un letcon, sa ma mai duc sa cumpar o piesa… chiar as putea spune ca mi-a placut mai mult si a fost mai putin obositor.
Mi-a fost de mare ajutor proiectul acesta: pov
Sper sa am timp sa dau mai multe explicatii, dar acum sunt presat de un examen.
Si dupa 3 saptamani de munca asidua…
* nu sunt eu(e un coleg), dar ilustreaza bine ideea