Sisällysluettelo:

CNC -rumpupiirturi: 13 vaihetta (kuvilla)
CNC -rumpupiirturi: 13 vaihetta (kuvilla)

Video: CNC -rumpupiirturi: 13 vaihetta (kuvilla)

Video: CNC -rumpupiirturi: 13 vaihetta (kuvilla)
Video: iPhone 13 Pro Motherboard Separation – The Hottest CPU? 2024, Marraskuu
Anonim
Image
Image
CNC -rumpupiirturi
CNC -rumpupiirturi

Tässä ohjeessa kuvataan A4/A3-plotteri, joka on valmistettu muoviputkesta, kahdesta BYJ-48-askelmoottorista ja SG-90-servosta. Pohjimmiltaan se on litteä plotteri, joka on rullattu rumpuun.

Toinen moottori pyörii rumpua ja toinen liikuttaa tulostuspäätä. Servoa käytetään kynän nostamiseen ja laskemiseen.

Tällä piirtimellä on useita etuja verrattuna perinteiseen tasopiirturiin:

  • huomattavasti pienempi jalanjälki
  • vaatii vain yhden lineaarisen ohjauskiskon
  • yksinkertainen rakentaa
  • halpa

Sisäinen tulkki hyväksyy Inkscapen gcode-tulostuksen.

Viestintä plotterin kanssa tapahtuu bluetooth -linkin kautta.

Piirturi on yhteensopiva ohjeessani https://www.instructables.com/id/CNC-Graphics-Table… kuvatun CNC Graphics Tabletin kanssa.

Vaikka tämä plotteri ei ole tarkkuuslaite, sen tarkkuus on tyydyttävä aiottuun tarkoitukseensa siirtää akvarelliviivat paperille.

Vaihe 1: Piiri

Piiri
Piiri

Piiri käsittää Arduino UNO R3 -mikro -ohjaimen ja mukautetun kilven, johon erilliset komponentit on asennettu. Virta syötetään ulkoisen 5 voltin 1 ampeerin säätimen kautta. Keskimääräinen virta on noin 500 mA.

BYJ-48-askelmoottorit on kiinnitetty portteihin (nastat D8, D9, D10, D11) ja PORTC (nastat A0, A1, A2, A3). SG-90 kynänostoservo on kiinnitetty nastaan D3.

560 ohmin vastukset, jotka voidaan jättää pois, antavat arduinolle oikosulkusuojan, jos jotain menee pieleen. Ne helpottavat myös suojan johdotusta, koska ne toimivat "hyppääjinä" syöttökiskojen poikki.

1k2- ja 2K2-vastukset estävät HC-06-Bluetooth-moduulin vaurioitumisen [1] pudottamalla 5 voltin lähdön arduinosta 3,3 volttiin.

[1] Irrota HC-06-Bluetooth-moduuli, kun lataat koodia arduinoon USB-portin kautta. Tämä välttää sarjaporttiristiriidat.

Vaihe 2: Lineaarinen asema

Lineaarinen käyttö
Lineaarinen käyttö
Lineaarinen käyttö
Lineaarinen käyttö
Lineaarinen käyttö
Lineaarinen käyttö

Lineaarinen käyttölaite on valmistettu 3 mm x 32 mm: n alumiinitanosta, alumiinilevystä ja neljästä pienestä kuulalaakeripyörästä.

Alumiinia on saatavana useimmista rautakaupoista. U624ZZ 4x13x7mm U-uripyörät ovat saatavilla osoitteesta

Yksinkertaiset käsityökalut ovat kaikki mitä tarvitset. Leikkaa alumiinitanko plotterisi mittojen mukaan.

Moottorikokoonpano

Asenna BJY-48-askelmoottori tangon toisesta päästä ja kiinnitä GT2 20-hammas, 5 mm: n reikä, hihnapyörä moottorin akseliin. Asenna nyt toinen GT2 -hihnapyörä tangon toiseen päähän niin, että hihnapyörä voi pyöriä vapaasti. Käytin halkaisijaltaan 5 mm: n putkimaista (radio) välikappaletta ja 3 mm: n pulttia tämän saavuttamiseksi.

Kierrä nyt GT2 -jakohihnan pituus hihnapyörien ympärille. Liitä hammashihnan päät puolikierroksella siten, että hampaat limittyvät ja kiinnittyvät nippusiteellä.

Kiinnitä lopuksi vaunukokoonpano jakohihnaan nippusiteellä.

Vaunukokoonpano

Vaunukokoonpano on valmistettu alumiinilevystä [1], johon U624ZZ -hihnapyörät on kiinnitetty. Käytä tarvittaessa 4 mm: n aluslevyä hihnapyörien irrottamiseen alumiinilevystä.

Hihnapyörät, joissa on 4 mm ura, kulkevat alumiinitankoa ylhäältä ja alhaalta siten, että pystysuoraa liikettä ei tapahdu, mutta alumiininauha liikkuu vapaasti vasemmalle ja oikealle.

Varmistaaksesi, että vaunu kulkee vapaasti, asenna ensin kaksi ylintä hihnapyörää ja merkitse sitten hihnapyörät istuen tankoon ja merkitse kahden alimman hihnapyörän kohdat. Näiden kahden hihnapyörän reiät voidaan nyt porata. Käytä ensin pientä "pilottiporaa" estääksesi suuremman 4 mm: n poran ajautumisen.

Ennen kuin taivutat alumiiniliuskan U -kirjaimeksi, poraa reiän ylä- ja alareuna kynän halkaisijan mukaan. Viimeistele nyt mutkat.

Kiinnitä jakohihna vaunukokoonpanoon nippusiteen ja 3 mm: n pultin avulla kahden ylimmän hihnapyörän väliin.

Kynänostin

Kiinnitä SG-90-servo vaunukokoonpanon yläosaan yhdellä tai kahdella nippusiteellä.

Pudota kynä alas porattuihin kahteen reikään. Varmista, että kynä liukuu ylös ja alas vapaasti.

Kiinnitä "kaulus" kynääsi niin, että kynä on juuri irti rummusta, kun servo on kynä ylös -asennossa.

[1] Alumiinia voidaan leikata leikkaamalla arkin molemmat puolet terävällä veitsellä (laatikkoleikkurilla) ja taivuttamalla leikkaus pöydän reunan yli. Muutama heilutus ja arkki murtuu jättäen suoran tauon. Toisin kuin tinahakat, tämä menetelmä ei taivuta alumiinia.

Vaihe 3: Rumpu

Rumpu
Rumpu
Rumpu
Rumpu
Rumpu
Rumpu

Rumpu koostuu muoviputkesta, jossa on kaksi puista päätytulppaa [1].

Piirrä päätytulpan ääriviivat käyttämällä kompassia, joka on asetettu putken sisäsäteelle. Leikkaa nyt jokaisen ääriviivan ympärille ohuella teräsahalla ("selviytyminen", "tuskailla") ja sovita sitten kaikki päätytulpat mukautetusti puuraspilla. Kiinnitä päätytulpat pienillä vastaruuvilla.

6 mm: n tekninen pultti jokaisen päätytulpan keskellä muodostaa akselin.

Rummun mitat

Rummun mitat määräytyvät paperikoon mukaan. 100 mm: n rummun halkaisija tukee A4 -muotokuvaa ja A3 -vaakasuuntaista kuvaa. Rummun halkaisija 80 mm tukee vain A4 -vaakatasoa. Käytä mahdollisimman pientä rummun halkaisijaa hitauden vähentämiseksi… BYJ-48-moottorit ovat vain pieniä.

90 mm: n rummun halkaisija on ihanteellinen A4 -muotokuva- ja A3 -vaakasuuntaisille papereille, koska vastakkaiset reunat ovat rummun ympärille käärittyinä noin 10 mm: n päällekkäin, mikä tarkoittaa, että sinulla on vain yksi sauma kiinnitettäväksi.

Rummun pyörittäminen

Jokainen akseli kulkee alumiinisen päätykannattimen läpi siten, että rumpu voi pyöriä vapaasti. Päätykiinnitys estetään GT-2, 20-hampaisella, 6 mm: n reikällä, hihnapyörällä, joka on kiinnitetty akseliin toisesta päästä. Jatkuva GT-2 jakohihna yhdistää BJY-48 -vaihteellisen askelmoottorin rumpuun. Moottori vaatii hihnapyörän, jonka reikä on 5 mm.

[1] Muovisia päätytulppia on saatavana useimmille putkien halkaisijoille, mutta ne hylättiin, koska ne sopivat putken päälle eikä sisälle ja muovi taipuu taipumaan. Ne olisivat luultavasti kunnossa, jos jatkoakselia käytettäisiin pulttien sijasta … mutta sitten tarvitset jonkin tavan kiinnittää akseli päätytulppiin.

Vaihe 4: Vinkkejä rakentamiseen

Varmista, että kynä kulkee rummun keskikohtaa pitkin. Tämä voidaan saavuttaa leikkaamalla kulmat puutuista. Jos kynä on keskellä, se pyrkii liukumaan rummun sivua alaspäin.

Kahden kynän reiän tarkka poraus on tärkeää. Kaikki kynänohjaimen tai vaunukokoonpanon heiluminen aiheuttaa heilumista X-akselia pitkin.

Älä kiristä GT-2-jakohihnoja liikaa … niiden on vain oltava kireällä. BYJ-48-askelmoottoreilla ei ole paljon vääntöä.

BJY-48-askelmoottoreissa on usein pieniä määriä välyksiä, mikä on merkityksetöntä X-akselilla, mutta on huolestuttavaa Y-akselin suhteen. Syynä tähän on se, että yksi Y-akselin moottorin kierros vastaa rummun yhtä kierrosta, kun taas kynävaunu vaatii monia X-akselin moottorin kierroksia rummun pituuden ylittämiseksi. Kaikki Y-akselin välykset voidaan eliminoida pitämällä vakiomomentti rummussa. Yksinkertainen tapa on kiinnittää pieni paino rummun ympärille käärittyyn nylonlankaan.

Vaihe 5: Bresenhamin viivanpiirtämisalgoritmi

Bresenhamin viivanpiirtämisalgoritmi
Bresenhamin viivanpiirtämisalgoritmi
Bresenhamin viivanpiirtämisalgoritmi
Bresenhamin viivanpiirtämisalgoritmi

Tämä piirturi käyttää optimoitua versiota [1] Bresenhamin viivapiirustusalgoritmista. Valitettavasti tämä algoritmi pätee vain linjan kaltevuuksiin, jotka ovat pienempiä tai yhtä suuria kuin 45 astetta (eli ympyrän yksi oktantti).

Tämän rajoituksen kiertämiseksi "kartoitan" kaikki XY -tulot ensimmäiseen "oktanttiin" ja "poista ne", kun on aika piirtää. Tulo- ja lähtökartoitustoiminnot tämän saavuttamiseksi on esitetty yllä olevassa kaaviossa.

Johtaminen

Tämän vaiheen loppuosa voidaan jättää pois, jos tunnet Bresenhamin algoritmin.

Piirretään viiva (0, 0) - (x1, y1) missä:

  • x1 = 8 = vaakasuora etäisyys
  • y1 = 6 = pystysuora etäisyys

Alkuperän (0, 0) läpi kulkevan suoran yhtälö saadaan yhtälöstä y = m*x jossa:

m = y1/x1 = 6/8 = 0,75 = kaltevuus

Yksinkertainen algoritmi

Yksinkertainen algoritmi tämän rivin piirtämiseen on:

  • int x1 = 8;
  • int y1 = 6;
  • kelluva m = y1/x1;
  • juoni (0, 0);
  • for (int x = 1; x <= x1; x ++) {
  • int y = pyöreä (m*x);
  • käyrä (x, y);
  • }

Taulukko 1: Yksinkertainen algoritmi

x m m*x y
0 0.75 0 0
1 0.75 0.75 1
2 0.75 1.5 2
3 0.75 2.25 2
4 0.75 3 3
5 0.75 3.75 4
6 0.75 4.5 5
7 0.75 5.25 5
8 0.75 6 6

Tässä yksinkertaisessa algoritmissa on kaksi ongelmaa:

  • pääsilmukka sisältää kertolaskun, joka on hidas
  • se käyttää liukulukuja, jotka ovat myös hitaita

Y: n ja x: n kaavio tälle riville on esitetty yllä.

Bresenhamin algoritmi

Bresenham esitteli virheen termin "e" käsitteen, joka alustetaan nollaan. Hän huomasi, että taulukossa 1 esitetyt m*x -arvot voidaan saada lisäämällä m -kirjain peräkkäin e -arvoon. Lisäksi hän huomasi, että y kasvaa vain, jos m*x: n murto -osa on suurempi kuin 0,5. Pitääkseen vertailunsa alueella 0 <= 0,5 <= 1, hän vähentää yhden e: stä aina, kun y: tä kasvatetaan.

  • int x1 = 8;
  • int y1 = 6;
  • kellua m = y1/x1;
  • int y = 0;
  • kellua e = 0;
  • juoni (0, 0);
  • for (int x = 1; x <= x1; x ++) {
  • e+= m;
  • jos (e> = 0,5) {
  • e -= 1;
  • y ++;
  • }
  • käyrä (x, y);
  • }

Taulukko 2: Bresenhamin algoritmi

x m e e-1 y
0 0.75 0 0 0
1 0.75 0.75 -0.25 1
2 0.75 0.5 -0.5 2
3 0.75 0.25 2
4 0.75 1 0 3
5 0.75 0.75 -0.25 4
6 0.75 0.5 -0.5 5
7 0.75 0.25 5
8 0.75 1 0 6

Jos tarkastelet algoritmia ja taulukkoa 2, huomaat sen;

  • pääsilmukka käyttää vain yhteen- ja vähennyslaskuja … ei ole kertolaskua
  • kuvio y on sama kuin taulukossa 1.

Mutta käytämme edelleen liukulukuja … korjataan tämä.

Bresenhamin (optimoitu) algoritmi

Bresenhamin liukulukualgoritmi voidaan muuntaa kokonaislukumuotoon, jos skaalataan 'm' ja 'e' 2*x1, jolloin m = (y1/x1)*2*x1 = 2*y1

Mitta- ja e -skaalauksen lisäksi algoritmi on samanlainen kuin edellä, paitsi:

  • lisäämme 2*y1 "e": hen aina kun lisäämme "x"
  • kasvatamme y: tä, jos e on yhtä suuri tai suurempi kuin x1.
  • vähennämme 2*x1 e: stä 1 sijasta
  • Vertailussa käytetään x1 0,5: n sijasta

Algoritmin nopeutta voidaan edelleen lisätä, jos silmukka käyttää testissä nollaa. Tätä varten meidän on lisättävä offset virhetermiin "e".

  • int x1 = 8;
  • int y1 = 6;
  • int m = (y1 << 1); // vakio: kaltevuus skaalattu 2*x1
  • int E = (x1 << 1); // vakio: 2*x1 käytettäväksi silmukassa
  • int e = -x1; // offset -E/2: testi on nyt tehty nollassa
  • juoni (0, 0);
  • int y = 0;
  • (x = 1; x <= x1; x ++) {
  • e += m;
  • jos (e> = x1) {
  • e -= E
  • y ++;
  • }
  • käyrä (x, y);
  • }

Taulukko 3: Bresenhamin (optimoitu) algoritmi

x m E e e - E. y
0 12 16 -8 0
1 12 16 4 -12 1
2 12 16 0 -16 2
3 12 16 -4 2
4 12 16 8 -8 3
5 12 16 4 -12 4
6 12 16 0 -16 5
7 12 16 -4 5
8 12 16 8 -8 6

Jälleen y: n kuvio on sama kuin muissa taulukoissa. On mielenkiintoista huomata, että taulukko 3 sisältää vain kokonaislukuja ja että suhde m/E = 12/16 = 0,75, joka on suoran kaltevuus.

Tämä algoritmi on erittäin nopea, koska pääsilmukka sisältää vain yhteenlaskun, vähennyksen ja vertailun nollaan. Kertoamista ei käytetä muuten kuin silloin, kun alustamme arvot "E" ja "m" käyttämällä "vasen siirto" kaksinkertaistaaksesi arvot x1 ja y1.

[1] Tämä Bresenhamin algoritmin optimoitu versio on paperista "Bresenham Line and Circle Drawing", tekijänoikeus © 1994-2006, W Randolph Franklin (WRF). Hänen materiaaliaan voidaan käyttää voittoa tavoittelemattomaan tutkimukseen ja koulutukseen edellyttäen, että arvostat häntä ja linkit takaisin hänen kotisivulleen,

Vaihe 6: Koodi

Lataa liitteenä oleva tiedosto samannimiseen kansioon ja lataa se sitten piirturiin käyttämällä arduino IDE: tä (integroitu kehitysympäristö).

Irrota HC-06 bluetoorh -moduuli ennen lataamista. Tämä on välttämätöntä, jotta vältetään sarjaporttiristiriita USB -kaapelin kanssa.

Kolmannen osapuolen koodi

Edellä olevan.ino-koodin lisäksi tarvitset seuraavat ilmaiset ohjelmistot / lahjoitusohjelmistot:

  • Teraterm, joka on saatavana osoitteesta
  • Inkscape, joka on saatavana osoitteesta

Ohjeet kunkin edellä mainitun kolmannen osapuolen paketin asentamiseen ja käyttöön löytyvät artikkelistani

Vaihe 7: Valikko

Valikko
Valikko

Muodosta Bluetooth -yhteys plotteriin käyttämällä "Teraterm" -toimintoa.

Kytke "Caps Lock" päälle, koska kaikki komennot ovat isoja.

Kirjoita M -kirjain ja valikon pitäisi näkyä yllä olevan kuvan mukaisesti.

Valikko on kohtuullisen itsestään selvä:

  • M (tai M0) tuo valikon näkyviin
  • G0: n avulla voit lähettää kynän tiettyyn XY-koordinaattiin kynän ollessa nostettuna.
  • G1 mahdollistaa kynän lähettämisen tiettyyn XY-koordinaattiin kynän ollessa laskettuna.
  • T1 mahdollistaa kynän asettamisen 0, 0-koordinaatin päälle. Poistu kirjoittamalla 'E'.
  • T2: n avulla voit skaalata piirustuksesi. Esimerkiksi "T2 S2.5" skaalaa piirustuksesi 250%. Oletusasteikko on 100%
  • T3 ja T4 mahdollistavat kynän nostamisen tai laskemisen.
  • T5 piirtää ABC -testikuvion.
  • T6 piirtää "kohteen".
  • T7 piirtää säteittäisiä viivoja, joiden tarkoituksena on varmistaa, että Bresenhamin algoritmi toimii jokaisessa kahdeksassa "oktantissa"

Huomautuksia:

  • kaikki kynien liikkeet käyttävät piirustusasteikkoa käyttämällä valikkovaihtoehtoa T2
  • "17:" ja "19:" -numerot ovat arduino -tulkin "Xon" - ja "Xoff" -kättelykoodeja.

Vaihe 8: Kalibrointi

X_STEPS_PER_MM- ja Y_STEPS_PER_MM -arvot ovat halkaisijaltaan 90 mm: n rummulle.

Muiden rummun halkaisijoiden arvot voidaan laskea seuraavien suhteiden avulla:

  • rummun ympärysmitta on PI*halkaisija
  • 2048 askelta vastaa yhtä moottorin akselin kierrosta
  • yksi GT-2-hihnapyörän kierros vastaa hammashihnan 40 millimetrin lineaarista liikettä

Toinen tapa on syöttää seuraavat komennot,

  • G1 X0 Y100
  • G1 X100 Y100

mittaa sitten tuloksena olevien viivojen pituus ja "skaalaa" arvot X-STEPS_PER_MM ja Y_STEPS_PER_MM

Vaihe 9: Gcode -esikäsittely

Gcode -esikäsittely
Gcode -esikäsittely
Gcode -esikäsittely
Gcode -esikäsittely

Tämä plotteri vaatii vain neljä Inkscape -gcodea (nimittäin: G0, G1, G2, G3). Koodi toimii huomattavasti nopeammin, jos poistamme kaikki tarpeettomat gcodes ja kommentit.

Tätä varten tarvitset kopion "Notepad ++". Tämä ilmainen tekstieditori sisältää "säännöllisen lausekkeen" hakukoneen ei -toivotun tekstin löytämiseksi ja poistamiseksi. Notepad ++ on saatavana osoitteesta

Avaa muokattava tiedosto Notepad ++: lla ja aseta kohdistin tiedoston yläreunaan.

Valitse "Näytä/Näytä symboli/Kaikki merkit" ja sen jälkeen "Etsi/Korvaa …" ylävalikkoriviltä.

Napsauta "Säännöllinen lauseke" -valintaruutua (katso 1. kuva) ja kirjoita kukin seuraavista koodisarjoista hakukenttään.

Napsauta "Korvaa kaikki" jokaisen merkinnän jälkeen:

  • %
  • (.*)
  • ^M.*$
  • Z.*$

Yllä olevat säännölliset lausekkeet poistavat kaikki % -merkit, kaikki suluissa olevat kommentit, kaikki M -koodit, kaikki Z -koodit ja seuraavat koodit.

Napsauta nyt "Laajennettu lauseke" -valintaruutua (katso toinen kuva) ja kirjoita seuraava koodisarja:

r / n / r / n / r / n

Tämä lauseke poistaa ei-toivotut vaunupalautukset ja rivinsiirrot, jotka ensimmäinen sekvenssi on luonut.

Tallenna tiedosto toisella nimellä "Tallenna nimellä".

Tehty.

Vaihe 10: Tulokset

Tulokset
Tulokset

Tämä piirturi on rakennettu "todisteeksi konseptista", eikä sitä koskaan ole tarkoitettu täydelliseksi. Tulokset eivät kuitenkaan ole huonoja. Ne täyttävät ehdottomasti suunnittelutavoitteeni siirtää vesiväri ääriviivat paperille.

Kolme ensimmäistä kuvaa ovat sisäänrakennetut testikuviot T5, T6 ja T7.

"Hei maailma!" kuvio lähetettiin plotterille bluetoothin kautta. Tämän tiedoston "esikäsitelty" kopio on liitteenä.

Vaihe 11: Koodin päivitys

Koodin päivitys
Koodin päivitys

Tämän plotterin koodi on päivitetty Drum_Plotter_V2.ino.

Muutokset alkuperäisestä Drum_Plotter.ino -ohjelmasta sisältävät:

  • tasaisempi kynän sijoittaminen
  • tunnistaa nyt G02 gcode -ohjeet (myötäpäivään)
  • tunnistaa nyt G03 gcode -ohjeet (kaaria vastapäivään)

Liitteenä oleva kaavio esittelee menetelmäni kaarikulman laskemiseksi.

Vaihe 12: Drum_plotter_v3.ino

"CNC -rumpuplotterin" koodipäivitys on liitetty.

"drum_plotter_v3.ino" korjaa pienen virheen, joka vaikutti piirturin tarkkuuteen.

Muutoshistoria

Versio 2:

Kaksikaarikäyrät lisätty

Versio 3:

Seuraavat toiminnot kirjoitettiin uudelleen korjaamaan pieni virhe, joka vaikutti piirturin tarkkuuteen.

  • (int) korvattu kierroksella () siirto_to () -funktiossa.
  • draw_line () -toiminnon "oktanttinen" hakualgoritmi parannettu
  • Tulkki käyttää nyt merkkijonotoimintoja osoittimien sijasta, mikä yksinkertaistaa suunnittelua. Esimerkiksi voimme nyt etsiä "VALIKKO" sen sijaan, että etsisimme kirjainta "M" ja poimia seuraava kokonaisluku. Tämän avulla voit muokata plotteria omilla komennoillasi.

Vaihe 13: Drum_plotter_plotter_v4.ino

16. tammikuuta 2017:

Tämän rumpupiirturin koodi on optimoitu edelleen. Lisäominaisuuksia on lisätty.

Muutokset sisältävät:

  • nopeampi draw_line () -algoritmi
  • vastaavaa move_to () -funktiota
  • askellaskurit
  • pieni virheenkorjaus

Lisätietoja on liitteenä olevassa "drum_plotter_v4.ino" -kommentissa.

Napsauta tätä nähdäksesi muut ohjeeni.

Suositeltava: