Vargaattilalicenta.docx [631114]
1
CUPRINS
1 Introducere ………………………….. ………………………….. ………………………….. …………………….. 3
1.1 Stadiul actual în domeniul prelucrării CNC ………………………….. ………………………….. . 3
1.2 Tema proiectului ………………………….. ………………………….. ………………………….. ………. 4
1.3 Structura lucrării ………………………….. ………………………….. ………………………….. ………. 4
2 Proiectarea sistemului ………………………….. ………………………….. ………………………….. ……… 5
2.1 Specificatii funcționale ………………………….. ………………………….. ………………………….. 5
2.2 Arhitectura propusă ………………………….. ………………………….. ………………………….. …… 7
2.2.1 Schemă bloc ………………………….. ………………………….. ………………………….. ………. 7
2.2.2 Schema mecanică ………………………….. ………………………….. ………………………….. . 8
2.2.3 Componentele folosite în sistem ………………………….. ………………………….. ……….. 8
2.3 Resurse necesare ………………………….. ………………………….. ………………………….. ………. 9
2.3.1 Hardware ………………………….. ………………………….. ………………………….. ………….. 9
2.3.2 Sistem de control al mașinii ………………………….. ………………………….. ……………. 10
2.3.3 Motoare și drive re ………………………….. ………………………….. …………………………. 12
2.3.4 Sursă de alimentare ………………………….. ………………………….. ……………………….. 15
2.3.5 Senzori și traductoare ………………………….. ………………………….. ……………………. 16
2.3.6 Afișaje ………………………….. ………………………….. ………………………….. …………….. 18
2.3.7 Rezistențe reglabile ………………………….. ………………………….. ……………………….. 19
2.3.8 Joystick ………………………….. ………………………….. ………………………….. …………… 20
2.3.9 Motor de frezare ………………………….. ………………………….. ………………………….. . 21
2.3.10 Software ………………………….. ………………………….. ………………………….. ………….. 21
3 Mecanică ………………………….. ………………………….. ………………………….. ……………………… 22
4 Implementarea sistemului ………………………….. ………………………….. ………………………….. . 26
4.1 Principiul de comandă al Motoarelor pas cu pas ………………………….. ………………….. 26
4.2 Principiul de măsurare ………………………….. ………………………….. …………………………. 28
2
4.3 Utilizarea afișajelor de tip LCD ………………………….. ………………………….. …………….. 32
4.4 Comanda cu joystick ………………………….. ………………………….. ………………………….. .. 34
5 Implementa rea software ………………………….. ………………………….. ………………………….. …. 36
5.1 Diagrame de activitate ………………………….. ………………………….. …………………………. 36
5.2 Inițializări , biblioteci, întreruperi, temporizări ………………………….. ……………………. 38
5.3 Comunicație ………………………….. ………………………….. ………………………….. …………… 43
5.4 Mod automat ………………………….. ………………………….. ………………………….. ………….. 44
6 Rezultate experimentale ………………………….. ………………………….. ………………………….. …. 47
7 Concluzii ………………………….. ………………………….. ………………………….. ……………………… 63
8 Anexe ………………………….. ………………………….. ………………………….. ………………………….. 64
9 Bibliografie ………………………….. ………………………….. ………………………….. …………………… 71
3
1 INTRODUCERE
1.1 STA DIUL ACTUAL ÎN DOMENIUL PRELUCRĂ RII CNC
Mașină -unealtă cu comandă numerică este un echipament complex dotat cu sisteme de
comandă și control numeric a deplasărilor. Mașinile -unelte cu control numeric sunt dotate cu o
memorie care permite păstrarea programului.
Cont rolul numeric se referă în general la automatizarea proceselor mașinilor unelte prin
programarea unor seturi de comenzi care vor fi înregistrate (Codul -G), respectiv programate pe
un dispozitiv extern. Conform acestei definiții se poate considera că prima mașină cu comandă
numerică este mașina de țesut concepută de Jacquard (1800) care utiliza o bandă perforată
pentru stocarea respectiv execuția unui set de instrucțiuni diferit. De asemenea se pot considera
ca predecesoare ale acestui sistem de lucru cutiil e muzicale, automatizarea cu ajutorul camelor.
CNC (Computer Numerical Control) poate fi de mai multe tipuri și are diverse
performanțe de care este capabil ă mașina.
Tipuri de mașini folosite cu comandă numerică sunt strungurile și frezele care sunt
numi te ca și centre de prelucrare, mașina care decupează cu ajutorul jetului de apă sau a puterii
razelor de l aser și plasmă , mașini le cu tăiere prin eroziune bloc și eroziune la fir.
Mașini le de tip CNC sunt programa te cu ajutorul codurilor G și M, care sunt coduri
generale pentru fiecare tip de maș ină, Fiecare mașină posedă doar mișcările de care este dispus
softwar e-ul acestuia .
Importanța mașini lor CNC este:
o Timp de prelucrare mai mică, deoarece au schimbare de sculă și mișcarea
acestora mai rapidă;
o Nu tr ebuie folosite scule speciale și complicate pentru efectuarea pieselor
complexe;
o Au memorie internă pentru ușurarea executării pieselor;
o Precize mare pe un interval de timp mică
o Nu este necesară folosirea CTC -ului pentru efectuarea pieselor complexe;
o Se po t realiza aproape orice tip de piese la precizii foarte bune;
4
1.2 TEMA PROIECTULUI
Tema acestei lucrări este coordonarea și construirea unei mașini de frezat CNC cu trei
axe, care permite prelucrarea materialelor moale (lemn, aluminiu, plastic, …) și totodata studiul
mișcării a celor trei axe .
Tematica proiectului este in primul rând studiul mișcării axelor, măsurarea precizie
mașinii și a mișcărilor efectuate de operator cu ajutorul unei interfațe construite. Proiectul are
două mari părți: parte a automată c omandată de către un controller dedicat cu un PIC 18F4550
și partea manual ă concepută din A rduino programat de că tre operator.
Pe parte a manuală discutăm de mișcarea axelor cu ajutorul a celor două joystickuri
analogice, iar pe parte a automată se cercetează mișcarea 3D a mașinii.
În tematica proiectului trebuie să discutăm ca și cercetare precizia mașinii construite cu
ajutorul aparatelor de măsurare folosite la construire mașinii CNC.
Mașina proiectată se încadrează în categoria masinilor -unelte de tip hobb y, dar poate fi
folosit și la frezări complexe 3D.
1.3 STRUCTURA LUCRĂRII
În capitolul numărul doi cu numele ”Proiectarea sistemului ” discutăm despre
specificațiile m așinii CNC, prin acest lucru inț elegem prezentarea a tuturor funcțiilor pe care
trebuie să a sigure sistemul, mașina CNC, pentru a avea o mișcare liniară a celor trei axe a
mașinii. Tot aici este vorba despre arhitectura propusă unde regăsim schema bloc și schema
mecanică a proiectul ui și explicații despre rolul componentelor din sistem. În acest capitol
găsim enumarate și explicate resursele necesare petru partea de hardware, software și mecanic.
În capitolul numărul trei cu numele ”Implementarea sistemului” găsim componentele
sistemului, cu scheme de conexiune fizice, folosirea elementelor care i nterpretează mișcarea
axelor, funcționalitatea și structura acestora. Se discută de comanda motoarelor pas cu pas, de
măsurarea mișcărilor liniare a axelor și utilizarea LCD -urilor pentru afișarea rezultatelor
masurate . Comanda cu joystickurile face parte tot din acest capitol.
5
În capitolul numărul patru cu numele ”Implementarea software” este prezentată diagrama
de activitate a sistemului comandat, p rin schemă principală a mașini ș i dezvoltarea acestui
scheme pe parți mai mici, discutâ nd fiecare parte sepa rată. Găsim documentația despre
comunicarea mași nii cu interpretorul, inițializă ri, biblioteci, întreruperi, exemple de cod și
prezentarea modului automat a mașinii CNC cu ajutorul picului dedicat și a programului dedicat
acestui pic.
În capitolul numărul cinci cu numele ”Rezultate exp erimentale” sunt reprezentate
măsurăto rile efectuate in cele două moduri (automat, manual), cu ajutorul senzorilor de distanță
de tip ultrasonic și encoderului prin mai multe metode, și reprezentarea avansul ui mașinii.
2 PROIEC TAREA SISTEMULUI
2.1 SPECIFICATII FU NCȚIONALE
Pentru tema proiectului de licență am ales coordonarea celor trei axe. Pe baza acestei
teme am ajuns la concluzia să îmi construiesc o mașina CNC pe trei axe, mai precis o mașină
de frezare a pieselor din materi ale moi cu comandă numerică.
Mașina construită , fiind o freză cu coma ndă numerică este capabilă de executarea
pieselor din materiale moi , cum ar fi lemn, aluminiu, plastic, poliamide, dar și pentru gravarea
anumitor piese cum ar fii plăcile electronice f olosite în aparatele electrice.
Constuirea mașinii pentru proiectarea licenței respectă următorii pași în proiectarea
planurilo r pentru a putea fi executate piesele din care s -a construit mașina. Toa te planurile au
fost făcute în Inventor și asamblat pen tru a putea fi vizualizat graf ic pe calculator ansamblul
proiectului. Piesele mecanice a mașini i s-a fabricat pe o mașină CNC din aluminiu, iar ghidajele
și șuruburile au fost achiaziționate din magazine. Mașina are o structură de aluminiu cu ghidaje
liniar e pe bile și pe rulmenți liniari, iar mișcarea mașini este executat cu ajutorul șuruburilor pe
bile și trapezoidale.
Pe parte de el ectronică s -a folosit două microcontrolere care dirijează mașina, motoare
pas cu pas pentru mișcarea axelor, și joystickuri pentru mișcări manual e, potențiometre pentru
reglarea vitezei și a preciziei, afișaje pentru vizualizare mișcări.
6
S-a folosit un controler cu un pic dedicată care recunoa ște codurile -G, coduri le folosite
în programarea CNC -urilor, sunt pentru utilizarea a utomată a mașinii. Se fol osește pentru
mișcări și teste î n domeniul de automatizare a mașiniilor CNC. Contribuția mea cu acest PIC
este o parte mică, dar totuși s -au efectuat multe reglaje până la o mișcare corectă și precisă a
mașinii. Un alt controler fo losit este un ArduinoMega folo sit pe partea manuală. Pe această
parte , controler ul,fost folosit pentru mișcarea axelor cu ajutorul joystickurilor, și prin
intermediul de programare software și hardw are al Arduino -ului s -a executat măsurătoriile
parametrilo r și s -a realizat rezultate privind măsurătoarea poziției, al accelerației și a vitezei.
Princ ipul de bază a proiectului este studierea mișcării axelor, acesta însemnând
măsurarea și cercetarea mișcării totale a mașinii, precizia mișcării și reglarea vitezei de mișcare
a mașini. Pentru verificarea preciziei mașinii , s-au folosit senzori și traducto are incrementali de
rotație după care s -a ajuns la o concluzie finală despre precizia mișcării , despre greutatea de a
construi și a programa o mașină CNC.
Mașina în final est e o mașină cu o precizie de cinci sutimi. Ace st lucru este dat de partea
mecanică bine gândită. Construirea mașinii s -a efectuat din aluminiu de tip 7005 cu gidaje
liniare precise și șuruburi trapezoidale ș i pe bile cu precizie de sub două sutimi. Mașina are ca
și suprafață de prelucrare pe axa X 500 pe axa Y 700 și pe axa Z 150 d e milimetrii, iar gabaritul
mașinii este de 1000x700x500 mm.
Mașina este mișcată cu ajutorul motoarelor pas cu pas nema23 și 24 , iar controlat prin
drivere separate de tip TB6600 și două controlere , unul dedicat pentru G coduri și un Arduino.
Pentru co ntrolarea și mișcarea axelor s -au folosit joystickuri și interfață programelor,
iar pentru măsurar ea preciziei s -a folosit traductoare incrementali de rotație și senzori, la care
rezultate le se pot observa pe afișajele legate la mașină.
7
2.2 ARHITECTUR A PROPUSĂ
2.2.1 SCHEMĂ BLOC
În figura2.1 este reprezentată schema bloc a sistemului propriu de mișcare a celor trei
axe în modul manual și automat. În schema este evidențiat ă cele 2 controlere, cel dedicat și
Arduino -ul La aceste controlere sunt legate cele trei drivere împreună cu motoarele pas cu pas
pentru fiecare axă. Totodată se poate vedea cele trei traductoare incrementali de rotație , cele
trei senzori ultrasonice și potențiometrele folosite pentru reglarea vit ezei și a pasului. Arduino –
ul și joy stick -urile sunt într -o relație sistematică pentru mișcarea axelor, și afișajele pe care se
pot vizualiza rezultatele obținute prin experiment dar și viteza și pasul motoarelor.
Figura2.1 Schemă bloc a mașinii CNC
8
2.2.2 SCHEMA MECANICĂ
În figura de mai jos este reprezentată schema mecanică a sistemului, reprezintă schema
mecanică a unei mașinii CNC pe 3 axe.
Figura reprezintă mișcarea celor trei axe (X, Y, Z ) , mișcarea in st ânga și în dreapta față
de poziția actuală , componentele electronice , cum ar fi motoarele pas cu pas atașată pe fiecar e
axă și motor ul de frezare atașată pe axa Z.
2.2.3 COMPONENT ELE FOLOSITE ÎN SISTEM
Părțile componente ale mașinii pot fi împărțite în trei module care alcătuiesc sistemul
de mișcare a celor trei axe:
o componente mecanice
o componente electronice hardware
o compon ente software (interfața programelor cu care lucrează sistemul)
Comp onentele mecanice :
-plăcile de alumi niu executate pe o mașina CNC
-ghidajele lineare și ghidajele executate din bare calibrate
-suporturile motoarelor Figura2.2 Schemă mecanică a mașinii CNC
9
-șuruburilor trapezoidale și bile c are mișcă mașina în cele trei direcții
-suportul motorului de frezare
-suportul ghidajelor lineare, profilele care leagă parțile componente a axei ”Y”.
Componentele hardware a sistemului sunt următoarele :
-controler pentru coordonarea driverelor
-drivere pentru controlul motoarelor pas cu pas
-motoare pas cu pas
-senzori de distanță
-senzor numărător de pulsuri
-joystick
-potmetru
-intrerupătoare
-sursă de alimentare
Componentele software a sistemului sunt:
-Arduino IDE
-USB CNC Controller
2.3 RESUR SE NECESARE
2.3.1 HARDWARE
La partea de hardware putem discuta de compo nente care face rela ția între operator și
mașina însuși. Majoritatea mașiniilor CNC sunt controlate de controlere dedicate cu
microprocesoare, unele având mai multe controlere, cum ar fi controler ul pentru partea manuală
separată față de ca comandată prin coduri G, și u nele având chiar separat pentru fiecare axă,
acestea fiind legate la un procesor principal care reglea ză toate acele mișcări care execută
10
mașina. Cele mai cunoscute firme de controlere sunt Siemens -ul, Samsung -ul, Fanuc -ul, Haas –
ul etc.
2.3.2 SISTEM DE CONTROL AL MAȘINII
• Control manual
Eu am decis să aleg două controlere: un controler este dedicat pentru masurătorile
efectuate, mișcări ale axelor independenter, reglajul mișcări lor(viteză, acelerare, precizie), acest
controler este un Arduino Mega 2560 , deoarece pentru acest proiect era necesar un numar mare
de pinuri (Input, Output și Analog). Arduino Mega2560 este un controller bazat pe un
microcontroller cu o tensiune de alim entare intre 7 si 12 volti cu o tensiune de lucru de 5volti.
Placa de dezvoltare are 54 de pini digital care se pot folosi ca pini de intrare și de ieșire, și din
aceste 54 de pini 14 sunt pini de PWM de ieșire și 16 pini analogice. Curentul de ieșire este 40
miliamperi , are o memorie de 256 de kbyte și un clocke de 16 Mhz.
• Control automat
Pe partea de control automat am ales un control er dedicat , care folosește un
PIC18F4550, deoarece acesta este capabil să realizeze controlul celor trei axe deodată, dar
totodată având dotări asemănătoare față de mașinile mari din industrie. Unitatea de control are
următoarele caracteristici :
Figura2.3 Ardunino Mega
11
• controlat de microcontroler
• logică liber programabile
• memorie internă pentru stocarea programelor
• aplicabilitatea ciclurilor de programe și subprograme
• detectarea defectelor utilajului
• Conexiune USB
• Limitatoare
• Compatibilitate software -ului (SolidCAM, Mastercam, ArtCAM, Vectric,
Cambre, MeshCAM)
Unitatea de control este cre ierul unui mașini -unelte programabile , importanța majoră
este să fie făcut ă cu caracteristici adecvate. Am selectat unitatea de co mandă, de control al
motorelor care permite conectarea și controlul a 3 motoare . Am găsit -o extrem de important ă
pentru conectivitate USB, pentru că în lumea digitală de astăzi este mult mai accesibil ă opțiunea
de comunicare, decât cel PARALEL. Placa de control respectă t oate caracteristicile de care are
nevoie mașina cu comandă numerică . Unitatea de control este construit ă în jurul unui
microcontroler ce ntral, modelul microcontroler este : PIC18F4550.
Motoarele pas cu pas sunt funcționate,antrenate prin unitatea de comandă , parametrii
unității de acționare depind în mare m ăsură de performanța motorului. Controlerul dedicat este
capabil de a controla 4 motoare pas cu pas simultan. Fiecare axă , motor pas cu pas controlat
are:
• PC GND : Null -ul comun pentru semnalul step și dir;
• STEP : De asemenea, este cunoscut ă sub numele de semnal pas cu pas. N ivelul de
semnal standard 5V TTL (Transistor to Transistor L ogic), frecvență de până la 8MHz,
capacitate 20mA ;
• DIR: semn alul direcție i, direcția de rotație a sem nalului de control al motorului pas cu
pas, semnal de ieșire standard 5V TTL, c apacitate: 20mA ;
12
• + 5V ENABLE :Semnal ul de ieșire pentru activare a controlului . Cardul de interfață
este interzi să rămâne în nivelul de semnal 0V, ace asta este restricționat ă pentru controlul
motorului conectat , până cân d cardul nu este permisă de controler . Această valoare se
schimbă la +5V , iar cardul se modifică de la inte rzis la permis, atunci se poate folosi
semnalul pent ru driver care poate mișca sistemul controlat. Un LED roșu indică starea
activă a cardului.
2.3.3 MOTOARE ȘI DRIVERE
Mașini le CNC din industrie au motoar e sincrone sau asincrone de cur ent alternative
pentru mișca rea axelor. Mai nou se folosesc motoarele de tip servo motoare care sunt contr olate
de către un driver dedicat de producătorul controlerului și a mașinii CNC. Aceste mașini au o
precizie mult mai bună cu aceste motoare și drivere față de cele folo site de mine. Eu am ales
motoare pas cu pas de tip nema24 pentru axa Y și nema23 pentru axa X și Z de 1.8 grade, și
Figura2.4 Controler dedicat bazat pe PIC18F4550
13
niște drivere ușor programabile până la o precizie de 1/16 impuls, ace sta insemnănd ca 1.8 grade
sunt împărțite în 16.
Driver ul TB6600 sunt dedicate pentru motoarele pas cu pas cu o put ere și consum mare.
Acesta dirijează cu ajurorul împărțirii pulsurilor , în cazul de față tensiunea motorului îl împarte
între cele două bobine , cu cât împărțim în mai multe părți, cu atât crește numărul puls urilor
între două pasuri intregi al motorului.
Driverul TB6600 este un driver care funcționează la o tensiune de alimentare între 12V
și 40V, cu un curent la ieșire cuprinsă între 0.6A și 4,5A. Driver ul poate fi reglat pentru
următoarele microstep -uri: 1, 2, 4, 8, 16. Este dispus ă de protecția la supraîncălzire, protecție la
supratensiune, de legare alim entară și are o protecție invers ă.
Intrările și ieșirile driverului:
o DC+ : polul positive a sursei de current continu u
o DC- : patodul sursei de current continu u
o A+, A – : o bobină a motorului pas cu pas
o B+, B -:cealaltă bobină a motorului pas cu pas
o PUL+, DIR+, ENA+ : se leagă la +5V
o PUL -:impulsuri date motorului pas cu pas
o DIR- : controlul direcției (pentru valoarea HIGH motorul se învârte în față,
pentr u LOW în sens opus)
o ENA -: motorul în funcțiune liberă
Figura2.5 Driverul TB6600 pentru motoare pas cu pas
14
O definiț ie simpl ă a motorului pas cu pas este: un dispozitiv electromecanic care
converte ște impulsurile electrice în mi șcări mecanice discrete .
Beneficiile motorului pas c u pas:
o Rotația unghiulară a motorului este proporțională cu pulsul electric aplicat
o Motorul are moment maxim în poziția oprit ă dacă bobinele sunt alimentate;
o Poziționare precisă, cu o eroare de 3 -5% la un pas;
o Răspunsuri excelente la pornit/oprit/schimbar ea direcției de rotație;
o Fiabilitate excelentă , deoarece nu există perii de contact la motor;
o Posibilitatea de a obține viteze foarte mici cu sarcina legată direct pe axul
motorului;
Figura2.6 Conexiunea driverului cu motorul pas cu pas și cu controller
Figura2.7 Motor pas cu pas Nema23
15
o gamă foarte largă de viteze de rotație;
La alegerea motoarelor pas cu pas s -a folosit un factor de rezistență de 5 . Pentru acest
lucru s -a efectuat cu ajutorul unui program și prin anumite calcule pentru alegerea motoarelor
pas cu pas.
𝑀𝑛≈5 ∙ 𝑀𝑀[𝑁𝑚]
Ecuația 2.1 Ecuația factorului de rezistență
Prin calcu le s-a luat în considerare greutatea mașinii, factorul de mi șcare a ghidajelor,
pasul axelor, forța de mișcare și sarcina mașinii. În final s -a calculat sarcina sta tică și dinamică
a mașinii, după care valoare a acesteia s-a înmulțit cu 5 și am ajuns la decizi a să achiziționez e
motoarele pas cu pas din Tabelul2.1
Parametri motoarelor pas cu pas
Parametri motoarelor
pas cu pas Axa Y Axa X,Z
Sarcină: [Nm] 3 2
Curent de fază: [A] 3 3
Tensiune: [V] 3.9 2.8
Inductivitatea pe fază:
[mH] 3.2 3.6
Numărul firelor : [db] 8 8
Lungime: [mm] 88 110
Grosimea axelor: [mm] 8/6.35 10/10
Tabelul 2.1 Tabel cu parametrii motoarelor pas cu pas
2.3.4 SURSĂ DE ALIMENTARE
Ca și sursă de alimentare în industri e pentru mașini se folosește curent alternativ
de 220V și cu rent trif azat de 380V, acesta alimentează toată mașina, dar unele sensor lucrând
la 12 sau 24 volți sunt folosite transformatoare de ten siune. În proiectul meu am folosit o sursă
de tensiune de la sursă general de alimentare 220V, dar am folosit și un transformator pen tru
16
drivere și motoare de 48V la 10A, dar și o sursă de alimentare pentru controlere luat de la
ieșiriile de USB.
Sursa de alimentare folosită este o sursă de curent continuu de 500W. Sursa de
alimentare are 3 ieșiri de tensiune care se poate regla cu aj utroul potmetrul ui atașat pe sursă,
astfel acesta poate să scoate o tensiune intre 36V și 48V la 10A. Sursa de alimentare ca și
tensiune de intrare are tensiunea din rețea de 230V/50Hz. Sursa este echipată cu siguranță de
supraîncărcare și suprareglaj sau de scurt circuit.
2.3.5 SENZORI ȘI TRADUCTOARE
Toate mașiniile de tip CNC au în dotare senzori și traductoare pentru o precizie cât mai
eficientă , aici vorbind despre microni, iar senzorii sunt pentru masurători aproximabile și pentru
limitările mașinii. La m așina mea am folosit encoder rotativ de 400 de pulsuri pentru măsurarea
și studierea mișcării axelor, iar un senzor cu ultra sunet pentru măsurători aproximative și
delimitarile mașinii, iar în viitor doresc să folosesc niște senzori de proximitate de tip PNP.
Encoderul rotativ este potrivit pentru o varietate de control inteligent al mașiniilor
automate pentru măsurarea distanței și a impulsur ilor rotative a motoarelor, numă rul de faze
efectuate al motoarelor pas cu pas. Astfel se poate folosi la măsurare a vitezei de rotire,
măsurarea distanței efectuate, pentru a putea fi calculat eroare pasului mașinii CNC și corectarea
pentru o rezoluție a mașinii cât mai eficient ă.
Figura2.8 Sursă de alimentare
17
Mărime a compactă, greu tate redusă și ușor de instalat ă. Măsurare a destul de precisă, o
rotire intreagă de 400 de impulsuri.
Codificator ul rotativ incremental cu AB două faze, generat de rotația discului gradat și
de dir ecția opto -identificabilă. Sursa de alimentare între 5 -24V. Viteză mai mare de 5000 de
rot/min, axa de 6mm , lungimea de 3 9mm și diametrul de 36mm.
Conexiune firelor:
• faza A -verde
• faza B -alb
• Vcc tensiu ne de alimentare +5V -roșu
• Gnd sau V0 -negru
Senzorul ultrasonic , de tip HC -SR04, se folosește pen tru măsurarea distanței, această
măsurare nu este una de precizie mare dar es te foarte bună pentru evaluarea distanței până la o
limită impusă. Se folosesc pentru limita mașinii CNC hobby.
Acest sensor e mite ultrasunete la 40 000 Hz care se deplasează prin aer și dacă există
un ob iect sau un obstacol pe calea sune tului, va reveni semnalul imediat la modul. Având în
vedere timpul de deplasare a și viteza sunetulu i, se poate calcula distanța. Pentru a genera
ultrasunetele, treb uie să setăm Trigul la un nivel înalt pentru 10 μs. Asta va trimite o explozie
sonică de 8 cicluri care va că lători la sunetul de viteză și va fi recepționată în pinul Echo. Pinul
Echo va scoate timpul, în microsecu nde.
Figura2.9 Traductor incremental de rotație
18
• Vitez a sunetului = 340m/s = 0.034cm/µs
• Timpul = distanță/viteza sunetului = distanță/0.034
Ecuația2 .2 Ecuația timpului măsurate cu senzorul ultra sonic
• Distanța = timpul*0.034/2
Ecuația2.3 Ecuația distanței măsurate cu senzorul ultrasonic
2.3.6 AFIȘAJE
Mașini le din indus trie sunt dotate de obicei cu un singur LCD iar toate mișcările și
reglajele ale mașinii poate le vedea operatorul . Pentru acest l ucru eu am decis să aleg două LCD
uri, una pe 4 linii cu 20 de coloane, iar una cu 2 linii și 16 coloane.Pe cea de 16 coloane afișez
viteza și pasul motoarelor, iar pe cea cu 20 de coloane afișez poziția mașinii cu valori absolute
și relative măsurate de e ncode r și senzor.
LCD cu 4 1inii și 20 de coloane, LCM2004 , este un modul serial de afișare a caracterelor
LCD cu o magistrală serial SPI / I2C de mare viteză. Ecranul LCD este de 4×20 de caractere,
albastru STN (negativ), iluminare din spate cu LED alb. Un LCM2004 este lipit pe spatele
afișajului LCD. Permite afișarea ecranului LCD prin intermediul unei magistrale seriale I2C
Figura2.10 Senzor ultrasonic HC -SR04
19
sau SPI. Contrastul și iluminarea de fundal sunt controlate de software și pot fi setate la 254
nivele.
LCD cu 2 linii și 16 coloane , este un modul foarte simplu și este foarte frecvent utilizat
în diverse dispozitive și circuite. Aceste module sunt preferate peste șapte segmente și alte LED –
uri cu ma i multe segmente. Motivele sunt că LCD -urile sunt economice, u șor de progra mate,
nu au nici o limitare de a afișa caractere speciale și chiar personalizate . Un ecran LCD de 16×2
înseamnă că poate afișa 16 caractere pe linie și există 2 astfel de linii. În acest ecran LCD fiecare
caracter este afișat în matrice de 5×7 pixeli.
La mașinile din industrie , potențiometrele utilizate ajută la reglarea vitezei atît a capului
rotativ cât și a vitezei mișcării axelor.
2.3.7 REZISTENȚE REGLABILE
Potenț iometrul este o rezistență variabilă cu ajutorul ax ei amplasate pe circuitul
potenț iometru lui. S -a folosit un potențiometru axial cu o singură tură cu o rezistență de 10kΩ
cu o putere de 100mW. S -a utilizat potențiometre mono pentru reglarea avansului motoarelor
pas cu pas și pentru reglarea luminozității LCD -urilor.
Figura2.11 Afișaj LCD2004 Figura2.12 Afișaj LCD1602
Figura2.13 Potențiometru
20
În industrie se folose ște generatorare de pulsuri manuale pentru mișcare axelor
mașiniilor dintr -un punct în altul. Ma șiniile astfel pot mișca doar pe o singură axă. Eu pentru
acest lucru am folosit niște joystickuri care folosesc la bază niște microîntrerupătoare astfel au
ca și l ogică ON -OFF.
2.3.8 JOYSTICK
La acest proiect am utilizat două joystickuri Schneider XD2PA24 , una pentru mișcare
axei X și Y iar una pentru mișcarea axei Z. Aceste joystick -uri sunt construite din câte 4
microîntrerupătoare , la maxim 10 A și o tensiune ma ximă de 600VAC. Joystickurile folosite
sunt metalice cu o lungime de 22 mm , și se pot utiliza ușor ca și operator. Aceste joystickuri
sunt folosite și ăn industrie.
Figura2. 14 Joystick Schneider
21
2.3.9 MOTOR DE FREZARE
Motorul de frezare în industrie este u n motor de 2 -3kW moto r trifazată, însă eu am ales
motorul de frezare pentru mașina CNC , una de la marca CAT modelul 6306. S -a ales acest
motor deoarece are o gamă largă de viteze între 11.500 și 32.000 care contribuie la folosirea
mai eficientă a mașinii. Motorul are o putere de 650W, o greutate de 1800g, cu rulmenți duble
și turația se poate regla de la potențiometrul aflat pe motorul de frezare. Motorul es te unul de
curent alternativ, tensiunea de alimenta re fiind de la rețea, 230V/50Hz.
2.3.10 SOFTWARE
Mașiniile de tip CNC din întreaga lume, au o parte de software a mașiniilor dedicate
numai pentru un contro ler folosit de producător pe ntru acel tip de utilaj. Acest software diferă
de la producător la producător și diferă și de modelul mașinii și de capabilității acesteia. Pentru
că în realizare proiectului am d ecis să folosesc un microcontro ler de la cei de la Ar duino și un
microcontroler dedicat de la PlanetCNC, în final am realizat să folosesc ca și parte de software
programabil un Arduino, și pe parte a de generare a codurilor a m folosit software dedicat de la
PlanetCNC cu o interfață ușor de folsoit numit USB -CNC Conto ler.
Mediul de dezvoltare integrat Arduino – sau Arduino Software (IDE) – conține un editor
de text pentru realizarea codurilor , o zonă de mesaje, o consolă de te xt, o bară de instrumente
cu butoane pentru funcții comune și o serie de meniuri. Se conectează la hardware -ul Arduino
Figura2.15 Motor de frezare
22
și Genuino pentru a încărca programe și de a comunica cu ele.
CNC -USB controler este un program pentru mașiniile CNC hobby. Programul poate fi
folosit pentru generarea programelor cu G coduri și implementarea acestora pe microcontroler.
Software -ul poate fi folosit pentru mișcarea celor 3 axe deodată cu o precizie destul de bună.
3 MECANICĂ
Partea mecanic ă a mașini lor CNC se pot împarții în trei părți, fiecare parte însemnând o
axă a mașinii. Mașina este compusă din cele trei axe X,Y,Z fiecare este construit ă în primul
rând dintr -un schelet, pe care sunt puse gidajele pentru culisarea mașinii pe fiecare axa în parte.
Fiecare direcți e a mașinii are și o axă, un șurub filetat care mișcă mașina în parțile dorite de
către operator. Cu cât scheletul mașinii CNC este mai rigid și robust, acest lucru fiind adevărat
cu cât este făcut din material cât mai dur și care nu se modifică, de acesta se folosește de obicei
fontă.
Pentru mișcarea axelor se folosesc ghidaje liniare pe bile cu căruțe, acesta fiind deobicei
cu o precizie de maximă de sutime , acest lucru fiind din cauza bilelor de precizie. Mișcarea se
face cu ajutorul șuruburilor pe bile cu pas cat mai mic posibil, deoarece astfel crește precizia
Figura2.16 Programul CNC USB Controler
23
mașinii, de obicei pe fiecare axă se folosește minim două piulițe compatibile acestor șuruburi
pe bile.
Toate piesele existente în aceste mașini rulează și se mișcă pe bilă, deoarece astfel creș te
durata de viață a elementelor care construiesc părțile mișcătoare a mașiniilor.
Mașina construită este una de tip macara, deoarece masa mașinii este fixă , și se mișcă
numa i cu motorul de frezare, adică scula, freza, cu car e se face operația propusă de către
operator.
Mașina de frezat CNC construit de către mine este una de o precizie de două sutimi
(±0,020), care este un factor destul de bun față de o mașina hobby.
Mașina este construită în principal din aluminiu , de mai multe grosimi și dimensiun i.
Ca și ghidaje s -a folosit ghidaje liniare rotunde de fi20 și rulmenți liniari și ghidaje lineare pe
șine, care sunt compuse din șină și căruță pe bile de o precise mare de către producătorul
HIWIN. Pentru mișcările liniare se folosesc șuruburi pe bile de precizie mare de la HIWIN și
șuruburi trapezoidale. Fiecare șurub este pus pe 4 rulmenți , câte două pe fiecare capăt. Acestea
sunt legate cu ajutorul unor cuplaje elastic e de motoarele pas cu pas. Fiecare motor pas cu pas
are un support de motor cu care este legat de ansamblul mașinii.
CNC axa Y
Axa Y cuprinde aproape în totalitate scheletul mașinii , aceasta este cea mai rigidă parte
a mașinii. Această parte este construita din două placi de aluminiu prelucrate de 20mm, pe care
Figura3.1 CNC pe 3 axe
24
sunt prinse cele 4 pro file Rexroth, două de 40x40mm și două profile de 40x80mm. Aceste
profile fiind prinse de scheletul mașinii cu cate două șuruburi la capete. În lateralele scheletului
sunt prinse ghidajele lineare de tip șine de la producătorul HIWIN, modelul HGH25HAZOH,
pe bile cu o precizie de sub două sutimi. Este prins pe acest schelet și motorul pas cu pas de
3Nm care mișca restul scheletului (axa X și Z) , și șurubul pe bile tot de la producătorul HIWIN
cu precizia de o sutime.
CNC axa X
Axa X a mașini este legat de c el Y cu ajutorul ghidajelor lineare din imaginea de sus,
care se află pe lateralele scheletului, și de piulița care se află sub mașină. Acestă piuliță cu
ajutorul axei filetate și a ghidajelor mișcă restul mașinii, adica scheletul de tip pod a lui Gantry.
Axa X este compusă tot din aluminiu de 20mm prelucrate pe mașina CNC, aceste plăci
construiesc lateralele mașinii și scheletul axei. Aceste place de aluminiu sunt legate cu ajutorul
profilelor Rexroth de 40x40mm , atanșate cu suruburi, și în partea de jos cu ajutorul unei profile
Rexroth și a unei plăci de aluminiu de 10mm, care contribuie la rigiditatea mașinii. Pe profilele
Rexroth se află ghidajele liniare de tip șine , de la producatorul HIWIN modelul
HGH25HAZOH, tot pe bile cu o precizie de sub două su timi. Acestă axă este coordonata de un
motor pas cu pas de 2Nm, care se afla pe partea dreaptă a mașinii, care invârte o axă, un șurub
pe bile HIWIN2005, aceasta fiind o axă de 20mm cu pas de 5. Axa este pus pe rulmenți, iar
motorul prins cu axa cu ajutoru l unei cuplaje elastic.
CNC axa Z
Aceasta este cea mai compactă parte a mașinii. Această parte a mașinii este construită
din mai multe plăci de aluminiu, Parte principal este o placă de 20mm care este prinsă de cele
două ghidaje HIWIN a axei X. Aceasta placa mai are supraetajat o placă de care este prinsă
motorul de frezare de 650W a mașinii CNC. Între această placă și cea care este prinsă de axa X
se află ghidajul linear pe rulmenți liniari de la Bosch, ghidajele liniare sunt de 20mm rectificate
de o pr ecizie de 18 microni. S -a folosit astfel de ghidaje din cauza spațiului mic a
subansamblului. Pentru mișcarea acestei axe s -a folosit tot un motr de 2Nm, dar am folosit ș urub
trapezoidal de 16mm cu pa s de 4, pentru o distribuție apasului mai bună. Motorul de frezare
este atașat cu ajutorul unei placi de aluminiu , care este prins și cu un șurub. Ghidajele HIWIN,
25
căruciorul acestora este prins de catre axa Z cu 16 șuruburi de M6. Pe spatele plăcii de aluminu
este prins și piulița șurubului pe bile a axei X .
Figura3.2 Axa X Inventor
Figura3.3 Axa Z Inventor
Figura3.4 Axa Y Inventor
26
4 IMPLEMENTAREA SISTEM ULUI
4.1 PRINCIPIUL DE COMAND Ă AL M OTOARELOR PAS CU PAS
În proiectul meu, pentru mașina CNC s -a folosit 3 motoare pas cu pas bipolare , doua de
tip nema23 cu un cuplu de 2Nm și un motor pas cu pas de 3Nm, și trei drivere ide ntice de tip
TB6600 pentru aceste tipuri de motoare.
Motorul are 4 fire, spre deosebire de cele unipolare care au 5 sau 6 fire. Pentru a putea
recunoaște un motor pas cu pas bipolare de alte motoare cu 4 fire se măsoară rezistența dintre
terminale.
Circuitul de comandă pentru aceste motoare este alcătuit ă dintr -o punte H pentru fiecare
bobină; pe scurt o punte H permite ca polaritatea tensiunii aplicate la capetele fiecărei bobine
să fie controlată independent. Secvența de control pentru acest tip de mo tor este prezentată mai
jos, folosind simbolurile – și + pentru a indica polaritatea tensiunii aplicate la terminalele
bobinelor:
Terminal 1a + –+–+–+– ++–++–++–++–
Terminal 1b –+–+–+–+- –++–++–++–++
Terminal 2a -+–+–+–+– -++–++–++–++-
Terminal 2b –+–+–+–+ +–++–++–++–+
Principiul de comandă a m otoarelor pas cu pas folosite pentru proiect le putem împărții
în două părți:
-partea care este comandat manual de către Arduino;
-partea automatizată care este co ntrolat de către un pic dedicat.
Partea comandată cu Arduino este bazat pe trimiterea impulsurilor către driverul
TB6600. Acesta trimite mai multe impulsuri, un număr care este echivalent cu distanța care
trebuie să parcurga la o singură semnal al joystic kului analog. Arduinoul trimite pulsuri de
numărul 3200, 1600, 800, 400, 200,100,2, fiecare având alte distanțe de parcurs, de la 5 mm la
0,003 mm.
27
Legarea p inurilor la driverul TB6600 cu arduino:
o PUL – DIR- EN- este legat la cate o ieșire de tip digital a Arduino -ului
(ex.:30,32,34);
o PUL+ DIR+ EN+ sunt legate la câte o rezistență de 10kΩ și acestea la o tensiune
de alimentare de +5v
o GND este legat la sursa de tensiune între 9 și 42 V la parte cu 0V
o VCC este legat la sursa de tensiune la o tensiune într e 9 și 42 V
o A+ B+ A – B- sunt legate la firele motoarelor pas cu pas
Legarea p inurilor la driverul TB6600 cu controlerul dedicat:
o PUL – DIR- este legat la cate o ieșire de tip digital a l controlerului cu picul
dedicat 18F4455 (+5V, -, CW, CK) ;
o PUL+ DIR+ su nt legate la câte o rezistență de 10kΩ și acestea la o tensiune de
alimentare de +5v
o GND este legat la sursa de tensiune între 9 și 42 V la parte cu 0V
o VCC este legat la sursa de tensiune la o tensiune între 9 și 42 V
o A+ B+ A – B- sunt legate la firele m otoarelor pas cu pas
28
Figura4.1 Conectarea celor două controlere cu driver și motor
4.2 PRINCIPIUL DE MĂSURA RE
Principiul de m ăsurare se efectuează prin trei mod alități, cu ajutorul traductorului
incremental de rotație , cu ajutorul senzoriilor ultrasoni ce și al unui ceas comparator magnetic.
Un traductor incremental de rotație este un dispozitiv electromecanic care poate măsura
mișcarea sau poziția. Majoritatea traductoarelor utilizează senzori optici pentru a furniza
semnale electrice sub formă de tren uri de impulsuri, care, la rândul lor, pot fi traduse în mișcare,
direcție sau poziție.
29
Dispozitivele de rotație sunt utilizate pentru măsurarea miș cării de rotație a unui arbore,
în cazul meu arborele este axa mașinii pe care o mișcă motorul pas cu pas, și se măsoare distanța
parcusă de mașină , în funcție cu rotația axei.
Figura de mai jos prezintă componentele fundamentale ale unui codificator rotativ, care
constă dintr -o diodă (LED) emițătoare de lumină (LED), un disc și un detector de lumină pe
partea opusă a discului.
Encoderele au de obicei de la 100 la 6000 de segmente pe revoluție. Pentru o măsurare
precisă am utilizat traductor incremental de rotație de 400 de segmenți, acest lucru înseamnă că
această codificator poate oferi o rezoluție de 1.11 grade care este o precizie destul de bună
pentru motoarele pas cu pas de 1.8 grade folosite la lucrarea de licență.
Un codificator cu un set de impulsuri nu ar fi util, deoarece nu ar putea indica direcția
de rotație. Folosind două piste de coduri c u sectoare poziționate la 90 de grade din fază , cele
două canale de ieșire ale codificatorului de cvadratură indică atât poziția, cât și direcția de
rotație. Dacă A conduce B, de exemplu, discul se rotește în sensul acelor de ceasornic. Dacă B
conduce A, a tunci discul se rotește în sens invers acelor de ceasornic.
Figura4.2 Componentele traductorului
Figura4.3 Pulsațiile tr aductorului incremental de rotație
30
Pentru măsur ătorile efectuate, pe mașină au fost montat e trei traductoare incrementali
de rotație pe axele mașinii c u cuplaj direct pe axă și s -a făcut calcule de măsurare față de rotirea
axei, calculând distanța efectua tă. Astfel dacă pe axa X și Y avem două axe cu pas de 5mm ,
asta înseamnă că la un număr de impulsuri de 400 s -a efectuat 5mm, iar pe axa Z la 400 de
impulsuri s -a efectuat 4mm, astfel putem face o comparație între valoare de par curgere din
program(valoare relativă), față de valoare absolute măsurată pe axa mașinii.
Encoderele în principiu la capăt au 4 fire de conectare pentru a putea efectua
măsurătorile:
o Output pulse A – fir galben
o Output pulse B – fir albastru
o Ground – fir ne gru
o +5V – fir roșu
Legarea pinurilor se efectueaz ă în următoarea mod:
o Output pulse A – fir galben – se măsoare impulsurile de pe canalul A și se leaga
la inputul analog A1
o Output pulse B – fir albastru – se măsoare impulsurile de pe canalul B și se leaga
la inputul analog A2
o Ground – fir negru – se pune la plca de bază la GND
o +5V – fir roșu – se alimentează encoderul cu +5V de la placa de dezvoltare
31
Figura4.4 Schema de legătura a encoderului cu A rduino
Principiul de măsurare cu ajutorul senzoriilor ultrasonice de tip HC -SR04 s-a efectuat
mai mult pentru folosire a limitei a mașinii. Aceste măsurători su nt foarte eronate, deoarece în
aceste măsurători contribuie toate factorele care sunt implicate în aerul din împrejurimea
mașinii și stabilitatea mașinii efectuează mult sensibilitatea senzorului și precizia măsurătorului.
Senzorii utrasonici sunt instrumente excelente pentru măsurarea distanței fără contact
real și sunt utilizate în mai multe locuri, cum ar fi măsurarea nivelulu i apei, măsurarea distanței
. În acest proiect s-a efectuat ca și obstacol piesele care alcătuiesc mașina, lateralele, iar
encoderele sunt așeza te pe fiecare parte a mașinii (X , Y și Z). În această lucrare am utilizat un
senzor ultrasonic pentru a determina distanța unui obstacol, laturile mașinii adică limitele, de la
senzor, de aceea vor fi folosite și ca limite ale mașinii.
Următorul principiu de funcționare al senzorului cu ultrasunete este : semnalul de nivel
ridicat es te trimis pentru 10us folosind Trigger. Modulul trimite automat opt semnale de 40 kHz
și apoi detectează dacă impulsul este recepționat sau nu.Dacă semnalul este recepționat, atunci
32
acesta este prin nivelu l ridicat. Durata mare a timpului este intervalul de timp dintre trimiterea
și primirea semnalului.
Distanța = (Timpul x Viteza sunetului în aer) / 2
Ecuația4.1 Ecuația distanței măsurate cu senzorul
În conexiunile cu circuitul c onectorii "trigger" și "ecou" ai senzorului cu ul trasunete sun t
conectați direct la pinii A8 și A9 al arduinului. GND este legat la pinul ground al plăcii iar +5V
tot la placă la sursa de +5V.
4.3 UTILIZAREA AFIȘAJELOR DE TIP LC D
În proiectul de licență am folosit două afișaje de tip LCD unul pe 20 de c oloane și 4
linii, iar unul de 16 coloane și 2 linii. Afișajele s -au folosit pentru afișarea valoriile distanțelor
executate pe mașină , pentru aceasta s -a folosit un modul LCD2004 iar pentru afișarea vitezei
motoarelor și a pasurilor un modul LCD1602 . Cele două afișaje au o comunicație paralelă pe
4 biți de date cu Arduino, deoarece biblioteca folosită pentru afișarea rezultatelor pe afișaje
folosește 4 digiți din cele 8, de aceea nu este folosit biturile D0, D1, D2 și D3. Conversia
cuvintelor și a valoril or se face cu ajutorul bibliotecii regăsite în Arduino.
Figura4.5 Schema de legătură a senzorului ultrasonic cu Arduino
33
Afișajul LCD1602 s-a legat la Arduino mega cu următoarea configurație:
GND – este legat la pinul ground de pe placa de achiziție
Vcc – este alimentarea afișajului și este legat la +5V
V0 – este le gat la pinul potențiometrului de 10 kΩ, care ajută la reglarea iluminatului
din fundal
RS – este pinul pe care se trimit datele, și este legat la pinul numarul 31
R/W – ajută la citirea și scrierea datelor, este legat la ground
E – este pinul enable c are este conectat la pinul 33 , care este HIGH ca și valoare pentru
a putea afișa pe LCD
D4 – databit numărul 4, este legat la pinul digital numărul 35, și poate avea valoarea de
HIGH or LOW.
D5 – databit numărul 5, este legat la pinul digital numărul 37, și poate avea valoarea de
HIGH or LOW.
D6 – databit numărul 6, este legat la pinul digital numărul 39, și poate avea valoarea de
HIGH or LOW.
D7 – databit numărul 7, este legat la pinul digital numărul 41, și poate avea valoarea de
HIGH or LOW.
Afișaju l cu modul LCD2004 cu 20 de coloane și 4 linii s -a legat exact la fel la Arduino
numai la pinuri diferite, deoarece mesajul afișat este diferit față de celălalt.
Pentru reglarea fundalului iluminat am folosit potențiometru de 10kΩ
34
4.4 COMANDA CU JOYSTIC K
Pentru mișcarea celor trei axe în modul ul manual s -a folsit două joystickuri de tip
Schneider. Aceste joystickuri sunt alcătuite din câte 4 microintr erupătoare de tip tact, astfel î n
total se folosește 6 microintrerupătoare pentru cele 3 axe, câte 2 pe ntru fiecare axă, unul pentru
mișcarea în minus și unul pentru mișcarea în plus.
La fiecare button cu tact din care este alcătuit joystickul este legat la +5V și o rezistenț ă
de 1kΩ, care este legat paralel cu tensiune de alimentare iar la partea cealaltă a butonulu i este
legar ground -ul. Dacă bu tonul este activat ă, adică curentul trece prin but on, rezistența este
activat și trimite un impuls la placă, Arduino Mega, care din valoarea LOW se face astfel HIGH
și se declanșează la mișcarea motoarelor. Astfel pentru mișcarea mașinii s -a folosit 6 rezistențe
de 1kΩ, 6 pinuri digitale pentru intrarea bitului de activare a mișcării, ground și +5V pentru
alimentarea joystickurilor.
Figura4.6 Schema de legare a afișajului LCD1602 cu Arduino
35
Pinurile utilizate pentru evaluarea valorii bu toanelor s -a folosit pinii digital 2, 3, 4, 5, 6
și 7 care sunt intrări de PWM.
Figura4.7 Schema de legare a Joystickurilor cu Arduino
36
5 IMPLEMENTAREA SOFTWA RE
5.1 DIAGRAME DE ACTIVITA TE
În figura5.1 se găsește diagram de activitate a programului scris pentru placa de
dezvoltare Arduino pentru mișcăriile efectuate manual cu ajutorul butoane lor existente .
În primul rând se include biblioteca pentre folosire afișajelor de tip LCD pentru afișarea
valorilor măsurate, reglate și calculate de program și operator. După acesta se defines c
variabilele globale folosite în program și se defines c pinurile care utilizează în modul manual
de mișcare al mașinii.
Se definește setare a afișajelor de tip LCD, aici determină mărimile afișajelor și pinurile al care
comunică LCD -urile cu placa de dezvoltare Arduino.Se citesc datele potențiometrelor existente
pe cele două pinuri analogice, și se salvează într -o variabilă. Totodată se citește valoarea inițială
a traductoarei incremental de rotație , poziția în care se află traductoarele incrementali de rotație.
Următorul pas este calcularea și afișajarea rezultatelo r pentru viteza de mișc are și pasul cu care
se va declanșa mașina. După acesta se fac măsurători cu ajutorul senzoriilor ultrasonici, și se
salvează aceste valori folosirea următorilor de decizie. Se verifică care dintre cele șase direcții
sunt valabile, a dică care dintre cele 6 pini a joystickurilor este apăsat, adevărat, și dacă totodată
mașina nu este în limită pe acea direcție(X+,X -,Y+,Y -,Z+,Z -) se fac mișcări liniare și
măsurători cu ajutorul encoderelor. După aceste pași, chiar dacă nici o decizie nu este adevărată,
se fac calculi cu ajutorul rezultatelor de la traductoarele de rotație și pașii cu care s -a mișcat
mașina. La sfârșit se afișează toate valoriile care s -au rezultat din programul scris. Programul
începe din nou de la citirea datelor de la p otentiometer și encoderele.
37
Figura5. 1 Diagrama de activitatea a programului pentru partea manuală
38
5.2 INIȚIALIZĂRI , BIBLI OTECI, ÎNTRERUPERI, TEMPORIZĂRI
Al proiectului de licență s -a implementat în domeniul de dezvoltare Arduino un program
pentru măsu rarea poziției, vitezei, distanței și a accelerației pentru a experimenta precizia
mișcării a mașinii CNC construite.
Un program Arduino este partajat în patru părți:
▪ adăugarea biblioteciilor existente
▪ definirea pinurilor și definirea variabilelor
▪ setare a modurilor piniilor și a afișajelor, în bucla de setare
▪ programul implementat de utilizator, în bucla loop
Pentru programul care este pe Arduino pentru mișcăriile manual și măsurători s -a folosit
o singură bibliotecă : #include <LiquidCrystal.h> . Aceast ă bibliotecă este beneficiat pentru
afișarea datelor pe LCD, face convertirea pe 4 biți de date a rezultatelor, după care transmite
datele spre LCD unde se văd datele trimise de Arduino: LiquidCrystal lcd1(31, 33, 35, 37, 39,
41) și
LiquidCrystal lcd2(43, 45, 47, 49, 51, 53) .
Cele doua afișaje s -au folosit cu următoarea configurație declarată din program, care se
referă la legarea pinurilor pe Arduino.
Se folosesc următoarele definiri pentru pinuri și variabilele folosite în program:
• int potPin1 = A0; – potențiometrul pentru reglarea vitezei legat la pinul A0 analog
• int potPin2=A1; – potențiometrul pentru reglarea pasului legat la pinul A1 analog
• float val2 = 0; float val1 = 0; – variabile în care se citesc valorile potențiometrelor
• float viteza = 0; – variabilă pentru calcularea vitezei de mișcare
• float td = 0; – variabilă pentru calcularea întârzierei între pași
• float pas = 0; – variabilă pentru calculare pasului
• int PULY=30; int DIRY=32; int ENAY=34; int PULX=36; int DIRX=38; int
ENAX=40; int PU LZ=42; int DIRZ=44; int ENAZ=46; – aceste sunt cele 9 pinuri
pentru mișcarea axelor, aceste pinuri dau impulsurile pentru driverele motoarelor pas cu
pas. PUL este pinul de pulsuri, DIR pinul de direcție și ENA pinul pentru enable -ul
pentru motoare. Pinu rile folosite sunt pinurile de la 30 până la 46.
39
• const int buttonPinY1 = 2; const int buttonPinY2 = 3; const int buttonPinX1 = 4;
const int buttonPinX2 = 5; const int buttonPinZ1 = 6; const int buttonPinZ2 = 7; –
pinurile care se citesc direct din Arduino, care se regăsește in buttonState, pentru a
decide care va fi următorul pas. Pinurile sunt pinurile de la 2 la 6.
• int buttonStateY1 = 0; int buttonStateY2 = 0; int buttonStateX1 = 0; int
buttonStateX2 = 0; int buttonStateZ1 = 0; int buttonStateZ2 = 0; – variabile în care
se citește valoarea joystickurile, valorile care pot fii Low sau High, care înseamnă că
este sau nu apăsat joystickul.
• #define trigPinX A10 , #define echoPinX A11, #define trigPinY A12 , #define
echoPinY A13 , #define trigPinZ A8 , #define echoPinZ A9 – pinurile pentru senzorii
ultrasonici, pinurile echo și trig. Pinurile sunt pinurile analogice de la 8 la 13.
• #define outputAy 8 #define outputBy 9 #define outputAy 10 #define outputBy 11
#define outputAy 12 #define outputBy 13 – definirea pinurilor pentru fazaA și fazaB
• int countery = 0; int counterx = 0; int counterz= 0 ;- variabile pentru numărarea
impulsurior pentru cele 3 traductoare.
• int aStatey; int aLastStatey; int aStatex; int aLastStatex; int aStatez; int
aLastStatez; – variabile pentru verificarea actuală și ultima poziție a encoderului.
În bucla de setup, s -a efectuat setăriile pinurilor și a componentelor folosite la modul
manual, prin controlul unei Arduino. În această bucla s -a făcut setăriile pentru modurile
pinurilor, să fi e pinuri de ieșire sau de intrare și s -a efectuat setarea LCd urilor unde am precizat
ce dimensiuni au afișajele folosite în proiect.
• lcd1.begin(16, 2); lcd2.begin(20, 4); – setarea afișajelor de 16 coloane și 2 linii,
respective 20 de coloane pe 4 linii.
• pinMode (PULY, OUTPUT); pinMode (DIRY, OUTPUT); pinMode (ENAY,
OUTPUT); pinMode (PULX, OUTPUT); pinMode (DIRX, OUTPUT); pinMode
(ENAX, OUTPUT); pinMode (PULZ, OUTPUT); pinMode (DIRZ, OUTPUT);
pinMode (ENAZ, OUTPUT); – pinurile care se leagă la driver ele motoarelor toate
setate ca și pinuri de ieșire care trimite la driver o valoare de High sau Low.
• pinMode(buttonPinY1, INPUT); pinMode(buttonPinY2, INPUT);
pinMode(buttonPinX1, INPUT); pinMode(buttonPinX2, INPUT);
pinMode(buttonPinZ1, INPUT); pinMo de(buttonPinZ2, INPUT); – pinurile de la
joystick -uri setate ca și intrări de date, care primește valoare de Low sau High.
40
• pinMode(trigPinX, OUTPUT); pinMode(echoPinX, INPUT); pinMode(trigPinY,
OUTPUT); pinMode(echoPinY, INPUT); pinMode(trigPinZ, OUTPUT );
pinMode(echoPinZ, INPUT); – se setează pinurile de la sensor, cele de tip trig pentru
pinuri de ieșire, și cele de tip echo ca și pinuri de intrare.
• pinMode (outputAx,INPUT); pinMode (outputB x,INPUT); pinMode
(outputAy,INPUT); pinMode (outputB y,INPUT ); pinMode (outputAz,INPUT);
pinMode (outputB z,INPUT); – acestea sunt setate ca și pinuri de intrare, cu ajutorul
acestora se citește traductorul incremental de rotație.
În bucla ”loop” este programul principal al mișcării manual ă a mașinii.
Această bu clă începe cu decodificarea valorii potențiometrelor, pentru a afla valoarea
pasului și a vitezei cu care trebuie s ă se miște mașina la o singură apăsare a joystickului. După
citirea valoriilor potenșiometrelor se face o conversie, pentru a afișa rezultatu lui final pe afișaje.
Daca viteza este 0 pasul motoarelor este tot 0, deoarece fără viteză nu se poate mișca mașina.
Valoare vitezei variază între 0 și 10000, iar pasul între 0 și 3600, 3600 însemnând o rotație
întreagă a motorului. În anexa numărul 1 se g ăsește sursa de cod pentru reglarea și afișarea
vitezei și a pasului.
Al doile a pas al programului principal este măsurarea distanței cu ajutorul senzoriilor
ultrasonice. Acest pas este unul însemnat deoarece senzorii nu sunt folosiți numai în scopuri de
masurare și experimentare, sunt folosite și ca limitatoare de curse a mașinii, ca aceasta să nu
intre în coloziune.Senzorul lucrează cu emiterea și receptarea sunetelor ultrasonice.Pinul trig
trimite un impuls la sensor care trimite un sunet ultrasonic, pe care pinul echo il receptează.
Dupa ce avem aceste date de la pinurile trig și echo , calculăm distanța în funcție de constanta
de viteză și timpul în care s -a efectuat emiterea și receptarea, această valoare de timp se împarte
în două pent ru folosire in calcule. Calculel e sunt făcute cu ajutorul ecuației4.1. Codul sursă se
regăsește în anexa numărul 2.
Al patrulea pas al programului este citirea valoriilor joystickuriilor și a traductoarelor
incrementali de rotație , ca să știe programul pe care axă trebu ie să se mișcă , asta însemnând că
controlerul știe care joystick este apăsat în momentul în care se face citirea. Se face și citirea
pentru poziția actuală a encoderelor pentru a putea număra pulsuriile care s -a efectuat în timpul
mișcării a mașinii.
41
buttonStateY1 = digitalRead(buttonPinY1);
buttonSta teY2 = digitalRead(buttonPinY2)
buttonStateX1 = digitalRead(buttonPinX1);
buttonStat eX2 = digitalRead(buttonPinX2);
buttonStateZ1 = digitalRead(buttonPinZ1);
buttonStateZ2 = digitalRead(buttonPinZ2);
aState = digitalRead(outputA x);
aState = digitalRead(outputA y);
aState = digitalRead(outputA z);
După ce se știe poziția actuală a mașinii CNC și se știe valoarea pinurilor joystickurilor,
dacă este Low sau High, deci este sau nu apăsat joystickul la care ne uit ăm. Dacă este adevărat
condiția și mașina nu se află la limită, aceasta intră în condiție și începe numărătoare de pasuri
cu ajutorul unei cicluri de tip “for” . În acest ciclu ”for” se face mișcarea motoarelor pas cu pas,
trimitând la driver direcția în ca re dorim să se mișcă mașina, și stepurile pentru deplasarea axei.
Totodată în aceast ciclu se numără și pulsurile traductorului incremental de rotație.
Condițiile pentru mișcarea axelor:
if(buttonStateY1 == LOW && distancey>=80)
if(buttonStateY2 == LOW && distancey<=650)
if(buttonStateX1 == LOW && distancex>=30)
if(buttonStateX2 == LOW && distancex<=485)
if(buttonStateZ1 == LOW && distancez<=200)
if(buttonStateZ2 == LOW && distancez>=50)
Sursa de program se regăsește in anexa numărul 3.
La sfârșitul pro gramului sunt afițate toate datele obținute anterior. Pe afișajul LCD2004
pe prima linie sunt definite cele trei axe (Axa X.Axa Y și Axa Z). Pentru fiecare axă datele sunt
afișate pe coloane, fiecare axă are cele trei date a le lui: poziția absolută cât s -a mișcat, poziția
măsurată cu senzorii ultrasonici și poziția acestuia convertită și măsurată cu traductorul
incremental de rotație.
Pe prima linie se afișează poziția absolută, poziția de la punctul de pornire, în mili metrii
cu o precizie de sută la sută .
42
Pe a doua linie sunt afișate valorile senzoriilor ultrasonici , acestea sunt valoriile
măsurate de la senzor până la marginiile mașinii.
Pe a treia linie numerele afișate sunt cele care s -a calculat din numărul de impulsuri al
traductoarelor incremental i de rotație.
Calcule au fost făcute cu următoarele ecuații:
o pasx1=pasx*5 /3200; – calculează distanța după câți pași s -a efectuat în program
o float counterx1=counterx*5/800; – calculează distanța după numărul de
impulsuri
Afișajul s -a efectuat cu următoa rele coduri de linii.
lcd2.setCursor(0,0);
lcd2.print("Axa X");
lcd2.setCursor(7,0);
lcd2.print("Axa Y");
lcd2.setCursor(14,0);
lcd2.print("Axa Z");
lcd2.setCursor(0,1);
lcd2.print(pasx1);
lcd2.setCursor(0,2);
lcd2.print(distancex);
lcd2.setCursor(0,3);
lcd2.print(counterx1);
lcd2.setCursor(7,1);
lcd2.print(pasy1);
lcd2.setCursor(7,2);
lcd2.print(distancey);
lcd2.setCursor(7,3);
lcd2.print(countery1);
43
lcd2.setCursor(14,1);
lcd2.print(pasz1);
lcd2.setCursor(14,2);
lcd2.print(distancez);
lcd2.setCursor(14,3);
lcd2.print(counterz1);
5.3 COMUNICAȚIE
Pe partea de comunicație putem discuta de două mari părți de comunicație:
– pe partea automată care este controlat de către pic -ul dedicate, acesta
comunică prin p ortul U SB;
– pe partea manual comunicația se face prin intermediul afișajelor.
Pe partea automată există o comunicație între controller și laptop. Prin această
comunicație operatorul mașinii are o interfață dedicate prin care poate comunica cu mașina
CNC.
Prin a ceastă interfață operatorul vede mișcarea mașinii graphic pe ecranul laptopului ,
vede unde a fost deja deplasat mașina, unde va fi deplasată și unde este în momentul executării
programului. Aceasta este o comunicație de tip input -output. Totodată putem reg la viteza
mașinii. Prin viteza mașinii înțeleg em două viteze care se pot regla: o viteză este reglată de către
operator, care este viteza de așchie re a mașinii, aceasta se schimbă doar după efectuarea ultimei
linii de program, și este viteza de deplasare r apidă, aceasta este viteza în care mașina se mișca
deasupra piesei sau la o distanță de siguranță în aer fără să atingă obiectul. Aceasta este a
comunicație de tip out deoarece doar trimitemi pic -ului o valoare care el trebuie să o modifică.
Se poate mișca mașina cu ajutorul interfaței dedicate în toate cele 6 direcții, astfel operat orul
poate mișca mașina nu doar din joystickuri, ci și din interfața programului. Cu ajutorul acestei
mișcări din program se face măsurarea piesei și a sculei.
44
Cu ajutorul LCD – urilor operatorul are o comunicație cu ajutorul mașini i, deoarece astfel
el vede poziț ionarea și corectitudinea mașinii, dar vede și viteza de așchiere și pasul motoarelor
pas cu pas. Cu ajutorul sensorilor ultrasonice se măsoară distanșa aproximată față de limitele
mașinii , cu traductorul incremental de rotație se masoară pulsația rotirii care este convertit în
distanță. Pe afișsajul cel de tip LCD2004 este afișată poziția absolută a mașinii , distanț a
măsurată de mașină și distanța conv ertită din pulsuri le traductoarelor incrementali de rotație .
Este o comunicare de tip output cu operatorul, astfel el poate vedea corectitudinea mașinii și
deplasarea care s -a efectuat. Pe afișajul LCD1602 este afișată viteza de mișcare a motoarelor și
pasul cu care se mișc ă mașina la o singură mișcare a joystickului.
5.4 MOD AUTOMAT
Controlerul CNC USB oferă o gamă largă de funcții de ieșire și semnal de intrare,
care satisface cererea celui mai complex router sau mașină de frezat CNC. Există, de asemenea,
câteva caracterist ici, cum ar fi măsurarea automată a lungimii sculei, schimbarea automată a
sculei, măsurarea offsetului camerei, care accelerează procesul de reglare a prelucrării.
Software -ul CNC USB Controller acceptă toate metodele de compensare a tăierilor
pentru ope rațiile comune de frezare și algoritmi avansați de interpolare, care vă permit să
efectuați frezarea 3D a pieselor complexe. Funcționează de asemenea cu fișiere de găurit Gerber
și NC. Software -ul suportă codul G de la cele mai importante programe CAM de p e piață.
Softwa re-ul Planet CNC este un software dedicate în special pentru construirea
mașiniilor de tip CNC. Acest software rezistă la o mișcare a maxim 4 axe deoadată. În acest
proiect s -a folosit doar cele trei principale (X,Y,Z). Software -ul dedicat de catre cei de la Planet
CNC recunoaște orice program generat cu ajutorul CAM -urilor. CAM -ul est eprogramul în
care se poate executa desenul unei piese și totodată programul cu ajutorul căreia se poate realiza
piesa dorită pe o mașină de tip CNC. Progra mul recunoaște codurile G și M, se poate da offset
și dimensiune sculelor, și tot aici se comunică cu mașina unde este situate originea.
Codurile G , care au mai multe variante, au nume commune pentru cele mai
utilizat e limbaj e cu programare de control numeric ( CNC ). Acest a este utilizat în principal la
fabricația asistată de calculator pentru a controla mașinile -unelte automate. Codul G este uneori
denumit ă limbajul de programare G , care nu trebuie confundat ă cu limbajul de programare
G LabVIEW . Limajul G este limbajul cu ajutorul căreia comunică operatorul cu mașina.
45
Codurile M sunt codurile cu ajutorul căreia operatorul poate s ă transmite mașinii
acțiuni care pornesc sau opresc mașina, pornire a și oprire a fluidului, oprirea și pornirea mașinii .
Codul M (pentru funcția "diverse") este o comandă auxiliar ă unde de scrierile variază. Multe
coduri M solicită funcții ale mașinii cum ar fi "ușă de lucru deschisă", motiv pentru care unii
spun că "M" înseamnă "mași nă", desi acest lucru nu a fost în mod intenționat .
Prin program putem trimite mașinii valori specific pentru scule, cum ar fi lu ngimea și
diametrul acestuia, îi putem crea dacă este nevoie offset la scule(offset -ul înseamnă ridicarea
sau coborârea scu lei față de suprafața prelucrată).
Codurile -G
G00 Poziționare rapidă
G01 Interpolare liniară
G02 Interpolare circulară, spirală, elicoidală în sensul acelor de ceas
G03 Interpolare circulară, elicoidală în sens invers acelor de ceas
G17 Comandă de coordonate polare. Selectare plan
G18 Selectare plan ZX
G19 Selectare plan YZ
G40 Anulare compensare a razei sculei
G41 Compensare a razei sculei la stânga
G42 Compensare a razei sculei la dreapta
G43 Compensare negativă a lungimii sculei
G49 Anul are compensare a lungimii sculei
G52 Sistem de coordonate local
G53 Sistemul de coordonate al mașinii
G54 Selectare sisteme de coordonate de lucru 1 -6
G80 Anulare ciclu memorat
G81 Găurire, ciclu de alezare parțială
G82 Găurire, ciclu de alezare la retragere
G83 Ciclu de găurire cu retrageri (pentru ruperea șpanului)
G84 Ciclu de filetare cu tarod, direcția axului M03
G90 Programare absolute
G91 Programare incrementală
Tabelul5. 1 Codurile G cele mai folosite
46
Codurile -M
M00 Oprire obligatorie programată.
M01 Oprire condiționată
M02 Sfârșitul programului
M03 Rotire arbore (în sensul acelor de ceas)
M04 Rotire arbore (în sens invers acelor de ceas)
M05 oprire ax
M08 utilizare răcire (șuvoi)
M09 oprire utilizare ră cire
M19 orientarea axului
M30 Sfârșitul programului, cu revenire la începutul programului
M98 Apelare subprogram
M99 Sfârșit subprogram
Tabelul5. 2 Codurile M cele mai folosite
47
6 REZULTATE EXPER IMENTALE
Experiment cu pas contstant și viteză constantă pe axa X,Y și Z
• Dabs=Distan ța absolută
• Us1=Distanța măsurată cu senzor ultrasonic I.
• Us2=Distanța măsurată cu senzor ultrasonic II.
• Us=Us2 -Us1
• Denc=Distanța măsurată cu ajutorul encoderului
Dabs 0 5 10 15 20 25 -5 -10 -15 -20 -25
Us1 142.14
Us2 142,14 147,42 152,01 157,17 162,27 167,31 137,68 132,42 127,64 122,98 117,35
Us 0 5.28 9,87 15,18 20,13 25,17 -4,46 -9,72 -14,5 19,16 -24,79
Denc 0 5 9,99 15,01 20 25 -4,99 -9,99 -15 -20 -24,99
Tabelul6. 1 Rezultate experimentale cu pas de 3200 și viteză de 400 pentru axaX
Figura6.1 Simularea mi șcării la viteză și pas constant pe axa X
48
Dabs 0 5 10 15 20 25 -5 -10 -15 -20 -25
Us1 382.47
Us2 382.47 387.11 392.27 393.27 398.38 403.26 377.59 372.34 363,75 358,89 353,53
Us 0 4,64 9,8 15,91 20,79 25,88 -4,88 -10,13 -18,72 -23,58 -28,94
Denc 0 4,99 9,99 14,99 19,99 24,99 -5,01 -10,1 -15 -20,01 -24,99
Tabelul6.2 Rezultate experimentale cu pas de 3200 și viteză de 400 pentru axaY
Figura6.2 Simularea mi șcării la viteză și pas constant pe axa Y
49
Dabs 0 4 8 12 16 20 -4 -8 -12 -16 -20
Us1 102,06
Us2 102,06 106,73 110,7 114,96 118,74 122,9 98,23 94,14 90,08 86,02 84
Us 0 4,67 8,64 12,9 16,68 20,84 -3,83 -7,92 11,98 -16,04 -18,06
Denc 0 4,13 8,18 12,2 16,43 20,44 -3,45 -7,34 -11,44 -15,34 -19,5
Tabelul6.3 Rezultate experimentale cu pas de 3200 și viteză de 400 pentru axaZ
Figura6.3 Simularea mi șcării la viteză și pas constant pe axa Z
La viteză mica de 400 și pasul 3200 care înseamnă o rotire într eagă a motorului .
mișcăriile sunt cu erori mici și destul de precise.
50
Figura6. 4 Simularea mi șcării la viteză și pas constant pe axa X
Se poate vedea în simularea de sus , că la această vitez ă mare este o eroare crescută .
Tabelul6.4 Rezultate experimentale cu pas de 500 și viteză de 1000 pentru axaX Dabs 0 0,78 1,56 2,35 3,13 3,92 -0,79 -1,56 -2,36 -3,13 -3,91
Us1 133,68
Us2 133,68 134,58 135,38 136,12 136,92 137,7 132,78 132,12 131,43 130,5 129,74
Us 0 0,9 1,7 2,44 3,24 4,02 -0,9 -1,56 -2,25 -3,18 -3,94
Denc 0 0,77 1,56 2,35 3,14 3,92 -0,78 -1,56 -2,34 -3,12 -3,9
51
Dabs 0 0,34 0,65 1,36 1,62 2,02 -0,33 -0,67 -1,34 -1,67 -2,01
Us1 406,26
Us2 406,26 406,72 406,98 407,59 408,02 408,34 406,01 406,53 404,74 404,12 403,98
Us 0 0,46 0,72 1,33 1,76 2,08 -0,25 0,27 -1,52 -2,14 -2,28
Denc 0 0,08 0,2 0,33 0,46 0,59 -0,07 -0,18 -0,32 -0,47 -0,58
Tabelul6.5 Rezultate experimentale cu pas de 200 și viteză de 3000 pentru axaY
Figura6.5 Simularea mi șcării la viteză și pas constant pe axa Y
52
Dabs 0 2,28 4,57 6,86 9,14 11,43 -2,29 -4,57 -6,96 -9,15 –
11,44
Us1 102,97
Us2 102,97 105,01 106,37 107,82 108,76 110,12 101,71 100,62 99,82 98,57 97,67
Us 0 2,04 3,4 4,85 5,79 7,15 -1,25 -2,35 -3,15 -4,4 -5,3
Denc 0 2,04 3,44 4,75 5,62 6,72 -1,3 -2,33 -3,52 -4,53 -5,37
Tabelul6.6 Rezultate experimentale cu pas de 1800 și viteză de 5000 pentru axaZ
Figura6.6 Simularea mi șcării la viteză și pas constant pe axa Z
La viteză mai mare de 1500 sau pas mai mic de 500, valoriile de simulare arată că
precizia mașinii este foarte mică deoarece motoarele și driverele sunt pentru viteze mai mici și
nici mecanica mașinii nu rezistă la valorile astea mari.
53
Experiment cu pas contstant și viteză variabilă pe axa X,Y și Z
Pas=500 viteza de la 100 -10000
Viteză 200 250 400 800 1500 2000 3400 4000 5000 8000 10000
Dabs 0,78 1,58 2,38 3,17 3,96 4,8 5,62 6,44 7,26 8,07 10,52
Denc 0,63 1,42 2,22 3,01 3,83 4,49 4,82 5,04 5,37 5,61 6,15
Tabelul6.7 Rezultate experimentale cu pas constant de 500 și viteză variabilă de la 100 la
10000 pe axa X
Figura6. 7 Simualre la pas constant de 500 și viteză variabilă pe axa X
54
Viteză 200 250 400 800 1500 2000 3400 4000 5000 8000 10000
Dabs 0,83 1,65 2,47 3,29 4,11 4,92 5,75 6,57 7,39 8,21 9,86
Denc 0,83 1,64 2,46 3,28 3,86 4,09 4,35 4,62 4,83 5,15 5,23
Tabelul6.8 Rezultate experimentale cu pas constant de 500 și viteză variabilă de la 100 la 10000
pe axa Y
Figura6.8 Simualre la pas constant de 500 și viteză variabilă pe axa Y
55
Viteză 200 250 400 800 1500 2000 3400 4000 5000 8000 10000
Dabs 0,69 1,38 2,07 2,75 3,44 4,12 4,81 5,5 6,19 6,88 7,57
Denc 0,91 1,51 2,17 3,05 3,67 3,78 4,24 4,32 4,78 4,95 5,1
Tabelul6.9 Rezultate experimentale cu pas constant de 500 și viteză variabilă de la 100 la 10000
pe axa Z
Figura6,9 Simualre la pas constant de 500 și viteză variabilă pe axa Z
La viteze mai mari de 1500 mașina nu este atât de precisă, deoarece are abateri mari de
la realitate față de valoarea absolută a mașinii pe care ne afișează programul. Astfel am simulat
viteza ș i accelerația mașinii care definește precizitatea .
56
Experiment cu pas variabila și viteză constantă pe axa X,Y și Z
Pas 1 80 200 400 680 1200 1600 2200 2800 3000 3100 3150 3200
Dabs 0,01 0,27 0,57 1,21 2,23 4,17 6,68 10,11 14,49 19,24 24,09 28,79 33,79
Denc 0,01 0,25 0,56 1,19 2,21 4,14 6,63 10,06 14,43 19,19 24,03 28,73 33,71
Tabelul6.10 Rezultate experimentale cu viteză constantă de 1200 și pas variabilă de la 1 la
3200 pe axa X
Figura6.10 Simualre la viteza constanta de 1200 și pas variabilă p e axa X
La viteza de 1200 la orice pas mașina se comportă foarte bine cu erori foarte minimale.
57
Pas 1 80 200 400 680 1200 1600 2200 2800 3000 3100 3150 3200
Dabs 0,08 0,13 0,47 1,11 2,2 4,15 6,6 10,19 14,55 19,32 24,1 28,97 33,97
Denc 0,01 0,03 0,16 0,25 0,47 0,89 1,41 2,11 2,59 5,05 3,67 4,46 5,36
Tabelul6.11 Rezultate experimentale cu viteză constantă de 3500 și pas variabilă de la 1 la
3200 pe axa Y
Figura6 .11 Simualre la viteza constanta de 3500 și pas variabilă pe axa Y
La vitez ă crescută , mașina nu este deloc precisă , factorul de eroare este foarte amplă .
58
Pas 1 80 200 400 680 1200 1600 2200 2800 3000 3100 3150 3200
Dabs 0,01 0,21 0,47 0,99 1,84 3,39 5,41 8,08 11,62 15,38 19,27 23,2 27,2
Denc 0,01 0,24 0,49 1,03 1,88 4,5 6,67 10,54 14,97 19,58 24,4 29,15 33,6
Tabelul6.12 Rezultate experimentale cu viteză constantă de 500 și pas variabilă de la 1 la 3200
pe axa Z
Figura6.12 Simualre la viteza constanta de 3500 și pas variabilă pe axa Z
La viteza de 500 chiar și axaZ se comportă la performanțe avantajoase știind că partea
mecanică a ei este foarte slabă.
59
Experiment pentru implementarea interpol rii unei cerc de diametrul de 100 mm cu viteză
constantă
• tms- timpul la care s -a efectuat măsurarea
• tirX- valoarea numărului de impul suri al traductorului în momentul măsurării pe axa X
• tirY- valoarea numărului de impulsuri al traductorului în momentul măsurării pe axa Y
tms 0 10 20 30 40 50 60 70 80 90 100 110
tirX 0 -49 -195 -435 -763 -1171 -1648 -2182 -2762 -3372 -4000 -4625
tirY 0 625 1234 1813 2348 2825 3233 3561 3801 3947 3998 3948
tms 120 130 140 150 160 170 180 190 200 210
tirX -5235 -5814 -6349 -6826 -7234 -7562 -7802 -7948 -7999 -7947
tirY 3802 3561 3234 2826 2348 1812 1234 624 0 -624
tms 220 230 240 250 260 270 280 290 300 310
tirX -7800 -7560 -7232 -6824 -6347 -5812 -5234 -4624 -3999 -3370
tirY -1236 -1814 -2348 -2826 -3235 -3560 -3800 -3947 -4000 -3945
tms 320 330 340 350 360 370 380 390 400
tirX -2761 -2181 -1647 -1171 -763 -435 -196 -48 1
tirY -3802 -3561 -3236 -2827 -2349 -1816 -1238 -625 -1
Tabelul6. 13 Rezultate experimentale pentru interpolarea unui cerc cu viteză constantă
60
Figura6.13 Simularea pentru interpolarea unui cerc cu viteză constantă
Din diagram de sus se observă mișcarea celor două axe la int erpolarea unui cerc cu o
viteză constantă de 400. Se poate observa precizia mașinii din grafic, adică pornirea a fost făcut
din punctul în care numărul de impulsuri al traductoarelor pe cele două axe a fost 0 și 0, și la
terminarea interpolării a ajuns tot la valoare de 1 și -1 . Din aceste date se rezultă ca precizia
mașinii este una de (1*5)/400 adică o sutim e și doi microni (0,01).
61
Experiment pentru implementarea interpol rii unei cerc de diametrul de 100 mm cu viteză
variabilă
• tms- timpul la care s -a efectuat măsurarea
• tirX- valoarea numărului de impulsuri al traductorului în momentul măsurării pe axa X
• tirY- valoarea numărului de impulsuri al traductorului în momentul măsurării pe axa Y
tms 0 10 20 30 40 50 60 70 80 90 100
tirX 0 -196 -764 -1649 -2763 -3999 -4625 -5235 -5814 -6349 -6826
tirY 0 1236 2350 3235 3803 3999 3948 3802 3561 3234 2826
tms 110 120 130 140 150 160 170 180 190 200
tirX -7234 -7562 -7802 -7948 -7999 -7986 -7949 -7887 -7802 -7693
tirY 2348 1812 1234 624 0 -313 -625 -933 -1235 -1529
tms 210 220 230 240 250 260 270 280 290 300
tirX -7561 -7407 -7232 -7037 -6823 -6592 -6344 -6083 -5808 -5523
tirY -1813 -2087 -2347 -2594 -2824 -3037 -3231 -3405 -3558 -3689
tms 310 320 330 340 350 360 370 380 390 400
tirX -5228 -4925 -4617 -4305 -4000 -3370 -2761 -2181 -1647 -1171
tirY -3797 -3882 -3943 -3979 -3998 -3945 -3802 -3561 -3236 -2827
tms 410 420 430 440 450
tirX -763 -435 -196 -48 1
tirY -2348 -1816 -1238 -625 -1
Tabelul6,14 Rezultate experimentale pentru interpolare a unui cerc cu viteză variabilă
62
Figura6.14 Simularea pentru interpolarea unui cerc cu viteză variabilă
Se poate observa din graficul de mai sus că și la viteză variabilă mașina are o precizie
asemănătoare. Cercul s -a împărțit în patru cvadrante, primul cvadrant cu o vitez ă dublă de 800,
al doile și al patrulea cvadrant cu acceiasși viteză constantă de 400 iar ultimul cvadrant cu o
viteză de 200.
63
7 CONCLUZII
În concluzie , putem confirma, că prin ajutorul acestei mașini de frezare de tip CNC s-
au efectuat măsurători , care au dat rezultate experimenta le eficiente . Importanța acestui proiect
se evidențiează prin contribuția realizării unei mașini CNC pentru susținerea lucrării de licență.
Realizarea acestei mașini CNC este elaborată atât pe part ea mecanică cât și pe partea electrică
dar și pe partea de programare. Realizarea individuală la această lucrare, adică construirea
mecanică a mașinii, a fost făcută cu ajutorul unei mașini CNC din industrie.
La partea electrică s -a folosit un controler d edicat cu pic, care a fost folosit la partea
automată de unde am învățat reglarea unei soft pentru parametrii mașinei construite.Partea
manuală a acestei mașini a fost construită în întregime de mine, adică proiectarea pentru
măsurarea și coordonarea mașin ii individual, elaborat și manual.
Realizăriile personale la studiul de licență a fost întemeierea și proiectarea mașinii pe
partea electrică două module diferite – unul pentru partea manuală cu un controler dedicat și
partea manuală construită și programa tă pe Arduino. S -au realizat grafice pentru înțelegerea
preciziei și a erorii mașinii. Simulăriile au fost efectuate pentru monitorizarea și evaluarea
mișcării a poziție, vitezei și al accelerației.
După aceste studii efectuate am constatat, mașina cu sof twarele pe care le are, la viteze
mari precizia mașinii este mai slabă, deoarece motoarele pas cu pas au o viteză limitată până
unde se pot mișca lin și linear, la fel adevărat și pentru pasul acordat motoarelor.
În principiu mașina de tip CNC a fost un a jutor imens pentru înțelegerea comenziilor și
monitorizarea parametrilor de mișcare pentru efectuarea evaluăriilor de mișcare și precizie.
Prin săvârșirea acestei lucrări de licență am învățat programarea și folosirea motoarelor
pas cu pas, a driverelor, setarea controlerelor pentru o bună funcționare, afișarea măsurătoriilor
cu ajutorul traductoarelor incrementali de rotație, și a senzoriilor. Proiectul a oferit studii despre
programarea mișcăriilor pe o mașină CNC atât pe partea manuală cât și pe partea automată.
În concluzie mașina construită pentru comanda și monitorizarea parametriilor unei
mașini cu comandă numerică sunt limitate de către părțiile electronice cum ar fii motoarele pas
cu pas, driverele care dau impulsurile acestora și desigur controle rele cu ajutorul căreia este
simulat și coordonat mașina.
64
8 ANEXE
Anexa numărul 1
val1 = analogRead(potPin1);
val2= analogRead(potPin2);
if(val1<20)
{ viteza=0;
pas=0;
}
else
viteza=(val1*10000)/1023;
td=(30*1023)/val1;
if(val2<2 0)
pas=1;
else{
if(viteza==0)
pas=0;
else
{ if(pas>3550)
pas=3600;
else
pas=(3600*val2)/1023;
}
}
lcd1.setCursor(0,0);
lcd1.print("Viteza=");
lcd1.setCursor(10,0);
65
lcd1.print(viteza);
lcd1.set Cursor(0,1);
lcd1.print("Pasul=");
lcd1.setCursor(10,1);
lcd1.print(pas);
Anexa numărul 2
float durationx, distancex;
digitalWrite(trigPinX, LOW);
delayMicroseconds(2);
digitalWrite(trigPinX, HIGH);
delayMicroseconds(10);
digitalWrite( trigPinX, LOW);
durationx = pulseIn(echoPinX, HIGH);
distancex = (durationx/2) / 29.1;
distancex = distancex * 10 ;
Anexa numărul 3
if(buttonStateY1 == LOW && distancey>=80)
{
for(int i=0; i<pas;i++)
{
digitalWrite(DIRY,LOW);
digitalWrite(ENAY,HIGH);
digitalWrite(PULY,HIGH);
delayMicroseconds(td);
digitalWrite(PULY,LOW);
66
aStatey = digitalRead(outputAy);
if (aStatey != aLastStatey){
if (digitalRead(outputBy) != aStatey) {
countery ++;
} else {
countery –;
}
Serial.print("Position y : ");
Serial.println(countery);
}
aLastStatey = aStatey;
}
pasy=pasy -pas;
}
67
Schemă electrică a controlerului pe partea automat
68
Poze cu mașin a CNC construită unde se pot vedea ghidajele liniare și suruburile, dar și părțile
electronice: motoare pas cu pas, traductoarele incrementali de rotație, senzorii ultrasonice și
cablajul mașinii.
69
Poze cu realizăriile pe partea electric ă a mașinii: af ișaje , joystcikuri, butoane și
potențiometre, cablajul între mașină și calculator.
70
71
9 BIBLIOGRAFIE
1. Morar Alexandru – Motorul pas cu pas in actionari electrice, Editura universitatii
Petru Maior din Tg.Mures, 2004
2. Specificatii, note de apl icatie, foi de catalog pentru placile de dezvoltare, modulele
si circuitele utilizate
3. www.planet -cnc.com
4. www.howtomechatronics.com
5. www.arduino.cc
6. www.optimusdigit al.ro
7. www.circuitdigest.com
8. www.qreferat.com
9. www.engineersgarage.com
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: Vargaattilalicenta.docx [631114] (ID: 631114)
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.
