Sistem de Supraveghere Video
Sistem de supraveghere video comandat prin mesaje MIDI și microcontroller
Proiect de diplomă
LISTA ACRONIMELOR
IDE=Integrated Development Environment= soft oferit gratuit de ARDUINO pentru a permite programarea microcontrolerului în limba pe care ARDUINO o “înțelege”, altfel spus este un debuger software ce oferă facilități complete pt dezvoltarea de software, și conține un editor de cod,unelte de compilare ,asamblare și depanare.
MIDI
PC
MC
MPP
IN/OUT
INTRODUCERE
Lucrarea de față își propune realizarea unui sistem de supraveghere video controlat cu ajutorul unei suprafețe rezistiv tactile. Acest sistemul va fi format dintr-o camera video și două motoare de curent continuu ce vor fi comandate de microcontroller-ul ATMEGA328 de pe Arduino și de mesajele MIDI. Cu ajutorul celor doua motoare de curent continuu, camera se va deplasa pe orizontală și verticală.
Inițial am realizat o interfață Midi pentru Arduino conform schemei de mai jos, care are ca scop transmiterea de mesaje Midi direct către arduino,pentru controlul celor două motoare care vor deplasa camera.
Pentru a controla motoarele am folosit pe langă placa Arduino și un driver cu ajutorul căruia am reușit să mișc motoarele, inițial nedirijate de mesaje Midi.
Următorul pas a fost comandarea acestor motorașe cu ajutorul mesajelor Midi. Deși inițial ideea a fost de a folosi acea interfața contruită pentru transmiterea de mesaje Midi către mC și dirijarea motoarelor prin acestea, nu am putut duce la capăt acest lucru. În final am dirijat motoarele utlizând conexiunea direct către un Pc,la care am conectat nanopadul, Arduino și cele două motoare conectate la acesta, iar prin folosirea unei aplicații numite HairlessMidi, am convertit mesajul serial într-unul Midi.
CAPITOLUL 2
CONSIDERENTE TEORETICE
2.1.1 Protocolul MIDI
MIDI (Musical Instrument Digital Interface =Interfața digitală pentru instrumentele muzicale) reprezintă un standard de comunicații apărut la începutul anilor ’80 ce realizeză interconectarea mai multor dispozitive electronice hardware sau software (cum ar fi: sintetizatoare, generatoare,etc) între ele sau împreună cu placa de sunet a calculatorului. În acest mod, MIDI permite instrumentelor muzicale și calculatoarelor să comunice, să se controleze reciproc și să se sincronizeze.
Standardul MIDI conține un protocol de comunicații, ce permite transferul între diferite instrumente sau calculatoare de note, secvențe de note, partituri întregi, împreuna cu informții despre instrumentul ce va reda aceste note. MIDI nu permite transferul semnalelor sau a informațiilor audio, ci doar a "mesajelor de eveniment" cum ar fi înălțimea sau intensitatea notei de reprodus, sau semnale de control a unor parametri ca volumul, repartizarea stereo, efectul de vibrato sau semnalul de ceas pentru stabilirea tempo-ului.
MIDI este un protocol obișnuit ce permite transferul de date numerice legate de muzică, între dispozitive electronice, fie că sunt tastaturi sau fie calculatoare PC. Fără componenta hardware necesară, cum ar fi placa din PC cu posibilități de redare MIDI, nu se pot obține sunete din datele MIDI. Așadar datele MIDI conțin doar instrucțiuni ce permit sunetului muzical dorit să fie reprodus. Pentru a face posibilă această reproducere , atât dispozitivul care a creat instrucțiunile din sunetul inițial cât și dispozitivul care intenționează să reproducă sunetul trebuie să comunice unul cu celălalt folosind aceleași reguli sau limbaj și aici intervine MIDI. []
Datele Midi se pot realiza în două moduri: fie utilizând instrumente MIDI, fie prin intermediul controlerelor MIDI (keyboard ,pian electronic, saxofon, guitara). Controlerele sunt acele dispozitivele care generează date MIDI pure și care sunt apoi interpretate de către un PC sau un sintetizator (instrument) MIDI în vederea obținerii semnalului audio.Un secvențiator (instrument) MIDI poate fi un dispozitiv hardware (dispozitiv independent de calculator , spre exemplu : o tastatură electronica, un sintetizator,etc) sau o aplicație software care permite recepția, memorarea și editarea datelor MIDI (Ableton, Garageband,etc). Pot există deasemenea și dispozitive care realizează ambele operații, cum ar fi anumite keyboard-uri speciale.
Un fișier MIDI este o înșiruire temporală de comenzi , ce corespunde unei acțiuni muzicale (spre exemplu apăsarea unei clape sau a unei pedale de pian). Când un fișier MIDI este redat cu ajutorul unui sistem audio (sintetizator sau PC), respectivele comenzi sunt concretizate într-o secvență de sunete asemănătoare partiturii incluse în fișier.
Standardul MIDI prezintă următoarele avantaje:
1) Fișierele Midi sunt mult mai mici decât cele digital audio,având o dimensiune de 200-1000 de ori mai mică decât acestea, mărimea acestor fișiere fiind independentă de calitatea redării. Astfel, MIDI necesită mai puțină memorie RAM, un spațiu pe disc mai redus și o putere de calcul mai mică. Acest lucru demostrează faptul că fișierele MIDI nu conțin date audio eșantionate , ci numai acele instrucțiuni necesare generării sunetelor de către un sintetizator. Aceste instrucțiuni sunt sub forma unor mesaje MIDI și indică sintetizatorului ,instrumentele care vor fi utilizate , notele care trebuie generate și intensitatea fiecărei notei. Sunetele fiind generate apoi printr-una din metodele de sinteză disponibile.
2) Rata mica de transfer necesară pentru transmiterea datelor la placa de sunet. Aceast avantaj se datorează dimensiunii redus a fișierelor
3) Un alt avantaj al acestui standard îl reprezintă posibilitatea editării cu ușurință a muzicii, fiind posibilă modificarea independentă a vitezei de redare,a înălțimii sau a cheiei sunetelor. Altfel spus , lungimea unei părții MIDI se poate modificată prin varierea vitezei de redare (tempoul) fără a se pierde din calitatea audio. Datele MIDI putând fi editate complet până la nivelul de notă
2.1.2 SISTEMELE MIDI
MIDI este un protocol standard care permite diferitelor echipamente electronice care posedă aceasta interfață, să comunice și să se sincronizeze între ele. Mesajele transmise se referă la starea unei funcții, cum ar fi valoarea unui control de volum, o nota on/off, pitch și chiar ceasul de sincronizare între echipamente, informația bpm-ului și downbeatului.
Protocolul MIDI este un mijloc eficient utilizat pentru a transmite informații despre interpretarea muzicii într-un mod standard. Aceste informații sunt transmise sub forma de mesaje MIDI, într-un flux de date unidirecțional, asincron , serial cu o rată de 31,25Kbiți/secundă. Pentru fiecare octet se transmit 8 biți de stare ,care sunt întotdeauna urmați de un bit de start și un bit de stop. Acest protocol serial de comunicații lucrează la o tensiune DC de 5V.
La folosirea unui cablu Midi standard, trebuie avut în vedere faptul că datele sunt transmise pe un flux de date unidirecțional, pornind de la o singură sursă către o anumită destinație. Pentru a putea face posibilă o transmisie a datelor în sens invers, trebuie utilizat un al doilea cablu Midi pentru transmite datele înapoi dispozitivului.
Figura.. Datele Midi pot fi transmise într-o singura direcție printr-un singur cablu
Midi
a) transmisia datelor se face de la o singură sursă către o destinație;
b)comunicație bidirecțională folosind două cabluri Midi
În general un cablu Midi se folosește pentru a conecta un instrument muzical la un alt instrument(figura..a), iar cablul USB se utilizează pentru a putea conecta aceste instrumente muzicale la un calculator(figura..b).
Figura..
Interfața Midi a unui instrument conține 3 conectori : IN, OUT, THRU. Portul de intrare-IN, care asigură ca datele să fie primite de către dispozitiv, portul de ieșire-OUT folosit pentru a realiza transmiterea datelor, iar portul THRU (intermediar)prin care se realizează o replică a semnalului de la intrare, astfel acesta permițând conectarea mai multor dispozitive Midi.
Șirul de date MIDI poate fi citit dintr-un fișier sau poate fi generat de către un controler MIDI, sau un secvențiator. Secvențiatorul MIDI este un dispozitiv ce permite capturarea, memorarea, editarea, combinarea și redarea secvențelor de date MIDI. Datele MIDI sunt transmise la ieșirea controlerului sau a secvențiatorului MIDI prin conectorul OUT. Receptorul acestui șir de date ( modul de sunet MIDI sau o placă de sunet ), va prelua mesajele MIDI prin conectorul IN și va raspunde prin generarea sunetelor corespunzătoare. Informațiile recepționate prin conectorul IN, a unui dispozitiv MIDI sunt transmise mai departe la conectorul THRU al dispozitivului.
Un canal fizic MIDI este împarțit în 16 canale logice ,fiecare mesaj având un număr de canal pe 4 biți. Spre exemplu claviatura unui instrument muzical poate fi setată de obicei pentru a transmite pe oricare din aceste 16 canale. În schimb generatorul de sunet sau modulul de sunet pot fi setate pentru a recepționa date pe anumite canale.
În cazul sistemelor MIDI bazate pe calculator PC, aplicațiile multimedia transmit informații către interfața MIDI de pe placa de sunet prin intermediul magistralei sistem. Interfața MIDI va converti aceste informații în mesaje MIDI, pe care le va transmite apoi la generatorul de sunet. Acest generator de sunet fiind de obicei integrat la placa de sunet.
[ http://users.utcluj.ro/~baruch/media/ac/labor/AC10.pdf]
2.1.3 STRUCTURA MESAJULUI MIDI
Un mesaj MIDI este un pachet de date care codifică un eveniment. La nivel înalt mesajele se pot împarți în:
1) Mesaje de canal care conțin informații relevante pentru canale (se referă la un anumit canal), numărul canalului fiind inclus în octetul de stare . Aceste mesaje sunt de doua tipuri:
-mesaje de voce canal : indică momentul când o nota începe și când se termină, cât de tare este apăsată, cât de tare este ținută apăsată („aftertouch”), care instrument este activat, etc;
-mesaje de mod canal : indica dispozitivului MIDI care canal trebuie activat pentru preluarea datelor și cum se interpretează acestea.
2) Mesaje de sistem: conțin informații care nu sunt specifice unui canal anume (temporizare, sincronizare, setup),octetul de stare al acestor mesaje nu cuprinde un număr de canal.
Mesajele pentru voce se utilizeză pentru a transmite informații despre interpretarea muzicii, aceste mesaje sunt cele mai frecvente în cadrul șirurilor de date MIDI. Din aceasta categorie fac parte mesajele: Note On, Note Off, Polyphonic key pressure, Channel pressure, Pitch Band change, Control change, Program change. Într-un sistem MIDI , activarea unei note și eliberarea aceleași note reprezintă doua evenimente separate.
Spre exemplu, la apăsarea unei clape a unui instrument MIDI sau a unui controler MIDI, claviatura va transmite un mesaj Note On pe unul din canalele logice. După octetul de stare, se transmit doi octeți de date, care specifică numărul clapei (note) si rapiditatea(velocity) cu care a fost apăsată clapa. În concluzie, mesajul Note On conține la rândul lui două informații : note care face referire la numărul clapei apăsate și velocity ce reprezintă rapiditatea cu care a fost apăsată tasta. Numărul clapei se utilizează de sintetizator pentru a selecta nota care trebuie generate, iar rapiditatea apăsării este utilizată în mod normal pentru a controla amplitudinea notei. La eliberarea clapei, instrumentul sau controlerul MIDI va genera un alt mesaj și anume Note Off ce semnalizează sfarșitul notei eliberate, poate conține informații referitoare la rapiditatea(velocity) cu care a fost eliberată clapa .
Mesajele de mod indică felul în care un receptor va răspunde la mesajele de voce. Aceste mesaje se pot utiliza pentru a valida sau invalida controlul local, modulul Omni, sau pentru a selecta între modul Mono sau Poly. Dacă modul Omni este validat , atunci sintetizatorul va răspunde la mesajele MIDI recepționate pe toate canalele. În caz contrar, sintetizatorul va răspunde doar la mesajele recepționate pe un singur canal.
Mesajele de sistem se clasifică în mesaje comune, mesaje în timp real și mesaje exclusive. Mesajele comune sunt destinate tuturor receptorilor dintr-un sistem. Mesajele în timp real sunt utilizate pentru sincronizarea între componentele MIDI bazate pe un ceas. Mesajele exclusive cuprind un cod de identificare al producătorului, și sunt utilizate pentru a transfera un număr arbitrar de octeți de date într-un format specificat de producător.
Mesajele MIDI sunt transmise serial pe cuvinte de 10 biți, începând cu un bit 0 de start și terminându-se cu un bit 1 de stop, informația utilă regăsindu-se pe 8 biți. Fiecare mesaj conține un octet de stare și unul sau mai mulți octeți de date. Octetul de stare are bitul cel mai semnificativ MSB=1 și indică tipul mesajului, iar octetul de date are bitul cel mai semnificativ MSB= 0.
Mesajele MIDI sunt formate din cel putin două componente: un octet de stare și un octet de date. Primii menționați comunică instrumentului MIDI ce tip de mesaj este transmis, iar ceilalți rețin(descriu) data. Cele mai comune mesaje MIDI sunt formate dintr-un octet de stare, urmat de unul sau doi octeți de date. Există 8 tipuri de comenzi ce pot fi trimise sau primite cu un dispozitiv Midi: Note on/off; polyphonic key pressure, control change, program change, monophonic key pressure, pitch band, system exclusive.Cu excepția comenzii “system exclusive” toate mesajele Midi conțin 1 octet de stare și 2 sau 3 octeți de date.
MSB al mesajului MIDI ne ajută să facem diferența dintre octetul de date și cel de stare. Octeții de date MIDI pot lua valorii între 0-127 sau în binar de la 00000000 la 01111111,unde cel mai semnificativ(MSB) bit este 0. În cazul celor de stare, aceștia iau valori de la 128 la 255 , sau dacă utilizăm reprezentarea binară de la 10000000 la 11111111. Spre deosebire de cei date , cei de stare încep întotdeauna cu 1, în acest caz MSB este reprezentat de către 1, astfel vor rămâne 7 biti pentru fiecare octet pentru reprezentarea mesajul (128 de posibilități).
Un octet de stare este format din 8 biți: primul bit 1 reprezintă MSB și este urmat apoi de 3 biți notați cu “sss” utilizați pentru a determina tipul mesajului transmis și 4 biți notați cu ”nnnn” folosiți pentru a indica numărul canalului la care se aplică mesajul(maxim 16 canale).Numerotarea canalelor se face astfel:
0000 -Canalul 1; 0001-Canalul 2; ….1111-Canalul 16.
Figura…
Într-un mesaj tipic Midi ,sunt de obicei transmise 3 tipuri de informații: acțiunea sau comanda( note on/off, pitch band) ; nota care a fost apelată (note) și intensitatea cu care aceasta a fost accesată( velocity). De exemplu dacă utilizatorul a apăsat o tastă C mediu pe keyboard, atunci keyboard-ul va transmite un mesaj “note on” de genul :
9n kk vv –-> 90 3C 40 , unde n reprezintă numărul canalului, kk tasta care a fost apăsată, iar vv intensitatea(velocity) cu care a fost apăsată nota respective.
2.1.4 Utilizări
MIDI este standardul prin care instrumentele muzicale electronice, calculatoarele, software și alte controlerele digitale fac schimb de informații muzicale.
Scopul inițial al inventării protocolului MIDI era de a oferi posibilitatea muzicienilor de a controla cât mai multe instrumente electronice de la un singur dispozitiv. În prezent, utilizarea acestui protocol se face în mai multe domenii.
De-a lungul timpului oamenii au constat că prin utilizarea unui calculator, se pot compune, modifica și înregistra date MIDI. Astfel că prin utilizarea unui simplu program numit “sequencer”, amatorii și profesioniști pot utiliza MIDI pentru a edita, înregistra mai multe piese de muzică electronică. Acest sequencer poate furniza o cantitate imensă de distracție pentru un muzician amator, și este un instrument puternic în mâinile unui profesionist. Cum MIDI este un standard universal, piesele înregistrate pot fi accesate ce către orice instrument muzica electronic sau un instrument MIDI activ. Combinația MIDI-calculatoare a reușit sa schimbe modul în care oamenii realizează muzică. Spre exemplu, un tânăr muzician nu mai este nevoit să petreacă ore în șir într-un studio de înregistrari sau să cheltuie milioane de dolarii pe intrumente muzicale. Utilizarea de programe precum Pro Tools, Reason, etc. permit oricui să producă muzică de bună calitate de acasă, prin utlizarea unui întreg arsenal de instrumente virtuale.
MIDI nu este utilizat doar în domeniul muzical. Unele dintre aceste dispozitive MIDI, permit manipularea de imaginii video de pe scenă sau pot fi folosite pentru declanșarea aparatului de fum de fiecare dată când este cântată o anumită notă, iar datele MIDI pot ajuta la sincronizarea echipamentelor de înregistrare dintr-un studio muzical.
2.2 MOTOARE DE CURENT CONTINUU
Un motor electric (sau electromotor) este un dispozitiv electromecanic ce transformă energia electrică în energie mecanică. Transformarea în sens invers, a energiei mecanice în energie electrică, este realizată de un generator electric.
Motoarelor electrice pot fi motoare de curent continuu sau motoare de curent alternativ,în funcție de tipul curentului electric ce le străbate. În funcție de numărul de faze ale curentului cu care funcționează motoarele electrice, ele pot fi motoare monofazate sau polifazate .
Motorul, indiferent de tipul lui, este costruit din două componente de bază: rotor și stator. Statorul este partea fixă a motorului , iar rotorul partea mobilă.
Figura…rotorul(stânga) și statorul( dreapta) unui motor electric.
Statorul (partea imobilă) are rolul de inductor și este realizat din: carcasă, poli principali( de excitație), poli auxiliari (de comutație) și elemente de strângere.
Rotorul are rol de indus și este compus din: miez magnetic rotoric; arbore(axul mașinii); înfășurarea indusă; colector; ventilatorul care este poziționat la extremitatea arborelui opusă colectorului.
Indusul(rotorul) conține spirele în care ia naștere tensiunea electromotoare de inducție. El este format dintr- un miez fixat pe arborele mașinii. Miezul este format din tole suprapuse, izolate între ele prin aplicarea unei foi subțire de hârtie sau prin acoperirea cu un lac izolant. La periferia indusului întâlnim crestăturile, în interiorul cărora se introduc conductoarele bobinajului. Între indus și inductor este un spațiu foarte mic, numit întrefier.
Inductorul(statorul) este partea care asigură existența câmpului magnetic. La mașina de curent continuu, inductorul este partea statică, iar indusul partea rotitoare. La mașinile de curent continuu, inductorul (sau statorul) apare sub forma unor poli alcătuiți dintr-un miez de fier(poli magnetici), în jurul căruia sunt dispuse una sau mai multe bobine polare. Trecând curent continuu prin aceste bobine, miezul de fier din interiorul bobinei se magnetizează și acționează ca un magnet permanent, dând astfel naștere unor câmpuri puternice.
Pe axul motorului este situat un colector ce schimbă sensul curentului prin înfășurarea rotorică astfel încât câmpul magnetic de excitație să exercite în permanență o forță față de rotor. Colectorul este partea mașinii de curent continuu cu ajutorul căruia curentul alternative produs în spire se schimbă în curent continuu. Colectorul poate fi considerat redresor de tensiuni electromotoare alternative induse în secțiile rotorului în mișcare. În esență, colectorul este de forma unui cilindru alcătuit dintr-un număr de lamele de cupru, izolate între ele din punct de vedere electric, la care se leagă extremitățile bobinelor înfășurării. Exista doua tipuri principale de colectoare,dupa forma lamelei:coadă de rândunică sau în formă de H.
Figura… Tola indusului mașinii de curent continuu
Funcționarea motorului are loc datorită forțelor electromagnetice ce acționează asupra unui conductor, alimentat de la un curent aflat în câmp magnetic. Mașina electrică acționează ca un motor de curent continuu, atâta timp cât înfășurarea rotorică și cea de excitație sunt alimentate la o sursă de tensiune. Statorul este realizat din unul sau mai mulți poli magnetici, iar rotorul dintr-o bobină. La trecerea unui curent prin rotorul unui motor, se generează un câmp magnetic ce va produce o forță electromagnetică,care va avea ca rezultat învârtirea rotorului. Rotorul se deplasează în câmpul magnetic până când polii rotorici se alinează cu polii magnetici opuși din stator. În acel moment, polaritatea rotorului se inversează și acesta va continua deplasarea până la următoarea aliniere a polilor magnetici. Pentru a putea modifica turația motorului, trebuie modificată tensiunea aplicată infășurării rotorice. Turația motorului este proporțională cu tensiunea aplicată înfășurării rotorice și invers proporțională cu câmpul magnetic de excitație, prin urmare turația se va regla prin varierea tensiunii aplicate motorului până când va ajunge la valoarea nominală a tensiunii, iar pentru obținerea de turații mai mari, se va slăbi câmpul de excitație. Aceste metode presupun existența unei tensiuni variabile, ce poate fi obținută prin introducerea în circuit a unei rezistențe variabile, a unor generatoare sau prin modularea în lățime a impulsului (PWM). Schimbarea sensului de rotație se poate realiza atât prin schimbarea polarității tensiunii de alimentare, cât și prin schimbarea sensului câmpului magnetic de excitație. Pentru a putea modifica polaritatea tensiunii se utilizează punțile H. O punte H este un circuit electronic format din 4 „întrerupătoare” (care sunt de obicei tranzistoare) dispuse ca în figura de mai jos și care modifică sensul de trecere a curentului prin motor. Cuplul dezvoltat de motor este direct proporțional cu curentul electric prin rotor și cu câmpul magnetic de excitație. Astfel reglarea turației prin slăbire de câmp se face cu diminuare a cuplului dezvoltat de motor .
Explicarea principiului de funcționare al motorului de curent continuu pe baza unui exemplu:
Figura… explicarea funcționării motorului de curent continuu
Conform figurii de mai sus, dacă o spiră AB este străbătută de un curent într-un anumit sens și apoi plasată în câmpul magnetic al inductorului, asupra fiecărui conductor al ei va acționa o forță electromagnetică, al cărui sens este dependent de sensul curentului inductor( regula mâinii stângi).
Forțele electromagnetice ce acționează asupra celor două conductoare A și B sau a cuplului care învârte spira spre dreapta(figura ..a) sau spre stânga, vor schimba și sensul curentului în spiră sau sensul câmpului magnetic inductor(figura..c). Spirele indusului tind întotdeauna să se rotească astfel încât să cuprindă un flux maxim.
Curentul continuu este un curent electric care circulă întotdeauna în aceeași direcție dinspre o baterie sau orice altă sursă . Daca se conectează o baterie la bobina unui motor electric simplu , aceasta se comportă ca un magnet, având la un capăt polul nord și la celălalt polul sud . Întrucât polii opuși se atrag , polul nord al bobinei este atras de polul sud al magnetului permanent , iar polul sud al bobinei este atras de polul nord al magnetului permanent . Aceste forțe de atracție produc rotirea bobinei.
2.2.1 TIPURI DE MOTOARE DE CURENT CONTINUU
Motoarele de curent continuu se deosebesc dupa felul excitației lor. Astefel, în funcție de modul de conectare a înfășurării de excitație, motoarele de curent continuu pot fi clasificate în:
motor cu excitație independentă sau separată (figura..a)
motoare cu excitație derivație sau paralelă(figura..b)
motor cu excitație serie (figura..c)
motor cu excitație mixtă(figura d)
Figura..
1) Motoarele cu excitație independentă –sunt acele motoare în care înfășurarea statorică și cea rotorică sunt conectate la două surse separate de tensiune. Aceste motoare au caracteristici identice cu cele ale motoarelor cu excitație derivație. În cazul acestui tip de motor, curentul ce străbate înfășurarea rotorică este același cu cel de alimentare.
2) Motoarele cu excitație paralelă(derivație) – sunt cele care au înfășurarea statorică și înfășurarea rotorică legate în paralel la aceași sursă de tensiune. Au cuplul de pornire mic, nu suportă supraîncărcări mari, au turație constantă și nu se ambalează în gol.Sunt folosite pentru acționarea mașinilor de ridicat, mașinilor-unelte care necesităa turație constantă.
3)Motorul cu excitație serie –este motorul unde înfășurarea statorică și înfășurarea rotorică sunt legate în serie. Acestea au cuplu de pornire mare, suportă supraîncărcări,se ambalează în gol și turația variază cu sarcina.Motoarele de curent continuu cu excitație serie se folosesc în tracțiunea electrică urbană și feroviară (tramvaie, locomotive) precum și la acționarea pompelor și ventilăriilor. La aceste motoare, același curent străbate înfășurarea de excitație și înfășurarea rotorică. Din această considerație se pot deduce două caracteristici ale motoarelor serie: pentru încărcări reduse ale motorului, cuplul acestuia depinde de pătratul curentului electric absorbit; motorul nu trebuie lăsat să funcționeze în gol pentru că în acest caz valoarea intensității curentului electric absorbit este foarte redusă și implicit câmpul de excitație este redus, ceea ce duce la ambalarea mașinii până la autodistrugere). Motorul serie poate fi folosit și la tensiune alternativă, unde polaritatea tensiunii se inversează o dată în decursul unei perioade. Un astfel de motor se numește motor universal și se folosește în aplicații casnice de puteri mici și viteze mari de rotație (aspirator, mixer).
4)Motorul cu excitație mixtă ,aici înfășurarea statorică este divizată în două înfășurări, una conectată în paralel(derivație) și una conectată în serie. De obicei înfășurarea serie este cuplată magnetic, rezultând astfel caracteristici mecanice de forma intermediara între cele două caracteristici ale motorului: derivație si serie. Aceste motoare se folosesc în tracțiunea electrică, de exemplu la troleibuze.
Schema electrică a motorului de curent continuu este prezentată în figura de mai jos:
Figura ..
Conform schemei de mai sus Ra reprezintă rezistența înfășurării rotorice (a indusului) a motorului de curent continuu, U este tensiunea de alimentare a motorului iar Ia este curentul absorbit de motor (curentul principal din indusul motorului) și E reprezintă tensiunea electromotoare indusă în înfășurarea rotorică, având sens opus curentului rotoric. Em este în înfășurarea de excitație a motorului alimentată cu tensiunea Ue iar Ie este curentul absorbit de în înfășurarea de excitație.
Aplicând teorema a2a lui Kirchhoff în cazul circuitului indusului obținem:
-E = Ra Ia – U și va rezulta curentul Ia=.
La pornire, cand turatia motorului este nula, tensiunea electromotoare E indusa in infasurarea rotorica este nula si, ca urmare, curentul absorbit de motor este foarte mare, mult mai mare decat curentul nominal. Acesta trebuie redus utilizând un reostat de pornire inseriat cu circuitul rotoric. Astfel vom obține următorul curent de pornire al motorului:
Turația motorului de curent continuu se exprimă prin urmatoarea ecuație:
n==
Caracteristicile de funcționare.
Caracteristica de viteză exprimă legătura care există între viteza de rotație a motorului și curentul absorbit de mașina. Această caracteristică se ridică ,menținând constantă tensiunea rețelei.
În figura de mai jos sunt reprezentate caracteristicile vitezei pentru diferite tipuri de motoare. Dacă în ecuația de funcționare a motorului de curent continuu : U=E +Ra*Ia , se va înlocui E cu expresia: E=Ke*n, atunci vom avea relația: n=, unde U este tensiunea aplicată la perii care acoperă tensiunea contraelectromotoare și căderea de tensiune din bobinajul de rezistență Ra al indusului parcurs de curentul Ia, “n” reprezintă turația , “” fluxul iar “Ke” este o constantă pentru o mașină data.
Figura …
La motorul cu excitație derivație(a) curentul de excitație fiind constant și fluxul magnetic Ф va fi constant (tensiunea U este constantă), acesta va avea o caracteristica mecanica rigida. Numărătorul scade linear în funcție de curent. În modul acesta se explică forma liniară a caracteristicii turației la motoarele cu excitație derivație. Aceste motoare se folosesc în acționări electrice unde turația este practic constantă independent de sarcină (cuplul M'). Reglarea turației la aceste motoare se face prin modificarea tensiunii U de alimentare sau prin modificarea curentului de excitație (deci a fluxului de excitație Ф). Din expresia turației n se observa ca la o funcționare în gol a motorului, când M' = 0 și fluxul de excitație Ф scade ,turația motorului crește foarte mult. Prin utilizarea unei surse de curent continuu cu tensiune reglabilă putem modifica turația prin modificarea tensiunii de alimentare (figura..pct b)
La motorul cu excitație serie(figura..b), curentul de excitație este chiar curentul absorbit de motor . Dacă variem curentul de sarcină , va varia și curentul de excitație și prin urmare și fluxul mașinii. Numitorul expresiei vitezei va crește odată cu mărirea curentului absorbit de motor. Pe caracteristica acesteia se observă că până la o anumită valoare căderea de turația este puternică , după care aceasta începe să se diminueze. Acest lucru se datorează saturației magnetice a mașinii, deoarece la un moment dat creșterea fluxului nu mai este proporțională cu creșterea curentului de excitație. Turatia motorului cu excitatie serie se poate regla prin modificarea tensiunii de alimentare sau prin modificarea curentului de excitatie.
În cazul motorului cu excitație mixtă(figura..c), care este o combinație între motorul derivație și cel serie, caracteristica de viteză are o formă intermediară între caracteristica motorului derivație și cea a motorului serie. La aceste motoare turația se poate modifica ușor prin reglarea curentului de excitație.
Caracteristica cuplului motor face legătura dintre cuplul pe care motorul îl dezvoltă și curentul pe care îl absoarbe motorul.
În figura de mai jos sunt reprezentate caracteristicile cuplului motor pentru motoare cu diferite tipuri de excitație:
La motorul derivație cuplul electromagnetic variază proporțional cu curentul, datorită fluxului care este constant (M= K’ **I), de aici rezultă și forma liniară a caracteristicii (figura..a).
Pentru motoarele serie, cuplul nu mai variază , întrucât variațiile de curent produc si varianțiile fluxului , și din acest motiv acestea variază aproape proporțional cu pătratul curentului M=K’*, până la apariția saturației cuplului, moment în care cuplul tinde către o variație liniară a curentul, deoarece valoare fluxului practice nu mai crește (figura..c).
În cazul motoarelor cu excitație mixtă , caracteristica cuplului are o formă intermediară între cea corespunzătoare motorului derivație și cea a motorului serie.
Utilizând aceste două tipuri de caracteristici, se pot da indicații privind utilizarea tipurilor de motoare de curent continuu. Spre exemplu : motoarele cu excitație paralelă se pot folosi în cazul în care se cere o turație cât mai constantă( acționarea pompelor), motoarele cu excitație serie se utilizează acolo unde sunt necesare cupluri mari la pornire și se admit variații mari de turație, iar motoarele cu excitație mixtă pot înlocui de cele mai multe ori motoarele derivație , ele putând suporta mai ușor șocurile de sarcină.
2.2.2 METODE DE CONTROL A MOTOARELOR DE C.C
Motorul de curent continuu prezintă o deosebită importanță în acționările de reglaj de viteză având o tot mai largă dezvoltare atât ca fabricație cât și ca utilizare.Aceste motoare sunt din ce în ce mai utilizate în diferite sisteme de acționare electrică cu turație variabilă și cuplu mare la pornire (laminoare, mașini unelte, mașini de extracție minieră, tranvai și locomotive electrice) sau în tracțiunea electrică, acționarea mașinilor, unelte în metalurgie, instalații de transport și ridicat, etc.
Un motor de curent continuu poate fi controlat în sensul mișcării, într-un anumit sens cu o
viteză dată, lucru care se face prin aplicarea unei anumite tensiuni la bornele sale. Motorul se rotește cât timp există tensiune aplicată. Cu cât tensiunea aplicată este mai mare cu atât viteza va fi mai mare.
Pentru comanda motoarelor sunt adesea preferate microcontrolerele,deoarece setul de instrucțiuni este foarte ușor și intuitiv pentru un inginer proiectant de software. Instrucțiunile sunt de tip “comandă” și are o multitudine de moduri de adresare ce pot fi folosite pe orice microcontroler.
Motorul poate fi comandat de către un microcontroller atât direct, cât și prin intermediul unor interfețe specializate, programabile. Microcontrolerele formează partea logică de comandă sau de decizie, iar motoarele partea de execuție. Partea de comandă operează cu nivele de tensiuni de 5V și puteri mici ,iar partea de execuție cu tensiuni și puteri mai mari. Interfața dintre cele două parți ale sistemului se face prin circuit de amplificare care are frecvent și rolul de separare galvanică între cele două sisteme.
Există nenumărate soluții de comandă a motoarelor pentru sistemele utilizate în acest moment. Sistemele simple sau complexe tind să folosească microcontrolerele, iar sistemele cu un grad sporit de complexitate utilizează arhitectura DSP-urilor. În general, arhitectura hibridă reprezintă o bună soluție atât timp cât sunt utilizate doar câteva componente (acesta este un factor de creștere a fiabilității deoarece mai puține componente înseamnă o sursă mai mică de posibile defecte), proiectarea software se realizează simplu și rapid, iar costul întregului sistem se micșorează.
2.4 MOTOARE STEPPER
Motoarele Stepper (motoarele pas cu pas) sunt motoare de curent continuu ce fac parte dintr-o categorie de dispozitive electromecanice, ce realizează mișcări discrete sau discontinue. Numele de “motor stepper” determină funcția principală a acestora și anume că procesul de conversie a energiei electrice de la intrare în energie mecanică la ieșire, se realizează pas cu pas (stepper) sau discret. Prin urmare, acest tip de motor poate fi definit ca un convertor electromecanic.
Motoarele pas cu pas (MPP) se încadrează într-o clasă mai largă de dispozitive, cunoscute sub numele de dispozitive de mișcare prin incrementare, ce cuprind atât actuatoare, servomotoare cât și alte dispozitive de control digital, folosite în controlul mișcării. Aceste motoare au fost dezvoltate și folosite în diverse aplicații tehnologice.
Intrarea unui MPP este digitală și este reprezentată fie de un impuls electric, fie de o serie de impulsuri discrete. Acest tren de impulsuri electrice fiind transformat într-o mișcare proporțională a axului său(mișcare de rotație). În general, un motor pas cu pas este alcătuit dintr-un magnet montat pe axa de rotație și din bobine fixe situate împrejurul acestui magnet. Rotorul,este compus dintr-un magnet permanent la suprafața căruia sunt fixate două coroane danturate cu câte 50 de dinți, decalate între ele cu o jumătate de dinte.Mișcarea rotorului unui MPP constă în deplasări unghiulare discrete, successive și de mărimi egale, ce reprezintă de fapt pașii motorului.Viteza MPP se poate regla prin modificarea frecvenței impulsurilor de la intrare. Astfel, dacă pasul unghiular al motorului este 1,8° numărul de impulsuri necesare efectuării unei rotații complete este 200, iar pentru un semnal de intrare cu frecvența de 400 impulsuri pe secundă turația motorului este de 120 rotații pe minut. MPP pot lucra până la frecvențe de 1000 – 20000 pași / secundă, având pași unghiulari cuprinși între 180° si 0,3°.
Tabelul unghiurilor de pași tipice
Motoarele pas cu pas pot fi controlate utilizând sursele de AC/DC convenționale : relee, contractoarele, switch-uri pas cu pas , dar cele mai moderne metode fiind cele de tip semiconductoare.
Un controler de MPP are două funcții:
1) oferă energia electrică necesară motoarelor, pentru ca acestea să dezvolte cuplul necesar pentru a conduce sarcina;
2) asigură controlul poziției, vitezei și accelerației motorului.
Motoarele pas cu pas sunt utilizate în cazul aplicațiilor de mică putere, ce sunt caracterizate de mișcări rapide, rapide, repetabile.
Avantajele utilizării unui motor stepper sunt:
– asigură univocitatea conversiei: număr de impulsuri-deplasare și poate fi utilizate în circuit deschis;
– gamă mare de frecvențe de comandă;
– precizie de poziționare;
– permit porniri, opriri și reversări fără pierderi de pași;
Principalele dezavantajele pe care le prezinta acest tip de motor sunt:
-viteză de rotație scăzută;
-putere scăzută;
-randament energetic scăzut.
Motoarele pas cu pas sunt de mai multe feluri. Ele sunt fie rotative, fie liniare, unde numărul de înfașurării variază între unu și cinci:
a. MPP cu o singură înfășurare de comandă;
b. MPP cu două înfășurări de comandă.
c.MPP cu trei sau mai multe înfășurări de comandă.
Din punct de vedere al construcției circuitului magnetic există trei tipuri principale de MPP:
1)MPP cu reluctanță variabilă ( de tip reactiv);
2)MPP cu magnet permanent(de tip activ);
3)MPP hibrid, care este cel mai utilizat (de tip activ);
1)Motorul stepper cu reluctanță variabilă este cel mai simplu și cel mai ieftin motor stepper. Acesta se caracterizează prin faptul că statorul și rotorul sunt realizați cu dinți uniformi distribuiți și nu conțin magneți permanenți. Pe dinții statorului sunt montate înfășurările de comandă , iar rotorul este unul pasiv. La alimentarea unei fazei statorice, rotorul se rotește astfel încât liniile de câmp se închid după un traseu de reluctanță minimă, iar dinții rotorici se găsesc fie în față cu cei statorici(figura..a),b), fie după bisectoarea unghiului polilor statorici.(figura..c)
Figura.. Schema de principiu a unui MPP cu reluctanță variabilă
Acest tip de motor asigură pași unghiulari mici și medii, dar și frecvențe de comandă ridicate, însă nu poate memora poziția ,adică nu poate asigura cuplul electromagnetic în lipsa curentului în fazele statorului( nu are cuplu de menținere). Deplasarea acestui tip de motor, se realizează prin activarea succesivă a polilor statorului, aceștia fiind atrași de cel mai apropiat pol activ
În figura..a,b este alimentată o singură fază statorică(AA’ respective BB’), deci rotorul se va deplasa în pași întregi cu un unghi de 60°, calculate astfel : p = 360/(fz) = 360/(32) = 60°, unde f este numărul de faze al statorului, iar z-numărul de dinți ai rotorului.
În figura..c sunt alimentate două faze successive: AA’ și BB’. În acest caz rotorul se va poziționa în pași întregi pe bisectoarea unghiului dintre cele două faze.
Pentru acest tip de motor pas cu pas nu trebuie schimbat sensul înfășurărilor statorului, pentru a putea face posibilă deplasarea rotorului într-un anumit sens.
2) Motorul pas cu pas cu magnet permanent este un alt tip de motor stepper, la care dinții rotorului sunt realizați din magneți permanenți, iar polii sunt dispuși sub formă radială.Prin alimentarea fazei rotorului, se vor genera câmpuri magnetice,care vor interacționa cu fluxul magneților permanenți, determinând deplasarea rotorului.Pentru acest tip de motor este nevoie de o secvență bipolară,adică la fiecare repetare a alimentării unei fazei trebuie inversată polaritate tensiunii. Modul de comandă(secvențe, simplă, dublă sau mixtă) al acestuia este similar cu cel de tip reluctanță. Spre deosebire de cel reluctață, MPP cu magnet permannet este un motor activ, ce memorează poziția(are cuplu de menținere).
Figura.. MPP cu magnet permanent în rotor comandat în secvență simplă
3) MPP hibrid reprezintă o combinație între primele două tipuri de motoare pas cu pas prezentate anterior,fiind cel mai des utilizat în tehnologiile actuale. Acesta are rotorul realizat dintr-un magnet permanent dispus longitudinal, iar la extremității prezintă două coroane dințate.
Figura.. Vedere secționată a MPP hibrid cu două faze
Cele mai importante mărimi caracteristici ale MPP sunt:
1) Unghiul de pas (p) este exprimat în grade sau radiani și reprezintă unghiul de rotație pe care îl face rotorul la aplicarea unui impuls de comandă unei înfașurării sau unui grup de înfașurări. În cazul unui MPP cu magnet permanent , unghiul se poate determina utilizând formula:
p=, unde p -unghiul de pas, ps- numărul perechilor de poli ai statorului, pr-numărul perechilor de poli ai rotorului.
2) Timpul de efectuare a unui pas (tp) se determină în funcție de variația unghiului de rotație la efectuarea unui pas.
3) Frecvența maximă de start-stop în gol, reprezintă frecvența maximă a impulsurilor de comandă la care motorul poate fi pornit sau oprit fără piederi de pași.
4) Unghiul static de sarcina() este unghiul care determină deplasarea punctului de echilibru stabil.
5) Unghiul dinamic de sarcină (suprareglajul ) este devierea unghiulară maximă a rotorului față de punctul de echilibru stabil, după aplicarea ultimului impuls de comandă.
6) Viteza unghiulară () poate fi calculată ca produs între unghiul de pas și frecvența de comandă.
7) Cuplul limită de mers, este cuplul rezistent maxim cu care poate fi pornit MPP, la o frecvență si un moment de inerție date, fără pierderi de pași.
8) Cuplul de menținere este cuplul rezistent maxim, care poate fi aplicat la arborele motorului cu faze nealimentate, fără a provoca rotirea continuă a rotorului.
Comanda pașilor MPP poate fi simplă, dublă, mixtă sau prin micropășire. Comanda simplă este cea în care se alimentează o singură fază statorică. Comanda dublă constă în alimentarea simultană a două faze, iar comanda mixtă presupune alimentarea unei faze ,urmată de alimentarea a două faze,etc. Comanda prin micropășire este o metoda mai specială de control a poziției MPP, în poziții intermediare celor obținute prin primele trei metode.
Din punct de vedere al menținerii sau inversării sensului comanda pașilor MPP poate fi:
a. Comandă unipolară (menține sensul curentului);
b. Comanda bipolară (alternarea sensului curentului).
În funcție de numărul de fire de la ieșirea motorului avem motoare cu 4, 5, 6,8 fire. Motorul cu 4 fire(figura..a,b) poate fi comandat doar în variantă bipolară, iar cel cu 5 fire(figura..a) numai în variant unipolară. În schimb motorul cu 6(figura..b) respectiv 8(figura..c) fire poate fi comandat atât în variant unipolară cât și bipolară, înfășurările putând fi legate și în paralel.
Figura..
Figura..
Figura.. Schema bloc a unui sistem motor pas cu pas
Echipamentele cu motoare pas cu pas funcționează în buclă deschisă (Controllerul comandă o deplasare a motoarelor dar nu cunoaște poziția reală a mașinii, iar acesta calculează totul în funcție de poziția programată sau teoretică) și apare pericolul de a pierde pași. În cazul motoarelor pas cu pas, cuplul variază foarte mult în funcție de avans (frecvența pașilor) iar la anumite avansuri se pot pierde pași, în plus, dacă se lucrează cu avans mic, apar vibrații mari, zgomot crescut și o mișcare sacadată a mașinii.
2.5 MICROCONTROLERE
Un microcontroler este un circuit logic ce poate fi programat foarte ușor de către utilizator,el fiind folosit în rezolvarea unei game largi de aplicații de timp real. Este utilizat ca procesor orientat spre aplicații și nu ca unul de uz general, fiind, în general, inclus în echipamentul pe care îl conduce. În concluzie, un microcontroler este văzut ca un microcircuit care incorporează în structura sa o unitate centrală (CPU) și o memorie împreună cu resurse , cu ajutorul cărora realizează interacțiunea cu mediul exterior. Acestea fiind optimizate pentru achiziții de date și aplicații de monitorizare și control (aplicații de timp real) . Aplicațiile în care se utilizează microcontrolere fac parte din sistemele încapsulate-integrate (“embedded systems”), la care existența unui sistem de calcul incorporat este (aproape) transparentă pentru utilizator.
În general un microcontroller este un circuit realizat pe un singur chip care conține:
• unitatea centrală;
• generatorul de tact (la care trebuie adăugat din exterior un cristal de cuarț sau în aplicații mai puțin pretențioase, un circuit RC);
• memoria volatilă (RAM);
• memoria nevolatilă (ROM/PROM/EPROM/EEPROM);
• dispozitive I/O seriale și paralele;
• controller de întreruperi, controller DMA, numărătoare/temporizatoare (timers), covertoare A/D și D/A, etc.;
• periferice.
Un microcontroler mai poate deține la nivelul unității centrale, facilități de prelucrare a informației la nivel de bit, de acces direct și ușor la intrări/ieșiri și un mecanism de prelucrare a intreruperilor rapid și eficient.
Caracteristici principale ale microcontrolerelor:
– memoria de program și memoria de date sunt de dimensiuni reduse;
– conțin module pentru interfațarea atât digitală cât și analogică cu senzori și actuatori;
– au răspuns rapid la evenimente externe;
– există o mare varietate de microcontrolere, pentru a putea fi satisfăcute cerințele diverselor aplicații având un raport preț / performanță corespunzător.
2.5.2 Arhitectura unui microcontroler
Arhitectura unui MC caracterizează atributele sistemului din punctul de vedere al programatorului de limbaj de asamblare. Microcontrolerul este compus din cele cinci elemente de bază: unitate de intrare, unitate de memorie, unitate aritmetică și logică, unitate de control și unitatede ieșire. Unitatea de control împreună cu unitatea aritmetică și logică compun împreună unitatea centrală de prelucrare pe care o vom referi în continuare prescurtat cu UCP. Unitățile de intrare și ieșire vor fi tratate împreună și vor fi referite prescurtat ca sistem I/O.Blocurile componente ale MC sunt legate între ele printr-o magistrală internă (bus). Magistrala vehiculează semnale de adresă, de date și semnale de control. Mărimea acestor magistrale constituie una dintre caracteristicile cele mai importante ale unui MC. Prin magistrala de adrese unitatea centrală de prelucrare (UCP) selectează o locație de memorie sau un dispozitiv I/O, iar pe magistrala de date se face schimbul de informație între UCP și memorie sau dispozitivele I/O. Între UCP și memorie sunt transferate atât date cât și instrucțiuni. Acestea se pot transfera pe o singură magistrală de date sau pe magistrale de date diferite.
Arhitectura von Neumann prevede existența unui bus unic folosit pentru circulația datelor și a instrucțiunilor. Când un controller cu o astfel de arhitectură adresează memoria, bus-ul de date este folosit pentru a transfera întîi codul instrucțiunii, apoi pentru a transfera date. Accesul fiind realizat în 2 pași, este destul de lent.
Arhitectura Harvard prevede un bus separat pentru date și instrucțiuni.Când codul instrucțiunii se află pe bus-ul de instrucțiuni, pe bus-ul de date se află datele instrucțiunii anterioare. Structura MC este mai complexă, dar performanțele de viteză sunt mai bune.
Magistralele interne nu sunt accesibile în exterior la nivel de pin. Această stare caracterizează regimul normal de funcționare. În regimuri speciale de funcționare, numite diferit la diferitele tipuri de MC, semnalele magistralelor de adrese și de date sunt accesibile la nivel de pin sacrificând funcțiile inițiale ale pin-ilor respectivi. Totodată este necesar să fie livrate în exterior și semnale de comandă (cel puțin comandă de scriere – WR și comandă de citire – RD). Această facilitate este utilă pentru extensii de memorie sau pentru a atașa sistemului interfețe suplimentare. Ea nu este posibilă în mod normal de funcționare deoarece aceasta ar presupune existența unui număr foarte mare de pini, ceea ce ar fi neeconomic. Magistralele de adrese și de date pot fi aduse la pin multiplexat sau nemultiplexat.
Performanța unui microcontroller, se poate aprecia din punct de vedere al magistralei interne în funcție de:
• dimensiunea magistralei de date;
• dimensiunea magistralei de adrese;
• accesibilitatea în exterior la magistrale;
• magistrale accesibile multiplexat sau nemultiplexat.
Figura 1.12 include toate blocurile principale
Utilizarea unui microcontroler constituie o soluție prin care se poate reduce foarte mult din numărul componentelor electronice precum și costul proiectării și al dezvoltării unui produs.
2.5.3 Sistemul de întreruperi
Întreruperea poate fi definită fie ca o acțiune a microprocesorului prin care se anunță apariția unui eveniment ce trebuie tratat de către procesor ,fie ca un semnal electric transmis către sistemul de calcul (SC) informându-l de apariția unui anume eveniment. La apariția unei întreruperi, SC trebuie să determine tipul evenimentului care a determinat întreruperea (intern sau extern), să indentifice cauza întreruperii și adresa RTI (rutina de tratare a întreruperii).
Tratarea întreruperilor modifică modul de execuție al unui program și determină execuția unei rutine de tratare a intreruperii (RTI). Există trei categorii de RTI:
-RTI furnizate odată cu SC;
-RTI scrise de proiectanții sistemelor de operare (SO);
-RTI realizate de către utilizatori.
Întreruperile se împart în trei categorii:
-întreruperi inițiate hardware(HW);
-întreruperi de tip excepție. Acest tip de întreruperi sunt generate în mod automat.
-întreruperi software(SW), de tip INT.
Întreruperiile HW(externe) au fost create pentru a elimina buclele pe care un procesor le face atunci când așteaptă un eveniment de la un periferic. Acestea sunt transmise de dispozitive externe și primite de procesor,ca răspuns extern pe două linii : NMI(nemascabilă) și INTR(mascabilă).
Întreruperile interne cuprind întreruperile excepție și cele software. Acestea prezintă urmatoarele caracteristici:
-codul întreruperii este inclus în instrucțiune sau este predefinit;
-nu realizează cicluri de recunoaștere de întrerupere;
-nu pot fi dezactivate,cu excepția întreruperii “single step”;
-sunt prioritare celor externe.
Întreruperile excepție apar când o condiție neobișnuită, care împiedică execuția ulterioară a instrucțiunii, este detectata în timp ce încearcă să execute o instrucțiune. Adresa returnată de o excepție va face referire întotdeauna la instrucțiunea ce a cauzat excepția.
Întreruperiile SW sunt acele întreruperi care pot fi inițiate numai de către programator prin apel la intrucțiunea INT. Există două tipuri de astfel de întreruperi SW: întrerupere BIOS și întrerupere DOS.
Întreruperea de tipul “Single Step” este generată în mod automat la sfârșitul execuției fiecărei instrucțiuni, dacă indicatorul TF (trap flag-indicator de urmărire a execuției) primește valoarea 1. Acest tip de întrerupere mai poartă denumirea de excepție de depanare, întrucât permite execuția unui program pas cu pas (intrucțiune cu instrucțiune).
Deosebirea dintre întreruperile externe (HW) și cele interne (SW și excepție) este determinată de originea lor: o întrerupere internă este întotdeauna reproductibilă prin re-execuția programului și a datelor ce determină întreruperea, în timp ce o întrerupere externă este de cele mai multe ori, independentă de execuția cererii curente.
Fiecărei întreruperi îi este asociată o anumită prioritate numerotată de la 0 la 4 ca în tabelul de mai jos:
În cazul în care apar mai multe întreruperi simultan atunci acestea vor fi executate în funcție de prioritatea pe care o prezintă, conform tabelului de mai sus. Dacă întâlnim întreruperi care sunt active, acestea vor fi prelucrate înainte de execuția primei RTI. Ultima întrerupere prelucrata va fi prima servită.
Sistemul de întreruperi asigură sincronizarea funcționării unității centrale cu evenimentele, prin urmare perifericele pot atenționa procesorul în momentul producerii unei intreruperi (IRQ), acesta din urma fiind liber să-și ruleze programul normal în restul timpului și să își întrerupă execuția doar atunci când este necesar, asigurând implementarea unui răspuns prompt și specific al sistemului la orice cerere de întrerupere(IRQ).
Figura ..Sistem de întrerupere
Linia INTR este controlată de PIC (Programmable Interrupt Controller- controler programabil de întreruperi) , rolul ei este de a accepta cereri de întrerupere de la dispozitivele externe și de a determina care linie este mai prioritară, după care activează linia INTR în cazul în care întreruperea este mai prioritară celei de servire. După ce linia INTR a fost activate, procesorul exectută diferite instrucțiuni, depinzând de stare indicatorului de validare(IF). Dacă IF=0, atunci întreruperile mascabile sunt dezactivate și procesorul va ignora semnalul INTR. Întreruperile sunt activate prin instrucțiunea STI (set interrupt enable flag) ,IF=1, și se dezactivează cu CLI (clear interrupt enable flag), IF=0.
Cererea externă de întrerupere poate veni și de pe linia nemascabilă NMI, care e comandată pe front, spre deosebire de INTR care e comandată pe nivel, aceasta fiind utilizată doar în anumite cazuri speciale cum ar fi: în cazul unei căderi de tensiune sau resetare. Aceste întreruperi nu pot fi dezactivate, ele prezentând o prioritate superioară față de INTR.
Evenimentele, sunt stări din cadrul funcționării sistemului, folosite la controlul sistemului. Acestea trebuie să declanșeze, cu o întârziere cât mai mică, un răspuns adecvat din partea sistemului, răspunsul ce este descris de către proiectant prin utilizarea instrucțiunilor incluse în cadrul unor rutine de servire a întreruperilor. Evenimentele trebuie privite ca niște informații de stare a sistemului, informații ce pot rezulta fie ca urmare a prelucrării de către UC a datelor (sunt acele evenimente care generează întreruperile interne), fie în urma interacțiunii sistemului cu mediul înconjurător (întreruperile externe).
Întreruperile într-un microcontroler sunt reprezentate ca fiind niște evenimente speciale generate de elementele periferice. Întreruperile Hw sunt evenimente asincrone iar cele Sw sunt evenimente sincrone. Un exemplu de eveniment poate fi: apăsarea unui buton, atingerea unei valori a numărătorului,terminarea de citit a unei valori a convertorului analog digital,etc.. Aceste acțiuni fiind gestionate de către un sistem intern numit sistem de întreruperi , care are rolul de a oferi procesorului informații referitoare la natura întreruperii și de a opri funcționarea ciclică tratând întreruperea într-o rutină specială. Această rutină are o adresă specială de început.
Realizarea stărilor generatoare de cereri de întrerupere este urmată de analiza acestora de către CI (controler de întreruperi). Această analiză presupune următoarele etape:
• Identificarea sursei generatoare a cererii de întrerupere;
• Determinarea ordinii de servire a cererilor de întrerupere, în cazul apariției simultane a mai multor astfel de cereri.
Cele două etape pot fi realizate atât software cât și hardware. Identificare sursei generatoare a cererii de întrerupere se face în funcție de legătura dintre canalul de transfer al cererii, registrul sau registrele de memorare al acestuia și adresa de memorie unde se află adresa rutinei de servire a întreruperilor sau prima instrucțiune a rutinei de servire a întreruperilor. Pentru a determina ordinea de servire a cererilor de întrerupere, trebuie scanate toate canalele de transfer pentru cererile de întrerupere sau a registrelor corelate cu acestea într-o anumită ordine prestabilită hardware. În acest proces de scanare, primul canal "activ" (cel care generează o cerere de întrerupere) va fi cel care va fi "servit", și va declanșa procesul de execuție a rutinei de servire a întreruperilor corespunzătoare.
Pentru logica de întrerupere în cazul unui MC avem doi biți principali:
Bitul de interrupt enable(IE) este setat de aplicație și arată că la apariția cererii de întrerupere , controlerul va apela o RTI ( întrerupere de timp real);
Bitul de interrupt flag (IF) este setat automat de MC în momentul producerii sistemului de întreruperi. Acesta poate fi resetat la automat la saltul către RTI, sau prin program. Majoritatea producătorilor oferă proiectantului un flag de validare/invalidarea globală a întreruperilor, ce permite utilizatorului să modifice așa cum vrea mecanismul de acțiune la apariția unui întreruperi: poate permite sau inhibă o întrerupere prioritară apărută ulterior uneia mai puțin prioritare, această acțiune având loc doar pe durata cât aceasta este servită.
Bitul IF indică faptul că s-a produs evenimentul de întreruperi, în timp ce IE permite servirea evenimentului respectiv.
Fiecare sursă, sau tip de sursă de întreruperi are biți IE și IF alocați.Dacă mai multe surse similare de întreruperi sunt mapate către un singur bit IE, se alocă câte un bit IF fiecărei surse de întreruperi, pentru a se putea determina sursa. Controlerul mai conține și biți de control, în registere speciale, ce permite setarea modului de întreruperi (“interrupt mode”) al unora din surse. Bitul IE este folosit pentru invalidare globală a întreruperilor, iar IF se setează la apariția evenimentului ,chiar dacă o întrerupere este invalidată prin fanionul său de IE.
Unele microcontrolere prezintă o tabelă a vectorilor de întrerupere cu adrese fixe, specifice canalelor întrerupătoare, iar altele permit plasarea tabelei vectorilor de întrerupere la adrese de memorie ce sunt stabilite de către proiectant. Pentru a putea asocia o întrerupere cu o anumită rutină din program, procesorul utilizează o tabela a vectorilor de întrerupere. Tabela vectorilor de întrerupere (TVI) conține câte o intrare pentru fiecare vector de întrerupere ,fiecare vector având câte o adresă pre-definită și mapată în TVI. La adresa vectorului, aplicația înscrie fie adresa de început a RTI,fie o instrucțiune de salt către RTI. Adresele întreruperilor în TVI sunt setate în funcție de prioritatea lor, cu cât adresa este mai mica cu atât prioritatea lor este mai mare.
Pentru ATMG328 avem următorul TVI:
După cum se poate observa în tabelul de mai sus, TVI este plasată de la prima adresă din memorie , iar întreruperile sunt puse din două în două adrese consecutive. Prioritatea cea mai mare o are întreruperea RESET, care se află la adresa 0, fiind urmată apoi de întreruperea externă INT0. Perifericele care pot determina generarea întreruperilor, în acest caz sunt: timerele (TIMER,WDT), interfața serială USART, convertorul analog-digital (ADC), controlerul de memorie (EPROM), compartorul analog. Procesorul mai poate primi și cereri de întreruperi externe din (INT0,1,2) ce corespund unor pini externi adecvați.
Întreruperile pot fi activate sau dezactivate de utilizator în program, prin setarea individuală a biților de IE (interrupt enable) pentru fiecare perific utilizat și prin setarea indicatorului de “Global Interrupt Enable” din SREG (status register –registrul de stare).
Figura ..
În concluzie, întreruperile reprezintă o parte important a microcontrolerelor și ajută la gestionarea mai eficientă a fluxului de execuție a unui program implementat. O întrerupere reprezintă un semnal sincron sau asincron de la un periferic ce semnalizează apariția unui eveniment care trebuie tratat de către procesor. Tratarea intreruperii are ca efect suspendarea firului normal de execuție al unui program si lansarea în execuție a unei rutine de tratare a intreruperii (RTI). Dacă în mod normal un procesor ar trebui să ruleze în buclă infinită testând în permanență anumite periferice, întreruperile hardware au fost introduse pentru a se elimina respectivele bucle. Folosind un sistem de intreruperi, perifericele pot atenționa procesorul în momentul producerii unei întreruperi (IRQ), acesta din urmă fiind liber să-si ruleze programul normal în restul timpului si să isi întrerupă execuția doar atunci când este necesar. Înainte de a lansa în execuție o rutină de tratare a intreruperii (RTI), procesorul trebuie să aibă la dispoziție un mecanism prin care să salveze starea în care se află în momentul apariției întreruperii. Aceasta se face prin salvarea într-o memorie, a registrului contor de program (Program Counter), a registrelor de stare precum si a tuturor variabilelor din program care sunt afectate de execuția RTI. La sfârsitul execuției RTI starea anterioară a registrelor este refacută si programul principal este reluat din punctul de unde a fost intrerupt.
3. REALIZAREA PRACTICĂ
3.1 DESCRIERE COMPONENTE
3.1.1 Arduino Uno V3
Arduino este o placă de dezvoltare open-source bazată pe software și hardware ușor de folosit, ce poate realiza diferite proiecte electronice. Aceasta platformă este bazată pe processor Atmega de la Atmel , și poate fi programat utilizând IDE-ul oferit, într-un limbaj C simplificat, folosind doar comenzile de baza. Platforma este de dimensiuni mici, construită în jurul unui procesor de semnal , fiind capabilă de a prelua date din mediul înconjurator printr-o serie de senzori și de a efectua acțiuni asupra mediului prin intermediul luminilor, motoarelor, servomotoare, și alte tipuri de dispozitive mecanice. Arduino deține mai multe modele de astfel de plăci de dezvoltare, cum ar fi: Arduino Uno, Leonardo, Due, Mega, Mini, LilyPad, Nano, etc.
Arduino Uno este cel mai cunoscut model și cel mai des utilizat, având la bază microcontroller-ul Atmega 328. Acest model are 32KB memorie flash ce poate fi programată (0.5 KB folosit de bootloader), 2 KB SRAM și 1KB EEPROM și conține 3 tipuri de pini:
1)pinii de curent marcați cu GND,Vin, 5V, 3.3V, etc;
2)14 pini digitali de intrare/ieșire(numerotați de la 0-13), dintre care 6 pot fi considerați a fi PWM pentru ieșiri;
3) 6 pini analogici de intrare(A0-A5).
Arduino Uno poate fi alimentat folosind conexiunea USB, sau printr-o sursă de alimentare externă. Sursa de alimentare internă fiind selectată automat. Alimetarea externă se poate face fie folosind un adaptor AC/DC, fie o baterie. Placa permite o alimentare externă între 6-20V. Este recomandată realizarea unei alimentării externe între 7V-12V pentru a evita distrugerea plăcii.
Pinii de putere sunt:
1) Vin este un pin de intrare ce permite alimentarea externă;
2) Pinul de 5V alimentează placa intern cu 5V, de la regulatorul de pe placă.
3) Prin pinul 3V3, placa este alimentată intern cu o tensiune de 3,3V de la regulatorul plăcii, cu un current de maxim 50mA;
4) GND sunt pinii de masă;
5)IOREF acest pin oferă tensiunea de referință cu care functionează microcontroller-ul de pe placă.
Pe langă aceste componente placa mai conține și un buton de reset si led-uri. Butonul de reset este foarte important, rolul acestuia este de a reseta Arduino și de a reporni programul încarcat în memoria chip-ului. Întâlnim led-uri de control marcate prin pinii Tx/Rx, care indică daca avem sau nu comunicare între Arduino și alte dispozitive, și un led conectat direct la pinul 13, ce poate fi utilizat ca un led normal.
3.1.2 Motorul Stepper
Pentru a deplasa camera pe cele două direcții am folosit două motoare stepper Nema 17, 42BYGHW811, acesta este un motor pas cu pas hibrid, bipolar, cu 4 faze.
Motorul pas cu pas hibrid este cel mai utilizat și răspandit tip de motor, acesta reprezintă o combinație între motorul cu reluctanță variabilă și cel cu magnet permanent. Este format dintr-un rotor ce conține doi poli separate printr-un magnet permanent axial, cu dintele opus față de cel corespunzător la o distanță egală cu jumătate din înălțimea unui dinte, pentru a avea o rezoluție mare la pășire.
Motoarele pas cu pas bipolare sunt cel mai simplu de realizat, dar driver-ele care le direcționează sunt mai complexe, acestea având rolul de a inversa polaritatea fiecarei perechi de poli(figura..a)
Figura..a)inversarea polarității fiecarei perechi de poli
b) conectarea bobinelor
Motorul 42BYGHW811 este un motor hibrid bipolar cu 4fire. Recunoașterea unui motor bipolar de alte motoare cu 4 fire se face prin măsurarea rezistenței dintre terminale.
Comanda unui astfel de motor se face printr-un circuit de comandă format dintr-o punte H. Puntea H permite controlarea independentă a polarității tensiunii aplicate la capetele fiecărei bobine.
Caracteristicile tipului de motor folosit:
3.1.3 Driverul DVR8825
Un motor de curent continuu poate fi controlat într-un anumit sens cu o anumită viteză, atâta timp cât este aplicată la bornele sale o tensiune. MPP funcționează diferit, o rotație completă a acestora este compusă din mai mulți pași, fiecare pas fiind de fapt o fracțiune din rotația completă a motorului. Controlul acestora este mai greu de realizat, decât în cazul unui motor de current continuu. Pentru a controla mai ușor un motor stepper am folosit în lucrare o placă Arduino și un driver specializat (DVR8825) pentru controlul motorului pas cu pas, întrucât microcontroller-ul de pe Arduino nu poate comanda direct bobinele motorului. În general, driverele setează curentul de microstep la 70%, deci un driver trebuie reglat/setat la curent mai mare ca să bage același curent în motor și respectiv să dea aceeași putere. La micropășire frecvența începe să treacă de zona audibilă pentru urechea umană. De la 1/8 e chiar silentios, iar de la 1/16 abia se mai aude. Diferențele sunt extreme față de fullstep și motoarele devin extrem de "silențioase".
DVR8825 este un driver care comandă motorul în pași foarte mici. Această tehnică de comandă a motorului poartă numele de microstepping,adică împarte un pas în mai mulți pași mai mici(micropași). Această împarțire se poate face în 6 moduri:full step(pas întreg), 1/2 pas, 1/4-pas, 1/8-pas, 1/16-pas, și 1/32-pas. Spre exemplu daca avem un MPP ce realizează o rotație de 1.8°(200 de pași pe rotație) prin folosirea modul de împarțire ¼ al pasului vom obține 800 de micropași pentru o rotație completă, pentru nivele diferite de curent.În acest mod motorul se va roti cu o precizie(rezoluție) ridicată. Dispozitivul DVR8825 conține 2 drivere în punte H , el poate controla un motor sterpper bipolar sau 2 motoare și furnizează până la 2,5 A peak sau 1.75 A RMS.
Schema de conectare a driver-ului cu Arduino și cu motorul stepper.
Pentru a conecta driverul la arduino și la motor , mai avem nevoie de o sursa de alimentare externă și de un condensator de 100F. Acest driver permite o alimentare de la o sursa externă , cuprinsă între 8.2-45V, sursă ce trebuie conectată între VMOT și GND. Pentru alegerea sursei de alimentare, trebuie avuți în vedere parametrii caracteristici ai motorului: tensiunea de alimentare și consumul. În cazul acesta motorul va fi alimentat de la o sursă de 12V. DVR8825 poate controla un motor stepper bipolar cu 4/5/6 fire. Oferă un current maxim de 2.5 A pentru fiecare bobină.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sistem de Supraveghere Video (ID: 163535)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
