Sisällysluettelo:

Romuista valmistettu CNC-syöttönopeuden mittauslaite: 5 vaihetta
Romuista valmistettu CNC-syöttönopeuden mittauslaite: 5 vaihetta

Video: Romuista valmistettu CNC-syöttönopeuden mittauslaite: 5 vaihetta

Video: Romuista valmistettu CNC-syöttönopeuden mittauslaite: 5 vaihetta
Video: Дамасская сталь из обрезков двух проектов. 2024, Marraskuu
Anonim
Romuista valmistettu CNC-syöttönopeuden mittauslaite
Romuista valmistettu CNC-syöttönopeuden mittauslaite

Onko kukaan koskaan halunnut mitata todellista syöttöarvoa CNC-koneella? Luultavasti ei, ennen kuin jyrsimet ovat ehjät CNC -työn jälkeen … mutta kun ne alkavat rikkoutua säännöllisesti, ehkä on aika tutkia. Tässä ohjeessa voit seurata tehtävää CNC-koneen todellisen syöttönopeuden määrittämiseksi. Se kattaa tulostimen käänteisen suunnittelun osan, arduino-laiteohjelmiston, PC-ohjelmiston ja tulokset, jotka sain kollegoideni avulla, ja roskakorista aarre.

Vaihe 1: Materiaalit, työkalut, laitteet, joita käytetään projektin käynnistämiseen

Kun aloin työskennellä tämän asian parissa, ajattelin lyhyen luettelon tarvitsemistamme asioista:

  • irrotettu tulostimen vaunumekanismi
  • käsityökaluja sen säätämiseksi
  • juotin, juote, johdot
  • yleismittari
  • oskilloskooppi tai logiikka -analysaattori - tämä ei ole ehdottoman välttämätöntä
  • virtalähde
  • mikroskooppi
  • Arduino nano + pinout
  • PC, johon on asennettu Arduino IDE, Visual Studio 2008 Express + MS Charting -työkalut
  • (MPU6050 - en lopulta käyttänyt tätä)
  • valmis selaamaan kaikkea, mitä et tiedä miten tehdä

Aluksi ajattelin, että MPU6050-kortin avulla voin mitata syöttöarvon kaikilla kolmella akselilla kerralla. Kun siinä oli kiihtyvyysmittari, olin varma, että kiihtyvyysmittarin tietojen yhteenveto antaa minulle halutun arvon - nopeuden kullakin akselilla. Lataamisen ja muokkaamisen jälkeen Arduino -katkelma, joka näytti raakadataa sarjamittarissa, kirjoitin Visual Studiossa pienen PC -ohjelman, joka käsittelee tiedot ja piirsin sen kaavioon tulkinnan helpottamiseksi. Minun piti ladata sekä Visual Studio C# Express 2008 että kartoitustyökalut tätä varten.

Koodauksen jälkeen jonkin aikaa ja etsimällä kaikki tarvittavat asiat sarjaliikenteeseen, päädyin piirrettyihin arvoihin, mutta riippumatta siitä, mitä tein, se ei ollut käyttökelpoinen. Pienet mutta äkilliset liikkeet johtavat valtaviin piikkeihin, kun taas pidemmät matkat eivät edes näy kaavioissa. Kahden päivän MPU6050: n vasaran jälkeen luovutin lopulta ja käännyin johonkin muuhun - purettuun tulostimen sijainnin palautusmekanismiin.

Vaihe 2: Laitteistot, jotka on tehtävä

Laitteistot, jotka piti tehdä
Laitteistot, jotka piti tehdä
Laitteistot, jotka piti tehdä
Laitteistot, jotka piti tehdä
Laitteistot, jotka piti tehdä
Laitteistot, jotka piti tehdä
Laitteistot, jotka piti tehdä
Laitteistot, jotka piti tehdä

Käänteinen suunnittelu

Tietenkin tulostinmekanismilla ei ollut osanumeroa, jota olisin voinut käyttää sen tarkkojen ominaisuuksien määrittämiseen, tarvittiin hieman käänteistä suunnittelua päästäksemme haluttuun kohtaan. Tutkittuani mekanismia ja elektroniikkaa tarkasti, päätin, että ensimmäisenä asiana on oltava optisten anturien nastojen tunnistaminen. Tämä oli tehtävä, jotta koko asia voitaisiin liittää Arduinoon. Purin mustan muoviosan, otin piirilevyn pois ja tutkin anturia: siihen oli kirjoitettu ROHM RPI-2150. Se sai minut onnelliseksi, toivo oli suuri, että löydän tietolomakkeen. Valitettavasti tämä on joko vanha tai mukautettu osa - tietolomaketta ei löytynyt mistään verkosta. Tämä tarkoitti sitä, että minun piti ottaa asiat omiin käsiin: tietäen, että näissä antureissa on yleensä infrapuna-LED ja kaksi valotransistoria, tartuin yleismittariin, asetin sen diodimittaustilaan ja aloitin mittaamisen nastojen välillä.

Virta -nastat on yleensä helppo löytää - niiden ympärillä on kondensaattoreita, ja ne on yleensä kytketty leveisiin jälkiin piirilevyissä. Maan jäljet yhdistetään usein useisiin tyynyihin melun paremman hylkäämisen varmistamiseksi.

Tulo- ja lähtönastat eivät kuitenkaan ole niin triviaalit. Kun mitataan diodin poikki, mittari näyttää etujännitteen yhteen suuntaan ja ylikuormituksen (ääretön) toiseen. Pystyin tunnistamaan neljä diodia nastojen välillä, päädyin siihen, että neljännen diodin on oltava jonkinlainen zener- tai TVS -diodi, koska se oli komponentin virtatappien välissä. Infrapunasäteilijän paikantaminen oli helppoa, sen kanssa oli 89R -vastus sarjassa. Minulle jäi kaksi diodimittausta jäljellä oleviin kahteen nastaan, joiden piti olla kaksi vastaanotinta.

Huomautus: Näissä antureissa on kaksi vastaanotinta, jotta ne voivat määrittää liikesuunnan aseman määrittämisen lisäksi laskemalla pulssit. Nämä kaksi lähtöaaltomuotoa ovat 90 ° pois vaiheesta, tätä käytetään laskenta- tai laskentapulssin tuottamiseen. Seuraamalla näiden pulssien lukumäärää, tulostuspään tarkka sijainti voidaan määrittää.

Kun lähetin ja kaksi vastaanotinta sijaitsivat, juotin johdot niiden nastoihin, jotta voin liittää anturin Arduinon kanssa. Ennen kuin tein sen, toimitin anturiin 3,3 V: n jännitteen, vedin nauhan anturin väliin pari kertaa ja havaitsin lähtöjen neliöaallon. Neliöaallon taajuus vaihteli liikenopeuden mukaan, ja päädyin siihen, että mittausjärjestelmä on nyt valmis liitettäväksi Arduinoon.

Arduinon yhdistäminen

Tämän uuden "anturin" liittäminen on erittäin helppoa. Liitä vain anturilähdöt D2: een ja D3: een (keskeytyskykyiset nastat!) Ja virtalähteisiin, ja koodaus voi alkaa.

Vaihe 3: Arduino -koodaus

Arduino -koodaus
Arduino -koodaus

Arduino -koodi on melko yksinkertainen. Määritin toiminnon, joka suoritetaan joka kerta, kun D2 näkee nousevan reunan, tämä on liittämäni Arduino -koodin kuluminen. Jos katsot toisen asteen enkooderin signaaleja, näet tämän:

  • yhdessä suunnassa vaihe A on logiikka korkea jokaisessa vaiheen B nousevassa reunassa
  • toisessa suunnassa vaihe A on looginen alhainen jokaisessa vaiheen B nousevassa reunassa

Tämä oli käyttämäni enkooderin ominaisuus: koska elapse -funktio suoritetaan joka kerta, kun D2: lla on nouseva reuna, kirjoitin juuri, jos se lisää laskuria, kun D3 on korkea, ja pienentää sitä, kun D3 on alhainen. Tämä toimi ensimmäisellä yrityksellä, lähetin laskurin arvon sarjamonitorille ja katsoin sen kasvavan/vähenevän, kun siirrän tulostimen päätä akselille.

Lyhyesti sanottuna, laiteohjelmisto tekee silmukkafunktiossa seuraavaa:

  1. tarkistaa sarjavastaanottopuskurin saapuvan datan varalta
  2. jos saapuvia tietoja on, tarkista, onko se 1 vai ei
  3. jos se on '1', se tarkoittaa, että PC -ohjelmisto pyytää laskurin arvoa
  4. lähettää laskurin arvon PC: lle sarjaportin kautta
  5. aloita alusta 1.

Pallo on nyt PC -ohjelmiston kentällä. Mennään siihen!

Vaihe 4: Visual Studio C# -ohjelmisto

VS C# -ohjelman tarkoituksena oli siirtää laskennallinen taakka Arduinolta tietokoneelle. Tämä ohjelmisto vastaanottaa Arduinon tarjoamat tiedot, laskee ja näyttää nopeuden kaavion muodossa.

Ensin tein Googlesta, miten sarjaliikenne tapahtuu C#: ssa. Löysin paljon hyvää tietoa MSDN.com -sivustolta ja hyvän esimerkin, ja sitten heitin vain sen, mitä en tarvinnut - periaatteessa kaiken paitsi lukuosan. Asensin COM-portin ja nopeuden vastaamaan Arduinon nopeutta, sitten yritin vain muutaman kerran ja pudotin kaiken sarjaporttiin tulevan moniriviseen tekstikenttään.

Kun arvot oli luettu, voisin vain käyttää readto & split -toimintoja eristääksesi yhden mittauksen toisistaan ja erotinmerkeistä. Nämä piirrettiin kaavion ohjausobjektiin, ja arvot alkoivat näkyä näytöllä.

Jos et näe kaavion ohjausobjektia VS -työkalupakissa, voit googlettaa ongelman ja löytää ratkaisun täältä (etsi vastaus #1): linkki

Mittausperiaate

Löytääksesi yhteyden lukumäärän ja pään kulkeman etäisyyden välillä nollasimme laskenta -arvon, liikutimme tulostinpäätä 100 mm käsin ja havaitsimme lukumäärän muutoksen. Lopulta saimme seuraavan osuuden: 1 määrä = 0,17094 mm.

Koska voimme kysyä etäisyyttä ja voimme mitata näytteiden välisen ajan, voimme laskea nopeuden, jolla sijainnin muutos tapahtuu - voimme laskea nopeuden!

TMR0: n ansiosta ohjelmiston ajoitus on noin 50 ms, mutta huomasimme, että nämä ajoitukset eivät olleet liian tarkkoja. Itse asiassa joidenkin ohjelmiston nopeusmittausten jälkeen huomasimme, että ajoitettu 50 ms ei ole ollenkaan 50 ms. Tämä tarkoitti sitä, että näytteitä ei otettu tietyin väliajoin, joten nopeuslaskenta ei myöskään voinut käyttää kiinteää aikaväliä. Kun löysimme tämän ongelman, oli helppo siirtyä eteenpäin: otimme etäisyyseron ja aikaeron ja laskimme nopeuden arvoksi D_distance/D_time (D-distance/50ms).

Lisäksi koska yhtälö palauttaisi nopeuden yksiköinä mm/50 ms, meidän on kerrottava tämä 1200: lla saadaksesi etäisyyden, jonka pää menisi minuutissa [mm/minuutti].

Huomautus: Mach 3 CNC-myllyn ohjausohjelmisto määrittää syöttönopeudet yksiköissä [mm/minuutti]

Suodatus

Tästä lähtien mittaukset näyttivät olevan melko tarkkoja, mutta mitatussa signaalissa oli jonkin verran kohinaa. Epäilimme, että tämä johtui akselin, akselikytkimen jne. Mekaanisista epäjohdonmukaisuuksista, joten päätimme suodattaa sen pois saadaksemme mukavan keskiarvon mitatusta.

Hienoja säätöjä ohjelmistoon

Näytteenottotaajuuden ja suodatusnopeuden muuttamiseksi ajon aikana vierityspalkkeja lisättiin - yksi kullekin. Lisäksi otettiin käyttöön mahdollisuus piilottaa juonet.

Vaihe 5: Tulokset

Tulokset
Tulokset
Tulokset
Tulokset
Tulokset
Tulokset
Tulokset
Tulokset

Kun laitteisto- ja ohjelmisto -osat olivat valmiit, suoritimme kolme mittaussarjaa mach 3 + -ohjelmistollani, näet tulokset liitteenä olevista kuvista. Myöhemmin tehdyt kokeet osoittivat parempaa tarkkuutta sekä suodattimen että näytteenottotaajuuden kasvaessa. Käyrät osoittavat mitatun nopeuden kiinteällä punaisella ja keskiarvon viiva-pisteellä sinisellä.

Näyttää kuitenkin siltä, että Mach 3 käsittelee nämä nopeusasetukset melko tarkasti, mutta nyt tiedämme varmasti:)

Toivottavasti pidit tästä lyhyestä ohjeesta käänteisestä suunnittelusta ja veden muuttamisesta viiniksi!

Kippis!

Suositeltava: