Satura rādītājs:

CNC padeves ātruma mērīšanas rīks, kas izgatavots no lūžņiem: 5 soļi
CNC padeves ātruma mērīšanas rīks, kas izgatavots no lūžņiem: 5 soļi

Video: CNC padeves ātruma mērīšanas rīks, kas izgatavots no lūžņiem: 5 soļi

Video: CNC padeves ātruma mērīšanas rīks, kas izgatavots no lūžņiem: 5 soļi
Video: Setting up a 3d Printer with MKS sGen L v1.0 Part 3 2024, Novembris
Anonim
CNC padeves ātruma mērīšanas rīks, kas izgatavots no lūžņiem
CNC padeves ātruma mērīšanas rīks, kas izgatavots no lūžņiem

Vai kāds kādreiz ir vēlējies izmērīt faktisko padeves ātrumu CNC mašīnā? Droši vien nē, kamēr frēzēšanas uzgaļi pēc CNC darba ir neskarti … bet, kad tie sāk regulāri lūzt, varbūt ir pienācis laiks izmeklēt. Šajā pamācībā jūs varat sekot meklējumiem, nosakot CNC mašīnas faktisko padevi. Tas aptvers printera reversās inženierijas daļu, arduino programmaparatūru, datora programmatūru un rezultātus, ko ieguvu ar kolēģu palīdzību, un miskasti, kas pārvērtās dārgumā.

1. solis: materiāli, rīki, ierīces, kas tiek izmantotas projekta īstenošanai

Kad es sāku ar to strādāt, es izdomāju īsu sarakstu ar lietām, kas mums būs vajadzīgas:

  • izjaukts printera ratiņu mehānisms
  • rokas instrumenti, lai to pielāgotu
  • lodāmurs, lodēt, vadi
  • multimetrs
  • osciloskops vai loģikas analizators - tas nav absolūti nepieciešams
  • enerģijas padeve
  • mikroskops
  • Arduino nano + pinout
  • Dators ar Arduino IDE, Visual Studio 2008 Express + MS Charting rīki
  • (MPU6050 - es galu galā neizmantoju šo)
  • gatavs pārlūkot visu, ko nezināt, kā darīt

Sākumā es domāju, ka MPU6050 plāksne ļaus man izmērīt padeves ātrumu uz visām trim asīm vienlaikus. Tā kā tajā bija akselerometrs, es biju pārliecināts, ka, apkopojot akselerometra datus, tiks iegūta vēlamā vērtība - ātrums uz katru asi. Pēc Arduino fragmenta lejupielādes un modificēšanas, kurā sērijveida monitorā tika parādīti neapstrādāti dati, Visual Studio uzrakstīju nelielu datora programmu, kas apstrādāja datus, un uzzīmēja to diagrammā, lai būtu vieglāk interpretēt. Man bija jālejupielādē gan Visual Studio C# Express 2008, gan diagrammu veidošanas rīki.

Pēc kāda laika kodēšanas un visu nepieciešamo lietu meklēšanas sērijveida sakariem, es nonācu pie attēlotajām vērtībām, taču neatkarīgi no tā, ko es darīju, tas nebija izmantojams. Nelielas, bet pēkšņas kustības izraisītu milzīgus tapas, bet garāki ceļojumi pat nebūtu redzami diagrammās. Pēc divu dienu āmuru MPU6050 beidzot padevos un pievērsos kam citam - izjaukta printera pozīcijas atgriezeniskās saites mehānismam.

2. darbība. Aparatūras lietas, kas jāizdara

Aparatūras lietas, kas bija jāizdara
Aparatūras lietas, kas bija jāizdara
Aparatūras lietas, kas bija jāizdara
Aparatūras lietas, kas bija jāizdara
Aparatūras lietas, kas bija jāizdara
Aparatūras lietas, kas bija jāizdara
Aparatūras lietas, kas bija jāizdara
Aparatūras lietas, kas bija jāizdara

Reversā inženierija

Protams, printera mehānismam nebija detaļas numura, kuru es būtu varējis izmantot, lai noteiktu tā precīzās īpašības, bija nepieciešama neliela reversā inženierija, lai nokļūtu tur, kur mēs gribējām. Pēc rūpīgas mehānisma un elektronikas pārbaudes es nolēmu, ka vispirms ir jānosaka optisko sensoru tapas. Tas bija jādara, lai visu sasaistītu ar Arduino. Es izjaucu melno plastmasas daļu, izvilku PCB un pārbaudīju sensoru: uz tā bija uzrakstīts ROHM RPI-2150. Tas mani iepriecināja, cerība bija liela, ka es atradīšu datu lapu. Diemžēl šī ir veca vai pielāgota daļa - nevienā tīmekļa vietnē nebija atrodama datu lapa. Tas nozīmēja, ka man viss ir jāpārņem savās rokās: zinot, ka šajos sensoros parasti ir infrasarkanais LED un divi fototransistori, es paķēru multimetru, iestatīju to diode mērīšanas režīmā un sāku mērīt starp tapām.

Strāvas tapas parasti ir viegli atrast - tām būs kondensatori, un tās parasti ir savienotas ar plašu pēdām uz PCB. Zemes pēdas bieži ir savienotas ar vairākiem spilventiņiem, lai nodrošinātu labāku trokšņa noraidīšanu.

Ievades un izvades tapas tomēr nav tik triviālas. Veicot mērījumus pāri diodēm, mērītājs parādīs tā virziena spriegumu vienā virzienā un pārslodzi (bezgalīgu) otrā. Man bija iespēja identificēt četras diodes starp tapām, secināju, ka ceturtajai diodei ir jābūt kaut kādam zener vai TVS diodei, jo tā atradās tieši starp komponenta strāvas tapām. Infrasarkanā izstarotāja atrašanās vietu bija viegli atrast, sērijveidā ar to bija 89R rezistors. Man palika divi diodes mērījumi uz atlikušajām divām tapām, tiem bija jābūt diviem uztvērējiem.

Piezīme. Šiem sensoriem ir divi uztvērēji, lai varētu noteikt kustības virzienu papildus pozīcijas noteikšanai, skaitot impulsus. Šīs divas izejas viļņu formas ir 90 ° ārpus fāzes, to izmanto, lai radītu atpakaļskaitīšanas vai atpakaļskaitīšanas impulsu. Sekojot šo impulsu skaitam, var noteikt precīzu drukas galviņas stāvokli.

Kad emitētājs un abi uztvērēji atradās, es pielodēju vadus uz to tapām, lai es varētu savienot sensoru ar Arduino. Pirms tam es piegādāju sensoram 3,3 V spriegumu, pāris reizes pārvilku sloksni starp sensoru un novēroju kvadrātveida vilni uz izejām. Kvadrātveida viļņa frekvence mainījās atkarībā no kustības ātruma, un es secināju, ka mērīšanas sistēma tagad ir gatava savienošanai ar Arduino.

Arduino savienošana

Šī jaunā "sensora" pievienošana ir ļoti vienkārša. Vienkārši pievienojiet sensora izejas D2 un D3 (tapas, kas spēj pārtraukt!), Un barošanas līnijas, un kodēšana var sākties.

3. darbība: Arduino kodēšana

Arduino kodēšana
Arduino kodēšana

Arduino kods ir diezgan vienkāršs. Es piešķīru funkciju, kas tiek izpildīta katru reizi, kad D2 redz augšupejošu malu, šī ir noilguma funkcija no manis pievienotā Arduino koda. Apskatot kvadrātiskā kodētāja signālus, jūs redzēsit šo:

  • vienā virzienā fāze A ir loģiski augsta katrā B fāzes augšējā malā
  • otrā virzienā fāze A ir loģiski zema katrā B fāzes augšējā malā

Tas bija kodētāja īpašums, kuru es izmantoju: tā kā funkcija elapse tiek izpildīta katru reizi, kad D2 ir augoša mala, es vienkārši uzrakstīju, ja tas palielina skaitītāju, kad D3 ir augsts, un samazina to, kad D3 ir zems. Pirmajā mēģinājumā tas darbojās, es nosūtīju skaitītāja vērtību uz seriālo monitoru un noskatījos, kā tā palielinās/samazinās, kad es pārvietoju printera galvu uz vārpstas.

Īsi sakot, programmaparatūra cilpas funkcijā veic šādas darbības:

  1. pārbauda sērijveida saņemšanas buferi attiecībā uz ienākošajiem datiem
  2. ja ir ienākošie dati, pārbaudiet, vai tas ir “1” vai nē
  3. ja tas ir “1”, tas nozīmē, ka datora programmatūra pieprasa skaitītāja vērtību
  4. nosūtīt skaitītāja vērtību uz datoru, izmantojot sēriju
  5. sākt no 1.

Līdz ar to bumba tagad atrodas datora programmatūras laukumā. Iedziļināsimies tajā!

4. solis: Visual Studio C# programmatūra

Programmas VS C# mērķis bija pārvietot skaitļošanas slogu no Arduino uz datoru. Šī programmatūra saņem Arduino sniegtos datus, aprēķina un parāda ātrumu grafika veidā.

Tas, ko es vispirms izdarīju, bija meklēt Google, kā veikt seriālo komunikāciju C#. MSDN.com es atradu daudz labas informācijas kopā ar labu piemēru, tad es vienkārši izmetu to, kas man nebija vajadzīgs - būtībā visu, izņemot lasīšanas daļu. Es iestatīju COM portu un ātrumu, lai tas atbilstu Arduino ātrumam, pēc tam tikai dažus mēģinājumus un visu, kas nonāca seriālajā portā, izmetu daudzrindu tekstlodziņā.

Pēc vērtību nolasīšanas es varētu vienkārši izmantot funkcijas readto & split, lai izolētu vienu mērījumu viens no otra un no norobežojošām rakstzīmēm. Tie tika uzzīmēti diagrammas vadīklā, un vērtības sāka parādīties ekrānā.

Ja VS rīkjoslā neredzat diagrammas vadīklu, varat meklēt Google un atrast risinājumu šeit (meklējiet atbildi Nr. 1): saite

Mērīšanas princips

Lai atrastu saikni starp skaitījumu skaitu un galvas nobraukto attālumu, mēs nulles skaitīšanas vērtību, ar roku pārvietojām printera galvu par 100 mm un novērojām skaita izmaiņas. Mēs beidzot izdomājām šādu proporciju: 1 skaits = 0,17094 mm.

Tā kā mēs varam vaicāt attālumu un mēs varam izmērīt laiku starp paraugiem, mēs varam aprēķināt ātrumu, kādā notiek pozīcijas maiņa - mēs varam aprēķināt ātrumu!

Pateicoties TMR0, programmatūras laiks ir aptuveni 50 ms, taču mēs novērojām, ka šie laiki nebija pārāk precīzi. Patiesībā, pēc dažiem programmatūras ātruma mērījumiem, mēs atklājām, ka 50 ms ar laiku nav 50 ms. Tas nozīmēja, ka paraugi netika ņemti ar noteiktu intervālu, tāpēc arī ātruma aprēķinā nevarēja izmantot fiksētu laika bāzi. Kad mēs atradām šo problēmu, bija viegli turpināt: mēs ņēmām attāluma starpību un laika starpību un aprēķinājām ātrumu kā D_distance/D_time (nevis D-distance/50ms).

Turklāt, tā kā mūsu vienādojums atgrieztu ātrumu mm/50 ms vienībās, mums tas jāreizina ar 1200, lai iegūtu attālumu, ko galva veiktu vienā minūtē [mm/minūtē].

Piezīme: Mach 3 CNC dzirnavu vadības programmatūra nosaka padeves ātrumu [mm/min] vienībās

Filtrēšana

Kopš šī brīža mērījumi šķita diezgan precīzi, taču uz izmērītā signāla bija zināms troksnis. Mums bija aizdomas, ka tas ir saistīts ar vārpstas, vārpstas sakabes uc mehāniskajām neatbilstībām, tāpēc nolēmām to filtrēt, lai iegūtu jauku vidējo vērtību.

Smalki programmatūras pielāgojumi

Lai izpildes laikā mainītu izlases ātrumu un filtra ātrumu, tika pievienotas ritjoslas - pa vienai katrai. Tika ieviesta arī iespēja slēpt zemes gabalus.

5. darbība. Rezultāti

Rezultāti
Rezultāti
Rezultāti
Rezultāti
Rezultāti
Rezultāti
Rezultāti
Rezultāti

Kad aparatūras un programmatūras daļas bija gatavas, mēs veica trīs mērījumu komplektus ar mach 3 + manu programmatūru, jūs varat redzēt rezultātus pievienotajos attēlos. Vēlāki eksperimenti parādīja labāku precizitāti, palielinot gan filtru, gan izlases ātrumu. Zīmējumi parāda izmērīto ātrumu ar vienmērīgu sarkanu krāsu un vidējo ar zilu punktu ar punktētu punktu.

Tas nozīmē, ka izskatās, ka Mach 3 apstrādā šos ātruma iestatījumus diezgan precīzi, bet tagad mēs to zinām droši:)

Es ceru, ka jums patika šī īsa pamācība par reverso inženieriju un ūdens pārvēršanu vīnā!

Priekā!

Ieteicams: