Proiectul presupune controlarea unui motor pas cu pas prin intermediul unei interfete web.Aceast motor poate controla pozitionarea unei camere video, si astfel proiectul devine “Speed Dome Project”.
A realiza un astfel de proiect (crearea unei interfete web prin care controlam atmega16) este foarte util. Aplicatiile sunt nenumarate, indeosebi cele ce presupun “home automation” . Imaginativa cum ar fi sa controlam frigiderul, masina de spalat, sa verificam statusul alarmei de la casa sau daca ceva ni se pare suspect online, sa aprindem luminile si sa facem putina galagie sa speriem hotii .
Module folosite:
Controlerul ethernet se ocupa de nivelul legaturii de date in comunicarea cu internetul.Acesta primeste si trimite date catre www prin intermediul interfetei (RJ45).
Acest modul de fapt reprezinta placuta de laborator de la partea 1.El primeste si trimite date catre controlerul ethernet.Transmisia datelor se face prin SPI.
Acest modul primeste date de la Atmega16 si trimite imulsuri motorului pas cu pas pentru a-l actiona.
Tinand cont ca modulul de atmega16 era gata (placuta de laborator partea 1 proiect), ne vom ocupa de celelate module:
“Creierul” acestui modul sta in controlerul ethernet enc28j60.Desigur acesta nu poate sta singur pe o placuta si o sa mai avem nevoie de o mufa RJ45, un quart de 25mhz cateva rezistente de 300ohmi, si cateva condensatoare.Foarte important, enc28j60 se alimenteaza de la 3,3v, deci va trebui si un stabilizator de tensiune (am ales LD33V).Schema este cea de la placuta de laborator.
Un motor pas cu pas bipolar (cred ca de pe la o imprimanta). Ideea la acest motor ar fi urmatoarea : el are doua bobine in interior si in fuctie de polarizarea pe care o primeste pe cele 4 fire se invarte inainte sau inapoi, astfel are loc o miscare pas cu pas. Pentru mai multe detalii : Wikipedia
Motorul folosit de mine are 4 fire, rosu, alb, negru si galben. Firele ce alcatuiesc o bobina se pot afla prin utilizarea multimetrului si masurarea rezistentei pe fire (prin incercari succesive ).
Motorul a fost legat la pinii de output ai puntii H L298. Procedeul de “miscare” a motorului este urmatorul :
La partea de software m-am bazat foarte mult pe codul oferit in laboratorul 5 (webserver). Am luat acel cod si am mai adaugat o functie decide_move() care primeste starea celor 8 pini pe portul C si executa o mutare.
Forward:
step_1 : PORTC = 0x06 (aceasta succesiune determina motorul sa mearga inainte) step_2 : PORTC = 0x09 step_1 : ............ .....................
Intre step_1 si step_2 am inserat si un delay de 20ms;
O mutare am considerat ca este formata din 200 “steps” si poate fi facuta in fata sau in spate. Trebuie mentionat ca pentru a nu se incalzi foarte tare L298, enable_A si enable_B sunt activati pe durata impulsurilor primite de la atmega16, adica activam L298 atunci cand dorim sa miscam motorul si la final dezactivam pinii.
Proiectul fiind realizat pe module, o sa prezint cate o poza cu fiecare modul in parte:
Cod sursa + scheme controler net si controler motor. speed_dome.zip
Mare atentie la mufe! Eu am avut nenumarate probleme la proiect din cauza ca mufele nu faceau contact foarte bine.Si inca o chestie importanta, atentie si la lipituri, s-ar putea sa fie in aer si sa nu faca contact cum trebuie.