INHOUDSOPGAWE:

CNC-meetmeetgereedskap gemaak van skroot: 5 stappe
CNC-meetmeetgereedskap gemaak van skroot: 5 stappe

Video: CNC-meetmeetgereedskap gemaak van skroot: 5 stappe

Video: CNC-meetmeetgereedskap gemaak van skroot: 5 stappe
Video: Add a Form Tool to the Vectric Tool Database - Part 37 - Vectric For Absolute Beginners 2024, Julie
Anonim
CNC meetmeetgereedskap gemaak van afval
CNC meetmeetgereedskap gemaak van afval

Het iemand al ooit die werklike voersnelheid op 'n CNC-masjien wou meet? Waarskynlik nie, totdat die frees ongeskonde is na 'n CNC -werk … maar as dit gereeld begin breek, is dit miskien tyd om dit te ondersoek. In hierdie instruksies kan u 'n soeke volg om die werklike voedingssnelheid van 'n CNC-masjien te bepaal. Dit dek die omgekeerde ontwerp van 'n drukker, arduino-firmware, rekenaarprogrammatuur en die resultate wat ek met die hulp van my kollegas gekry het, en 'n asblik wat in skat verander is.

Stap 1: Materiaal, gereedskap, toestelle wat gebruik word om die projek aan die gang te kry

Toe ek hieraan begin werk, dink ek aan 'n kort lys van die dinge wat ons nodig sal hê:

  • gedemonteerde meganisme van die drukkar
  • handgereedskap om dit aan te pas
  • soldeerbout, soldeer, drade
  • multimeter
  • ossilloskoop of logiese ontleder - dit is nie absoluut nodig nie
  • kragtoevoer
  • mikroskoop
  • Arduino nano + pinout
  • Rekenaar met Arduino IDE, Visual Studio 2008 Express + MS kaartgereedskap geïnstalleer
  • (MPU6050 - ek het dit uiteindelik nie gebruik nie)
  • bereid om na alles te kyk wat u nie weet nie

Aan die begin het ek gedink dat 'n MPU6050-bord my toelaat om die voersnelheid op al drie asse tegelyk te meet. Met die versnellingsmeter daarin, was ek seker dat die opsomming van versnellingsmeterdata my die gewenste waarde sal gee - die snelheid op elke as. Nadat ek 'n Arduino -brokkie wat rou data op die seriële monitor vertoon het, afgelaai en gewysig het, het ek 'n klein rekenaarprogram in Visual Studio geskryf wat die data verwerk het en dit op 'n grafiek geplaas om dit makliker te interpreteer. Ek moes beide Visual Studio C# Express 2008 en die kaartgereedskap hiervoor aflaai.

Nadat ek 'n rukkie gekodeer het en al die dinge opgesoek het wat ek nodig gehad het vir seriële kommunikasie, het ek die waardes gekry, maar maak nie saak wat ek gedoen het nie, dit was nie bruikbaar nie. Klein, maar skielike bewegings sal groot spykers tot gevolg hê, terwyl langer reise nie eers op die kaarte verskyn nie. Na twee dae se hamer van die MPU6050, gee ek uiteindelik op en wend my tot iets anders - 'n gedemonteerde meganisme vir terugvoer van die posisie van die drukker.

Stap 2: Hardeware wat u moet doen

Hardeware wat u moet doen
Hardeware wat u moet doen
Hardeware wat u moet doen
Hardeware wat u moet doen
Hardeware wat u moet doen
Hardeware wat u moet doen
Hardeware wat u moet doen
Hardeware wat u moet doen

Omgekeerde ingenieurswese

Die drukkermeganisme het natuurlik geen onderdeelnommer gehad wat ek kon gebruik om die presiese eienskappe daarvan te bepaal nie; daar was 'n bietjie reverse engineering nodig om te kom waar ons wou. Nadat ek die meganisme en die elektronika deeglik ondersoek het, het ek besluit dat die eerste ding die identifisering van die optiese sensorpenne moet wees. Dit moes gedoen word om die hele ding met die Arduino te koppel. Ek het die swart plastiekgedeelte uitmekaar gehaal, die printplaat onttrek en die sensor ondersoek: daar was ROHM RPI-2150 op geskryf. Dit het my gelukkig gemaak; die hoop was groot dat ek 'n datablad sal vind. Ongelukkig is dit 'n ou of 'n pasgemaakte onderdeel - daar kon nêrens op die internet 'n datablad gevind word nie. Dit het beteken dat ek die saak in eie hande moes neem: wetende dat hierdie sensors gewoonlik 'n infrarooi LED en twee fototransistors aan die binnekant het, gryp ek 'n multimeter, sit dit in die diode-metingsmodus en begin meet tussen penne.

Die kragpenne is gewoonlik maklik om te vind - hulle het kapasitors oor hulle, en hulle is gewoonlik verbind met wye spore op die PCB -s. Grondspore word dikwels aan verskeie pads gekoppel vir 'n beter afwysing van geraas.

Die invoer- en uitvoerpenne is egter nie so triviaal nie. By die meting oor 'n diode sal die meter sy voorwaartse spanning in die een rigting wys, en oorlading (oneindig) in die ander. Ek kon vier diodes tussen penne identifiseer; ek het tot die gevolgtrekking gekom dat die vierde diode 'n soort zener of TVS -diode moet wees, soos dit tussen die kragpenne van die komponent was. Dit was maklik om die infrarooi emitter op te spoor; daar was 'n 89R -weerstand in serie. Ek het twee diode metings op die oorblywende twee penne oorgebly, dit moes die twee ontvangers wees.

Opmerking: hierdie sensors het twee ontvangers om die bewegingsrigting te bepaal, benewens die bepaling van die posisie deur die pulse te tel. Hierdie twee uitsetgolfvorms is 90 ° buite fase, dit word gebruik om 'n optel- of aftelpuls te produseer. Deur die aantal pulse te volg, kan die presiese posisie van die drukkop bepaal word.

Toe die sender en die twee ontvangers gevind word, het ek drade aan hul penne gesoldeer, sodat ek die sensor met die Arduino kan koppel. Voordat ek dit gedoen het, het ek die sensor van 3.3V voorsien, die strook 'n paar keer tussen die sensor getrek en die vierkantgolf op die uitsette waargeneem. Die frekwensie van die vierkantgolf wissel met die bewegingsnelheid, en ek het tot die gevolgtrekking gekom dat die metingsisteem nou gereed is om aan die Arduino gekoppel te word.

Verbind die Arduino

Dit is baie maklik om hierdie nuwe 'sensor' aan te sluit. Koppel net die sensoruitsette aan D2 en D3 (penne wat onderbreek kan word!), En die kragtoevoerlyne en die kodering kan begin.

Stap 3: Arduino -kodering

Arduino -kodering
Arduino -kodering

Die Arduino -kode is redelik eenvoudig. Ek het 'n funksie toegewys wat uitgevoer word elke keer as D2 'n stygende rand sien, dit is die vervaldatum van die Arduino -kode wat ek aangeheg het. As u na die seine van 'n kwadratiese encoder kyk, sien u dit:

  • in een rigting is fase A logies hoog op elke fase B stygende rand
  • in die ander rigting is fase A logies laag op elke fase B stygende rand

Dit was die eienskap van die encoder wat ek gebruik het: aangesien die verstrykfunksie uitgevoer word elke keer as D2 'n stygende rand het, skryf ek net 'n as dit 'n teller verhoog wanneer D3 hoog is, en dit verminder wanneer D3 laag is. Dit het met die eerste probeerslag gewerk, ek het die tellerwaarde na die seriële monitor gestuur en gesien hoe dit toeneem/afneem toe ek die drukkop op die as skuif.

Kort verhaal, die firmware doen die volgende in die lusfunksie:

  1. kyk na die seriële ontvangbuffer vir inkomende data
  2. As daar inkomende data is, kyk of dit 'n '1' is of nie
  3. as dit '1' is, beteken dit dat die rekenaarprogrammatuur die tellerwaarde aanvra
  4. stuur die tellerwaarde per reeks na die rekenaar
  5. begin weer by 1.

Hiermee is die bal nou in die rekenaarprogrammatuur. Laat ons daarby ingaan!

Stap 4: Visual Studio C# sagteware

Die doel van die VS C# -program was om die berekeningslas van die Arduino na die rekenaar te verskuif. Hierdie sagteware ontvang die data wat die Arduino verskaf, bereken en vertoon die spoed in die vorm van 'n grafiek.

Wat ek eers gedoen het, was om te google hoe om seriële kommunikasie in C#te doen. Ek het baie goeie inligting op MSDN.com gevind, tesame met 'n goeie voorbeeld, en toe gooi ek weg wat ek nie nodig gehad het nie - basies alles behalwe die leesgedeelte. Ek het die COM-poort en die snelheid wat ooreenstem met die van die Arduino opgestel, en ek het dit net 'n paar keer probeer en alles wat op die seriële poort kom, in 'n tekstriglyn met meer reëls gegooi.

Nadat die waardes gelees is, kon ek net die readto & split -funksies gebruik om een meting van mekaar en van skeidingstekens te isoleer. Dit is op 'n kaartkontrole geteken, en die waardes begin op die skerm verskyn.

As u nie die grafiekbeheer in u VS -gereedskapskas kan sien nie, kan u die probleem google en die oplossing hier vind (soek na antwoord #1): skakel

Die metingsbeginsel

Om die verband te vind tussen die aantal tellings en die afstand wat die kop aflê, het ons die telwaarde nul gemaak, die drukkop met die hand 100 mm beweeg en die verandering in tellings waargeneem. Uiteindelik het ons die volgende verhouding gekry: 1 telling = 0.17094mm.

Aangesien ons die afstand kan ondersoek en die tyd tussen die monsters kan meet, kan ons die tempo bereken waarteen die posisieskuif plaasvind - ons kan die spoed bereken!

Danksy TMR0 is daar 'n rowwe sagteware -tydsberekening van 50 ms, maar ons het opgemerk dat hierdie tye nie te akkuraat was nie. Na 'n paar sagtewaresnelheidmetings het ons trouens gevind dat die tydsbestek van 50ms glad nie 50ms is nie. Dit het beteken dat die monsters nie met 'n vaste interval geneem is nie, sodat die snelheidsberekening ook nie 'n vaste tydsbasis kon gebruik nie. Sodra ons hierdie probleem gevind het, was dit maklik om verder te gaan: ons het die verskil in afstand en die tydsverskil geneem en die snelheid bereken as D_afstand/D_tyd (in plaas van D-afstand/50ms).

Omdat ons vergelyking ook die snelheid in eenhede van mm/50ms sou teruggee, moet ons dit vermenigvuldig met 1200 om die afstand te kry wat die kop in 'n minuut sou bereik, in [mm/minuut].

Let wel: die Mach 3 CNC-meul-beheersagteware definieer die toevoertempo's in eenhede van [mm/minuut]

Filtering

Vanaf hierdie punt was die metings redelik akkuraat, maar daar was 'n bietjie geraas op die gemete sein. Ons het vermoed dat dit te wyte was aan meganiese teenstrydighede in die as, askoppeling, ens.

Fyn aanpassings aan die sagteware

Om die steekproef- en filtreertempo tydens looptyd te verander, is rolbalke bygevoeg - een vir elk. Die vermoë om die erwe te verberg, is ook bekendgestel.

Stap 5: Resultate

Resultate
Resultate
Resultate
Resultate
Resultate
Resultate
Resultate
Resultate

Nadat die hardeware- en sagteware -onderdele gereed was, het ons drie stelle metings uitgevoer met mach 3 + my sagteware, en u kan die resultate op die aangehegte foto's sien. Die plotte toon die gemete snelheid met soliede rooi, en die gemiddelde met blou strepies.

Dit gesê, dit lyk asof Mach 3 hierdie snelheidsinstellings redelik akkuraat hanteer, maar nou weet ons dit verseker:)

Ek hoop dat u hierdie kort instruksie oor reverse-engineering en die omskakeling van water in wyn geniet het!

Cheers!

Aanbeveel: