Sisukord:

Vanametallist valmistatud CNC etteande mõõtmise tööriist: 5 sammu
Vanametallist valmistatud CNC etteande mõõtmise tööriist: 5 sammu

Video: Vanametallist valmistatud CNC etteande mõõtmise tööriist: 5 sammu

Video: Vanametallist valmistatud CNC etteande mõõtmise tööriist: 5 sammu
Video: Самодельный багги из запорожца. Баги своими руками из металлолома. 2024, Juuli
Anonim
Vanametallist valmistatud CNC etteande mõõtmise tööriist
Vanametallist valmistatud CNC etteande mõõtmise tööriist

Kas keegi on kunagi tahtnud mõõta tegelikku etteandekiirust CNC-masinal? Tõenäoliselt mitte, enne kui freesid on pärast CNC -tööd terved … aga kui need hakkavad regulaarselt purunema, on ehk aeg uurida. Selles juhendis saate CNC-masina tegeliku etteandekiiruse määramiseks järgida ülesannet. See hõlmab printeri pöördprojekteerimise osa, arduino püsivara, arvutitarkvara ja minu kolleegide abiga saadud tulemusi ning aardeks muudetud prügikasti.

Samm: projekti käivitamiseks kasutatud materjalid, tööriistad, seadmed

Sellega tegelema asudes mõtlesin välja lühikese nimekirja asjadest, mida vajame:

  • lahti võetud printerikanduri mehhanism
  • käsitööriistad selle parandamiseks
  • jootekolb, jootetraat, juhtmed
  • multimeeter
  • ostsilloskoop või loogikaanalüsaator - see pole absoluutselt vajalik
  • toiteallikas
  • mikroskoop
  • Arduino nano + pinout
  • Arvuti, kuhu on installitud Arduino IDE, Visual Studio 2008 Express + MS Charting tööriistad
  • (MPU6050 - ma ei kasutanud seda lõpuks)
  • valmis sirvima kõike, mida te ei tea, kuidas seda teha

Alguses arvasin, et MPU6050 plaat võimaldab mul mõõta etteande kiirust kõigil kolmel teljel korraga. Kui kiirendusmõõtur oli sees, olin kindel, et kiirendusmõõturi andmete kokkuvõtmine annab mulle soovitud väärtuse - kiiruse igal teljel. Pärast Arduino jupi allalaadimist ja muutmist, mis näitasid seeriamonitoril töötlemata andmeid, kirjutasin Visual Studio'is väikese arvutiprogrammi, mis andmeid töödeldi, ja joonistasin selle diagrammi lihtsamaks tõlgendamiseks. Selleks pidin alla laadima nii Visual Studio C# Express 2008 kui ka graafikutööriistad.

Pärast mõnda aega kodeerimist ja kõikide jadakommunikatsiooni jaoks vajalike asjade otsimist jõudsin lõpuks joonistatud väärtusteni, kuid olenemata sellest, mida tegin, ei olnud see kasutatav. Väikesed, kuid äkilised liigutused tooksid kaasa tohutuid naelu, samas kui pikemad reisid ei ilmu isegi edetabelitesse. Pärast kahepäevast MPU6050 haamrit andsin lõpuks alla ja pöördusin millegi muu poole - lahti võetud printeri asukoha tagasiside mehhanismi.

2. samm: riistvara, mis tuli teha

Riistvara, mis vajas tegemist
Riistvara, mis vajas tegemist
Riistvara, mis vajas tegemist
Riistvara, mis vajas tegemist
Riistvara, mis vajas tegemist
Riistvara, mis vajas tegemist
Riistvara, mis vajas tegemist
Riistvara, mis vajas tegemist

Pöördtehnika

Loomulikult ei olnud printerimehhanismil osa numbrit, mida oleksin saanud kasutada selle täpsete omaduste kindlaksmääramiseks, oli vaja veidi ümberpööramist, et jõuda soovitud kohale. Pärast mehhanismi ja elektroonika põhjalikku uurimist otsustasin, et esimene asi peab olema optiliste andurite tihvtide tuvastamine. Seda tuli teha, et ühendada kogu asi Arduinoga. Võtsin musta plastosa lahti, ekstraheerisin trükkplaadi ja uurisin andurit: sellele oli kirjutatud ROHM RPI-2150. See tegi mind õnnelikuks, lootus oli suur, et leian andmelehe. Kahjuks on see kas vana või kohandatud osa - andmelehte ei leitud kuskilt veebist. See tähendas, et pidin asjad enda kätte võtma: teades, et nendes andurites on tavaliselt infrapuna-LED ja kaks fototransistorit, haarasin multimeetri, seadsin selle dioodide mõõtmisrežiimi ja hakkasin tihvtide vahel mõõtma.

Toitepistikuid on tavaliselt lihtne leida - neil on kondensaatorid ja need on tavaliselt ühendatud laiade jälgedega trükkplaatidel. Maapinna jäljed on sageli ühendatud mitme padjaga, et müra paremini summutada.

Sisendi ja väljundi tihvtid pole siiski nii tühised. Dioodi mõõtmisel näitab arvesti ühes suunas oma edasipinget ja teises suunas ülekoormust (lõpmatu). Suutsin tihvtide vahel tuvastada neli dioodi, jõudsin järeldusele, et neljas diood peab olema mingi zeneri- või TVS -diood, kuna see oli täpselt komponendi toitepistikute vahel. Infrapuna kiirguri leidmine oli lihtne, sellega oli jadamisi 89R takisti. Ülejäänud kahel tihvtil jäin kahe dioodi mõõtmisega, need pidid olema kaks vastuvõtjat.

Märkus. Nendel anduritel on kaks vastuvõtjat, et lisaks positsiooni määramisele impulsside loendamise abil oleks võimalik määrata ka liikumissuund. Need kaks väljundlainekuju on faasist 90 ° väljas, seda kasutatakse loendus- või loenduspulsi tekitamiseks. Nende impulsside arvu jälgides saab määrata prindipea täpse asendi.

Kui emitter ja kaks vastuvõtjat paiknesid, jootsin nende tihvtidele juhtmed, nii et saan anduri ühendada Arduinoga. Enne seda andsin andurile 3,3 V toite, tõmbasin paar korda riba anduri vahele ja jälgisin väljundite ruudulainet. Ruutlaine sagedus varieerus vastavalt liikumiskiirusele ja jõudsin järeldusele, et mõõtmissüsteem on nüüd valmis Arduinoga ühendamiseks.

Arduino ühendamine

Selle uue anduri ühendamine on väga lihtne. Lihtsalt ühendage andurite väljundid D2 ja D3-ga (katkestusvõimelised tihvtid!), Toitejuhtmed ja kodeerimine võib alata.

Samm: Arduino kodeerimine

Arduino kodeerimine
Arduino kodeerimine

Arduino kood on üsna lihtne. Ma määrasin funktsiooni, mis käivitub iga kord, kui D2 näeb tõusvat serva, see on lisatud Arduino koodi lõppemise funktsioon. Kui vaatate ruutmeetri signaale, näete järgmist:

  • ühes suunas on faas A loogiline igal faasi B tõusva serval
  • teises suunas on faas A loogiline iga faasi B tõusev serv

See oli kodeerija omadus, mida ma kasutasin: kuna funktsioon elapse käivitub iga kord, kui D2 -l on tõusev serv, kirjutasin ma lihtsalt, kui see suurendab loendurit, kui D3 on kõrge, ja vähendab seda, kui D3 on madal. See töötas esimesel katsel, saatsin loenduri väärtuse seeriamonitorile ja jälgisin selle suurenemist/vähenemist, kui printeripea võllil liigutasin.

Lühidalt öeldes teeb püsivara silmusefunktsioonis järgmist:

  1. kontrollib jada vastuvõtu puhvrit sissetulevate andmete osas
  2. sissetulevate andmete korral kontrollige, kas see on 1 või mitte
  3. kui see on '1', tähendab see, et arvuti tarkvara küsib loenduri väärtust
  4. saatke loenduri väärtus arvutisse jada kaudu
  5. alustage algusest 1.

Sellega on pall nüüd arvutitarkvara väljakul. Asume sellesse!

4. samm: tarkvara Visual Studio C#

Programmi VS C# eesmärk oli arvutuskoormuse nihutamine Arduino arvutist. See tarkvara võtab vastu Arduino pakutavad andmed, arvutab ja kuvab kiiruse graafiku kujul.

Mida ma kõigepealt tegin, oli guugeldada, kuidas C#jadaühendust teha. Leidsin MSDN.com -ist palju head teavet koos hea näitega, siis viskasin lihtsalt vajaliku välja - põhimõtteliselt kõik peale lugemisosa. Seadistasin COM-pordi ja kiiruse Arduino omaga vastavusse, siis proovisin vaid paar korda ja viskasin kõik, mis jadaportis oli, mitme rea tekstikasti.

Pärast väärtuste lugemist võisin lihtsalt kasutada funktsioone readto & split, et eraldada üks mõõtmine üksteisest ja eraldajatest. Need joonistati diagrammi juhtelemendile ja väärtused hakkasid ekraanile ilmuma.

Kui te ei näe diagrammi juhtelementi oma VS -i tööriistakastis, võite probleemi googeldada ja siit lahenduse leida (otsige vastust nr 1): link

Mõõtmise põhimõte

Loenduste arvu ja pea läbitud vahemaa vahelise seose leidmiseks nullisime loendusväärtuse, nihutasime käsitsi printeripea 100 mm ja jälgisime loenduste muutumist. Lõpuks jõudsime järgmise proportsioonini: 1 arv = 0,17094 mm.

Kuna saame küsida kaugust ja saame mõõta proovide vahelist aega, saame arvutada positsiooni nihkumise kiiruse - saame arvutada kiiruse!

Tänu TMR0 -le on tarkvara ligikaudne ajastus 50 ms, kuid täheldasime, et need ajastused ei olnud liiga täpsed. Tegelikult leidsime pärast mõningaid tarkvara kiiruse mõõtmisi, et ajastatud 50 ms pole üldse 50 ms. See tähendas, et proove ei võetud kindla intervalliga, seega ei saanud ka kiiruse arvutamisel kasutada kindlat ajavahemikku. Kui leidsime selle probleemi, oli lihtne edasi liikuda: võtsime vahe ja aja erinevuse ning arvutasime kiiruseks D_distance/D_time (D-distance/50ms).

Samuti, kuna meie võrrand tagastab kiiruse mm/50 ms ühikutes, peame selle korrutama 1200 -ga, et saada kaugus, mille pea läbiks ühe minuti jooksul [mm/minutis].

Märkus: Mach 3 CNC veski juhtimistarkvara määratleb etteandekiirused ühikutes [mm/minut]

Filtreerimine

Sellest hetkest alates tundusid mõõtmised üsna täpsed, kuid mõõdetud signaalil oli müra. Kahtlustasime, et selle põhjuseks on võlli, võlli haakeseadise jms mehaanilised vastuolud, seega otsustasime selle välja filtreerida, et saada mõõdetud väärtuse kena keskmine väärtus.

Tarkvara täpsed kohandused

Proovimäära ja filtrimäära muutmiseks käitamise ajal lisati kerimisribad - üks kummagi jaoks. Samuti tutvustati kruntide peitmise võimalust.

5. samm: tulemused

Tulemused
Tulemused
Tulemused
Tulemused
Tulemused
Tulemused
Tulemused
Tulemused

Kui riistvara ja tarkvara osad olid valmis, tegime masinaga 3 + minu tarkvara kolm mõõtmiste komplekti, tulemusi näete lisatud piltidel. Hilisemad katsed näitasid paremat täpsust, nii filtri kui ka proovivõtu sagedust suurendati. Graafikud näitavad mõõdetud kiirust pideva punasega ja keskmist kriips-punktiga sinisega.

Nagu öeldud, tundub, et Mach 3 käsitleb neid kiiruse seadeid üsna täpselt, kuid nüüd teame kindlalt:)

Loodan, et teile meeldis see lühike õpetus pöördtehnoloogia ja vee veiniks muutmise kohta!

Tervist!

Soovitan: