Turinys:

CNC būgno braižytuvas: 13 žingsnių (su nuotraukomis)
CNC būgno braižytuvas: 13 žingsnių (su nuotraukomis)

Video: CNC būgno braižytuvas: 13 žingsnių (su nuotraukomis)

Video: CNC būgno braižytuvas: 13 žingsnių (su nuotraukomis)
Video: 17 Amazing Fastest Big Wood Sawmill Machines Working At Another Level 2024, Lapkritis
Anonim
Image
Image
CNC būgnų braižytuvas
CNC būgnų braižytuvas

Šioje instrukcijoje aprašomas A4/A3 braižytuvas, pagamintas iš plastikinio vamzdžio sekcijos, dviejų žingsninių variklių BYJ-48 ir servo SG-90. Iš esmės tai yra plokščias braižytuvas, susuktas į būgną.

Vienas variklis sukasi būgną, o kitas-spausdinimo galvutę. Servo švirkštimo priemonė pakeliama ir nuleidžiama.

Šis braižytuvas turi daug privalumų, palyginti su tradiciniu plokščiaplokščiu:

  • žymiai mažesnis pėdsakas
  • reikalingas tik vienas linijinis kreipiamasis bėgelis
  • paprasta sukonstruoti
  • pigus

Borto vertėjas priima „Inkscape“gcode išvestį.

Ryšys su braižytuvu vyksta naudojant „Bluetooth“ryšį.

Braižytuvas suderinamas su CNC grafikos planšetiniu kompiuteriu, aprašytu mano instrukcijoje

Nors šis braižytuvas nėra tikslus prietaisas, jo tikslumas yra patenkinamas pagal numatytą paskirtį - perkelti akvarelės kontūrus ant popieriaus.

1 žingsnis: grandinė

Circuit
Circuit

Grandinę sudaro „Arduino UNO R3“mikrovaldiklis ir pasirinktinis skydas, ant kurio sumontuoti atskiri komponentai. Maitinimas tiekiamas per išorinį 5 voltų 1 amp reguliatorių. Vidutinė srovė yra apie 500 mA.

Žingsniniai varikliai BYJ-48 yra pritvirtinti prie PORTB (kaiščiai D8, D9, D10, D11) ir PORTC (kaiščiai A0, A1, A2, A3). SG-90 rašiklio pakėlimo servo sistema pritvirtinta prie kaiščio D3.

560 omų rezistoriai, kurių galima praleisti, apsaugo arduino nuo trumpojo jungimo, jei kažkas negerai. Jie taip pat palengvina skydo vielinimą, nes jie veikia kaip „džemperiai“per tiekimo bėgius.

1k2 ir 2K2 rezistoriai neleidžia sugadinti „Bluetooth“modulio HC-06 [1], sumažindami 5 voltų išėjimą iš arduino iki 3,3 voltų.

[1] Įkeldami kodą į arduino per USB prievadą, atjunkite „Bluetooth-Bluetooth“modulį. Taip išvengsite bet kokių nuosekliųjų prievadų konfliktų.

2 žingsnis: linijinė pavara

Linijinė pavara
Linijinė pavara
Linijinė pavara
Linijinė pavara
Linijinė pavara
Linijinė pavara

Linijinė pavara pagaminta iš 3 mm x 32 mm aliuminio strypo, aliuminio lakšto juostelės ir keturių mažų rutulinių guolių.

Aliuminio galima įsigyti daugelyje techninės įrangos parduotuvių. U624ZZ 4x13x7mm U formos griovelių skriemulius galima įsigyti iš

Paprasti rankiniai įrankiai yra viskas, ko jums reikia. Iškirpkite aliuminio strypą, kad jis atitiktų jūsų braižytuvo matmenis.

Variklio mazgas

Viename gale pritvirtinkite BJY-48 žingsninį variklį per juostą ir prie variklio veleno pritvirtinkite GT2 20 dantį, 5 mm kiaurymę, skriemulį. Dabar kitame juostos gale pritvirtinkite kitą GT2 skriemulį, kad skriemulys galėtų laisvai suktis. Norėdami tai padaryti, naudoju 5 mm skersmens vamzdinį (radijo) tarpiklį ir 3 mm varžtą.

Dabar užveržkite GT2 paskirstymo diržo ilgį aplink skriemulius. Pasukite paskirstymo diržo galus pusiau pasukdami taip, kad dantys susipynė ir pritvirtinami troseliu.

Pabaigoje pritvirtinkite vežimėlio mazgą prie paskirstymo diržo.

Vežimėlio mazgas

Vežimėlio mazgas pagamintas iš aliuminio lakšto juostelės [1], prie kurios prisukami skriemuliai U624ZZ. Jei reikia, naudokite 4 mm poveržlę, kad atskirtumėte skriemulius nuo aliuminio lakšto.

Skriemuliai, turintys 4 mm griovelį, aliuminio strypo viršuje ir apačioje yra taip, kad nebūtų vertikalių judesių, tačiau aliuminio juostelė laisvai juda į kairę ir į dešinę.

Kad vežimėlis laisvai važiuotų, pirmiausia sumontuokite du viršutinius skriemulius, o tada, kai skriemuliai sėdi ant juostos, pažymėkite apatinių dviejų skriemulių padėtį. Šių dviejų skriemulių skylės dabar gali būti išgręžtos. Norėdami išvengti didesnio 4 mm grąžto dreifavimo, pirmiausia naudokite mažą „bandomąjį“grąžtą.

Prieš sulenkdami aliuminio juostelę į „U“, išgręžkite skylę viršuje ir apačioje, kad atitiktų jūsų rašiklio skersmenį. Dabar atlikite lenkimus.

Pritvirtinkite paskirstymo diržą prie vežimėlio, naudodami trosą ir 3 mm varžtą tarp dviejų viršutinių skriemulių.

Rašiklio pakėlimo mazgas

Pritvirtinkite SG-90 servo prie vežimėlio agregato viršaus, naudodami vieną ar dvi kabelių jungtis.

Nuleiskite rašiklį dviem išgręžtomis skylėmis. Įsitikinkite, kad švirkštimo priemonė laisvai slysta aukštyn ir žemyn.

Pritvirtinkite „apykaklę“prie savo švirkštimo priemonės taip, kad švirkštimo priemonė būtų tik nuo būgno, kai servo sistema yra rašiklio padėtyje.

[1] Aliuminį galima pjaustyti aštriu peiliu (dėžutės pjaustytuvu) nubraukiant abi lapo puses, tada perlenkiant pjūvį per stalo kraštą. Keletas svyravimų ir lapas sulaužys, paliekant tiesią pertrauką. Skirtingai nuo skardos, šis metodas nesulenkia aliuminio.

3 žingsnis: būgnas

Būgnas
Būgnas
Būgnas
Būgnas
Būgnas
Būgnas

Būgną sudaro plastikinio vamzdžio dalis su dviem mediniais galiniais kamščiais [1].

Naudodami kompasą, nustatytą vidiniame vamzdžio spindulyje, nubrėžkite galinio kištuko kontūrus. Dabar supjaustykite aplink kiekvieną kontūrą, naudodami smulkų ašmenų pjūklą („susidoroti“, „susierzinti“), tada pagal užsakymą pritaisykite kiekvieną galinį kištuką medžio drožlės pagalba. Užveržkite galinius kištukus, naudodami mažus medinius varžtus.

6 mm inžinerinis varžtas per kiekvieno galinio kištuko centrą sudaro ašį.

Būgno matmenys

Būgno matmenys nustatomi pagal jūsų popieriaus dydį. 100 mm būgno skersmuo palaiko A4 portretą ir A3 kraštovaizdį. Būgno skersmuo 80 mm palaikys tik A4 kraštovaizdį. Naudokite kuo mažesnį būgno skersmenį, kad sumažintumėte inerciją … BYJ-48 varikliai yra tik maži.

90 mm būgno skersmuo idealiai tinka A4 formato ir A3 kraštovaizdžio popieriui, nes priešingi kraštai, apvynioti aplink būgną, sutampa maždaug 10 mm, o tai reiškia, kad užklijuoti reikia tik vieną siūlę.

Būgno sukimas

Kiekviena ašis eina per aliuminio galinį laikiklį, kad būgnas galėtų laisvai suktis. Galinė plūdė apsaugoma naudojant GT-2, 20 dantų, 6 mm kiaurymę, skriemulį, pritvirtintą prie ašies viename gale. Nuolatinis GT-2 paskirstymo diržas sujungia BJY-48 pavarų perjungimo variklį prie būgno. Varikliui reikia skriemulio, kurio kiaurymės dydis yra 5 mm.

[1] Plastikiniai galiniai kištukai yra prieinami daugeliui vamzdžių skersmenų, tačiau buvo atmesti, nes jie tinka virš vamzdžio, o ne viduje ir plastikas linkęs lankstytis. Jie tikriausiai būtų gerai, jei vietoj varžtų būtų naudojama nepertraukiama ašis … bet tada jums reikia tam tikro metodo, kaip ašį pritvirtinti prie galinių kaiščių.

4 žingsnis: statybos patarimai

Įsitikinkite, kad rašiklis juda išilgai būgno centro. Tai galima pasiekti nupjaunant kampus iš medinių atramų. Jei švirkštimo priemonė yra ne centre, ji linkusi slysti žemyn būgno šonu.

Svarbu tiksliai išgręžti dvi rašiklio angas. Bet koks švirkštimo priemonės kreiptuvo ar vežimėlio mazgo svyravimas sukels svyravimus išilgai X ašies.

Neperveržkite GT-2 paskirstymo diržų … jie tiesiog turi būti įtempti. BYJ-48 žingsniniai varikliai neturi didelio sukimo momento.

Žingsniniai varikliai BJY-48 dažnai turi nedidelį atotrūkį, kuris yra nereikšmingas išilgai X ašies, tačiau kelia susirūpinimą dėl Y ašies. Taip yra todėl, kad vienas Y ašies variklio sukimasis prilygsta vienam būgno apsisukimui, tuo tarpu tušinuko vežimėliui reikia daug X ašies variklio posūkių, kad būtų galima pereiti būgno ilgį. Bet kokį Y ašies atotrūkį galima pašalinti išlaikant pastovų būgno sukimo momentą. Paprastas būdas yra pritvirtinti nedidelį svorį prie nailono virvelės, apvyniotos aplink būgną.

5 veiksmas: Bresenhamo linijų piešimo algoritmas

Bresenhamo linijų piešimo algoritmas
Bresenhamo linijų piešimo algoritmas
Bresenhamo linijų piešimo algoritmas
Bresenhamo linijų piešimo algoritmas

Šis braižytuvas naudoja optimizuotą Bresenhamo linijų brėžimo algoritmo versiją [1]. Deja, šis algoritmas galioja tik tiesės nuolydžiams, mažesniems arba lygiams 45 laipsniams (ty vienam apskritimo oktantui).

Norėdami apeiti šį apribojimą, aš „susieju“visus XY įėjimus į pirmąjį „oktantą“, tada „atriboju“juos, kai laikas nubraižyti. Įvesties ir išvesties susiejimo funkcijos, skirtos šiam tikslui pasiekti, parodytos aukščiau esančioje diagramoje.

Darinys

Likusi šio veiksmo dalis gali būti praleista, jei esate susipažinęs su Bresenhamo algoritmu.

Nubrėžkime liniją nuo (0, 0) iki (x1, y1), kur:

  • x1 = 8 = horizontalus atstumas
  • y1 = 6 = vertikalus atstumas

Tiesios linijos, einančios per kilmę (0, 0), lygtis pateikiama lygtimi y = m*x, kur:

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

Paprastas algoritmas

Paprastas šios eilutės braižymo algoritmas yra toks:

  • int x1 = 8;
  • int y1 = 6;
  • plūdė m = y1/x1;
  • sklypas (0, 0);
  • (int x = 1; x <= x1; x ++) {
  • int y = apvalus (m*x);
  • grafikas (x, y);
  • }

1 lentelė. Paprastas algoritmas

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

Su šiuo paprastu algoritmu kyla dvi problemos:

  • pagrindinėje kilpoje yra dauginimas, kuris yra lėtas
  • jis naudoja slankiojo kablelio skaičius, kuris taip pat yra lėtas

Šios eilutės y ir x grafikas parodytas aukščiau.

Bresenhamo algoritmas

Bresenham pristatė klaidos termino „e“sąvoką, kuri inicijuojama iki nulio. Jis suprato, kad 1 lentelėje pateiktas m*x reikšmes galima gauti iš eilės pridedant „m“. Jis taip pat suprato, kad y padidinama tik tada, kai trupmeninė m*x dalis yra didesnė nei 0,5. Kad jo palyginimas būtų 0 <= 0,5 <= 1, jis atima 1 iš "e", kai y padidinama.

  • int x1 = 8;
  • int y1 = 6;
  • plūdė m = y1/x1;
  • int y = 0;
  • plūdė e = 0;
  • sklypas (0, 0);
  • (int x = 1; x <= x1; x ++) {
  • e+= m;
  • jei (e> = 0,5) {
  • e -= 1;
  • y ++;
  • }
  • grafikas (x, y);
  • }

2 lentelė. Bresenhamo algoritmas

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

Jei išnagrinėsite algoritmą ir 2 lentelę, tai pastebėsite;

  • pagrindinė kilpa naudoja tik pridėjimą ir atėmimą … nėra daugybos
  • y modelis yra toks pat kaip 1 lentelėje.

Bet mes vis dar naudojame slankiojo kablelio skaičius … ištaisykime tai.

Bresenhamo (optimizuotas) algoritmas

„Bresenham“slankiojo kablelio algoritmą galima konvertuoti į sveiką skaičių, jei mastelį „m“ir „e“padalinsime 2*x1, tokiu atveju m = (y1/x1)*2*x1 = 2*y1

Be „m“ir „e“mastelio, algoritmas yra panašus į aukščiau aprašytą, išskyrus:

  • kiekvieną kartą didindami „x“prie „e“pridedame 2*y1
  • padidiname y, jei e yra lygus arba didesnis už x1.
  • iš „e“atimame 2*x1, o ne 1
  • Palyginimui naudojamas x1, o ne 0,5

Algoritmo greitį galima dar labiau padidinti, jei ciklas bandymui naudoja nulį. Norėdami tai padaryti, prie klaidos termino „e“turime pridėti poslinkį.

  • int x1 = 8;
  • int y1 = 6;
  • int m = (y1 << 1); // pastovus: nuolydis padidintas 2*x1
  • int E = (x1 << 1); // pastovus: 2*x1, skirtas naudoti cikle
  • int e = -x1; // -E/2 poslinkis: bandymas atliktas nuliu
  • sklypas (0, 0);
  • int y = 0;
  • (x = 1; x <= x1; x ++) {
  • e += m;
  • jei (e> = x1) {
  • e -= E.
  • y ++;
  • }
  • grafikas (x, y);
  • }

3 lentelė. Bresenhamo (optimizuotas) algoritmas

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

Dar kartą y modelis yra toks pat kaip ir kitose lentelėse. Įdomu pastebėti, kad 3 lentelėje yra tik sveikieji skaičiai ir kad santykis m/E = 12/16 = 0,75, kuris yra tiesės nuolydis.

Šis algoritmas yra labai greitas, nes pagrindinė kilpa apima tik pridėjimą, atėmimą ir palyginimą su nuliu. Daugyba nenaudojama, išskyrus atvejus, kai inicializuojame „E“ir „m“reikšmes naudodami „poslinkį į kairę“, kad dvigubai padidintume x1 ir y1 reikšmes.

[1] Ši optimizuota Bresenhamo algoritmo versija yra iš popieriaus „Bresenham Line and Circle Drawing“, autorių teisės © 1994-2006, W Randolph Franklin (WRF). Jo medžiaga gali būti naudojama pelno nesiekiantiems moksliniams tyrimams ir švietimui, su sąlyga, kad jūs jį įvertinsite ir pateiksite nuorodą į jo pagrindinį puslapį,

6 žingsnis: Kodas

Atsisiųskite pridėtą failą į to paties pavadinimo aplanką, tada įkelkite jį į braižytuvą naudodami savo arduino IDE (integruotą kūrimo aplinką).

Prieš bandydami įkelti, atjunkite „HC-06 bluetoorhh“modulį. Tai būtina norint išvengti nuoseklaus prievado konflikto su USB kabeliu.

Trečiosios šalies kodas

Be aukščiau pateikto.ino kodo, jums reikės šių nemokamų programinių paketų / donory-ware:

  • „Teraterm“, kurį galima rasti adresu
  • „Inkscape“, kurį galima rasti adresu

Kiekvieno iš aukščiau išvardytų trečiųjų šalių paketų diegimo ir naudojimo instrukcijas rasite mano straipsnyje

7 žingsnis: meniu

Meniu
Meniu

Užmegzkite „Bluetooth“ryšį su savo braižytuvu naudodami „Teraterm“.

Įjunkite „didžiųjų raidžių užraktą“, nes visos komandos yra rašomos didžiosiomis raidėmis.

Įveskite raidę „M“ir meniu turėtų pasirodyti, kaip parodyta aukščiau.

Meniu yra savaime suprantamas:

  • M (arba M0) parodo meniu
  • G0 leidžia nusiųsti švirkštimo priemonę į tam tikrą XY koordinatę su pakeltu rašikliu.
  • G1 leidžia nusiųsti švirkštimo priemonę į tam tikrą XY koordinatę nuleidus švirkštimo priemonę.
  • T1 leidžia rašiklį uždėti ant 0, 0 koordinatės. Norėdami išeiti, įveskite „E“.
  • T2 leidžia padidinti piešimo mastelį. Pavyzdžiui, „T2 S2.5“padidins jūsų piešinį 250%. Numatytoji skalė yra 100%
  • T3 ir T4 leidžia pakelti arba nuleisti švirkštimo priemonę.
  • T5 piešia „ABC“bandymo modelį.
  • T6 piešia „taikinį“.
  • T7 piešia radialinių linijų rinkinį, kurio tikslas yra patikrinti, ar Bresenhamo algoritmas veikia kiekvienoje iš aštuonių „oktantų“

Pastabos:

  • visi pieštuko judesiai naudoja piešimo mastelio rinkinį, naudojant meniu parinktį T2
  • „17:“ir „19:“skaičiai yra „Xon“ir „Xoff“terminalo rankų paspaudimo kodai iš „arduino“vertėjo.

8 žingsnis: kalibravimas

X_STEPS_PER_MM ir Y_STEPS_PER_MM reikšmės yra skirtos 90 mm skersmens būgnui.

Kitų būgnų skersmenų reikšmes galima apskaičiuoti naudojant šiuos ryšius:

  • būgno perimetras yra PI*skersmens
  • 2048 žingsniai prilygsta vienam kiekvieno variklio veleno apsisukimui
  • vienas GT-2 skriemulio apsisukimas prilygsta 40 milimetrų paskirstymo diržo linijiniam judėjimui

Kitas būdas yra įvesti šias komandas:

  • G1 X0 Y100
  • G1 X100 Y100

tada išmatuokite gautų eilučių ilgį ir „masteliuokite“X-STEPS_PER_MM ir Y_STEPS_PER_MM reikšmes

9 veiksmas: Gcode išankstinis apdorojimas

Gcode išankstinis apdorojimas
Gcode išankstinis apdorojimas
Gcode išankstinis apdorojimas
Gcode išankstinis apdorojimas

Šiam braižytuvui reikalingi tik keturi „Inkscape“kodai (ty: G0, G1, G2, G3). Kodas bus vykdomas žymiai greičiau, jei pašalinsime visus nereikalingus gkodus ir komentarus.

Norėdami tai padaryti, jums reikia „Notepad ++“kopijos. Šiame nemokamame teksto redaktoriuje yra „įprastos išraiškos“paieškos sistema, skirta nepageidaujamam tekstui rasti ir pašalinti. „Notepad ++“galima rasti adresu

Atidarykite keičiamą failą naudodami „Notepad ++“ir užveskite žymeklį failo viršuje.

Viršutinėje meniu juostoje pasirinkite „Žiūrėti/rodyti simbolį/visus simbolius“, tada „Ieškoti/pakeisti …“.

Spustelėkite žymės langelį „Regular Expression“(žr. 1 paveikslą) ir į paieškos laukelį įveskite kiekvieną iš šių kodų sekų.

Po kiekvieno įrašo spustelėkite „Pakeisti viską“:

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

Aukščiau pateiktos reguliariosios išraiškos pašalina visus % simbolius, visus komentarus, pateiktus skliausteliuose, visus M kodus, visus Z kodus ir kodus.

Dabar spustelėkite žymimąjį laukelį „Išplėstinė išraiška“(žr. 2 paveikslėlį) ir įveskite šią kodų seką:

r / n / r / n / r / n

Ši išraiška pašalina nepageidaujamus pirmosios sekos sukurtus grąžinimo ir eilutės kanalus.

Išsaugokite failą kitu pavadinimu naudodami „Išsaugoti kaip“.

Padaryta.

10 žingsnis: Rezultatai

Rezultatai
Rezultatai

Šis braižytuvas buvo sukurtas kaip „koncepcijos įrodymas“ir niekada nesiekė būti tobulas. Sakydamas, kad rezultatai nėra labai blogi. Jie tikrai atitinka mano dizaino tikslą perkelti akvarelės kontūrus ant popieriaus.

Pirmieji trys vaizdai yra įmontuoti bandymų modeliai T5, T6, T7.

"Sveikas pasaulis!" modelis buvo išsiųstas į braižytuvą per „Bluetooth“. Pridedama „iš anksto apdorota“šio failo kopija.

11 veiksmas: kodo atnaujinimas

Kodo atnaujinimas
Kodo atnaujinimas

Šio braižytuvo kodas atnaujintas į Drum_Plotter_V2.ino.

Pakeitimai, palyginti su pradiniu „Drum_Plotter.ino“, apima:

  • sklandesnis rašiklio išdėstymas
  • dabar atpažįsta G02 gcode instrukcijas (lankai pagal laikrodžio rodyklę)
  • dabar atpažįsta G03 gcode instrukcijas (lankai prieš laikrodžio rodyklę)

Pridedama schema apibūdina mano lanko kampo apskaičiavimo metodą.

12 veiksmas: „Drum_plotter_v3.ino“

Pridedamas „CNC būgno braižytuvo“kodo atnaujinimas.

„drum_plotter_v3.ino“ištaiso nedidelę klaidą, kuri paveikė braižytuvo tikslumą.

Keisti istoriją

2 versija:

Pridėtos dvi lanko kreivės

3 versija:

Šios funkcijos buvo perrašytos siekiant pašalinti nedidelę klaidą, kuri paveikė braižytuvo tikslumą.

  • (int) pakeistas apvaliu () funkcijoje „move_to ()“.
  • draw_line () funkcija „oktaninis“paieškos algoritmas patobulintas
  • Vertėjas dabar naudoja eilutės funkcijas, o ne rodykles, o tai supaprastina dizainą. Pavyzdžiui, dabar galime ieškoti „MENIU“, o ne ieškoti raidės „M“, tada išgauti sveikąjį skaičių, kuris yra toliau. Tai leidžia suasmeninti braižytuvą pagal savo komandas.

13 veiksmas: „Drum_plotter_plotter_v4.ino“

2017 m. Sausio 16 d.:

Šio būgno braižytuvo kodas buvo toliau optimizuotas. Buvo pridėtos papildomos funkcijos.

Pakeitimai apima:

  • greitesnis draw_line () algoritmas
  • atitinkanti funkciją move_to ()
  • žingsnių skaitikliai
  • smulkus klaidos taisymas

Norėdami gauti daugiau informacijos, skaitykite komentarus pridedamame „drum_plotter_v4.ino“.

Spustelėkite čia, jei norite peržiūrėti kitus mano nurodymus.

Rekomenduojamas: