Satura rādītājs:

CNC bungu zīmētājs: 13 soļi (ar attēliem)
CNC bungu zīmētājs: 13 soļi (ar attēliem)

Video: CNC bungu zīmētājs: 13 soļi (ar attēliem)

Video: CNC bungu zīmētājs: 13 soļi (ar attēliem)
Video: Expansion Bolt🔩 Installation and removal🔧anchor #anchoring #wallanchor #fasteners #diy #tools 2024, Novembris
Anonim
Image
Image
CNC bungu ploteris
CNC bungu ploteris

Šajā pamācībā aprakstīts A4/A3 ploteris, kas izgatavots no plastmasas caurules sekcijas, diviem BYJ-48 pakāpju motoriem un servo SG-90. Būtībā tas ir plakans ploteris, kas satīts bungā.

Viens motors rotē cilindru, bet otrs-drukas galviņu. Servo tiek izmantots, lai paceltu un nolaistu pildspalvu.

Šim ploterim ir vairākas priekšrocības salīdzinājumā ar tradicionālo plakano ploteri:

  • ievērojami mazāks nospiedums
  • nepieciešama tikai viena lineāra vadotne
  • vienkārši uzbūvēt
  • lēts

Borta tulks pieņem Inkscape gcode izvadi.

Saziņa ar ploteri notiek, izmantojot Bluetooth saiti.

Ploteris ir saderīgs ar CNC grafikas planšetdatoru, kas aprakstīts manā pamācībā

Kaut arī šī plotera precizitāte nav precīzs instruments, šī plotera precizitāte ir apmierinoša paredzētajam mērķim - akvareļu kontūru pārnešanai uz papīra.

1. solis: ķēde

Ķēde
Ķēde

Ķēde sastāv no Arduino UNO R3 mikrokontrollera un pielāgota vairoga, uz kura ir uzstādīti diskrētie komponenti. Barošana tiek veikta, izmantojot ārēju 5 voltu 1 ampulu regulatoru. Vidējā strāva ir aptuveni 500 mA.

Pakāpju motori BYJ-48 ir piestiprināti pie PORTB (tapas D8, D9, D10, D11) un PORTC (tapas A0, A1, A2, A3). Pildspalvas pacelšanas servo SG-90 ir piestiprināts pie tapas D3.

560 omu rezistori, kurus var izlaist, nodrošina arduino aizsardzību pret īssavienojumu, ja kaut kas noiet greizi. Tie arī atvieglo vairoga stiepšanu, jo tie darbojas kā "džemperi" pāri barošanas sliedēm.

Rezistori 1k2 un 2K2 novērš HC-06 Bluetooth moduļa bojājumus [1], samazinot 5 voltu izeju no arduino līdz 3,3 voltiem.

[1] Atvienojiet Bluetooth moduli HC-06, augšupielādējot kodu arduino, izmantojot USB portu. Tas ļaus izvairīties no sērijveida portu konfliktiem.

2. solis: lineāra piedziņa

Lineārā piedziņa
Lineārā piedziņa
Lineārā piedziņa
Lineārā piedziņa
Lineārā piedziņa
Lineārā piedziņa

Lineārā piedziņa ir izgatavota no 3 mm x 32 mm alumīnija stieņa, alumīnija loksnes sloksnes un četriem maziem lodīšu gultņiem.

Alumīnijs ir pieejams lielākajā daļā datortehnikas veikalu. U624ZZ 4x13x7mm U veida rievu skriemeļi ir pieejami vietnē

Vienkārši rokas instrumenti ir viss, kas jums nepieciešams. Izgrieziet alumīnija stieni atbilstoši jūsu plotera izmēriem.

Motora mezgls

Uzstādiet BJY-48 pakāpiena motoru caur stieni vienā galā un piestipriniet GT2 20 zobu, 5 mm urbumu, skriemeli pie motora vārpstas. Tagad stieņa otrā galā uzstādiet citu GT2 skriemeli tā, lai skriemelis varētu brīvi griezties. Lai to panāktu, es izmantoju 5 mm diametra cauruļveida (radio) starpliku un 3 mm skrūvi.

Tagad apvelciet GT2 zobsiksnas garumu ap skriemeļiem. Savienojiet zobsiksnas galus, pagriežot pusi, tā, lai zobi sakristu un nostiprinātos ar kabeļa saiti.

Visbeidzot ar troses saiti piestipriniet ratiņu komplektu pie zobsiksnas.

Ratiņu komplekts

Ratiņa komplekts ir izgatavots no alumīnija loksnes [1] sloksnes, uz kuras ir pieskrūvēti skriemeļi U624ZZ. Ja nepieciešams, izmantojiet 4 mm paplāksni, lai attālinātu skriemeļus no alumīnija loksnes.

Skriemeļi ar 4 mm gropi novieto alumīnija stieņa augšējo un apakšējo daļu tā, ka nav vertikālu kustību, bet alumīnija sloksne brīvi pārvietojas pa kreisi un pa labi.

Lai ratiņi darbotos brīvi, vispirms uzstādiet divus augšējos skriemeļus, pēc tam, kad skriemeļi atrodas uz stieņa, atzīmējiet apakšējo divu skriemeļu pozīcijas. Šo divu skriemeļu caurumus tagad var urbt. Vispirms izmantojiet nelielu "izmēģinājuma" urbi, lai novērstu lielāku 4 mm urbja dreifēšanu.

Pirms alumīnija sloksnes saliekšanas "U", urbiet caurumu augšpusē un apakšā atbilstoši pildspalvas diametram. Tagad pabeidziet līkumus.

Piestipriniet zobsiksnu pie ratiņu komplekta, izmantojot kabeļa saiti un 3 mm skrūvi starp diviem augšējiem skriemeļiem.

Pildspalvas pacelšanas mezgls

Piestipriniet servo SG-90 ratiņu mezgla augšpusē, izmantojot vienu vai divas kabeļu saites.

Nometiet pildspalvu pa diviem urbtajiem caurumiem. Pārliecinieties, ka pildspalva brīvi slīd uz augšu un uz leju.

Piestipriniet "apkakli" pie pildspalvas tā, lai pildspalva būtu tikai brīva no bungas, kad servo ir pildspalvveida pilnšļirces stāvoklī.

[1] Alumīniju var griezt, ar asu nazi (kastes griezēju) noberzot abas loksnes puses, pēc tam izliekot griezumu virs galda malas. Dažas svārstības un palags saplīsīs, atstājot taisnu pārtraukumu. Atšķirībā no skārda spraugām šī metode nesabojā alumīniju.

3. solis: bungas

Bungas
Bungas
Bungas
Bungas
Bungas
Bungas

Bungas sastāv no plastmasas caurules daļas ar diviem koka gala aizbāžņiem [1].

Izmantojiet kompasu, kas iestatīts caurules iekšējā rādiusā, lai uzzīmētu spraudņa gala kontūras. Tagad sagrieziet ap katru kontūru, izmantojot smalku asmens zāģi ("pārvarēšana", "satraukums"), pēc tam katru gala spraudni pēc pasūtījuma piestipriniet ar koka griezēju. Nostipriniet gala aizbāžņus, izmantojot mazas koka skrūves.

6 mm inženiertehniskā skrūve caur katra gala spraudņa centru veido asi.

Bungas izmēri

Bungas izmērus nosaka jūsu papīra izmērs. Bungas diametrs 100 mm atbalsta A4 portretu un A3 ainavu. Bungas diametrs 80 mm atbalstīs tikai A4 ainavu. Izmantojiet pēc iespējas mazāku cilindra diametru, lai samazinātu inerci … BYJ-48 motori ir tikai mazi.

90 mm bungas diametrs ir ideāli piemērots A4 portreta un A3 ainavas papīram, jo pretējās malas, kad tās ir ietītas ap cilindru, pārklājas aptuveni par 10 mm, kas nozīmē, ka jums ir tikai viena šuve, kas jāpielīmē.

Bungas pagriešana

Katra ass iet caur alumīnija gala kronšteinu tā, lai cilindrs varētu brīvi griezties. Gala pludiņu novērš GT-2, 20 zobs, 6 mm urbums, skriemelis, kas vienā galā piestiprināts pie ass. Nepārtraukta zobsiksna GT-2 savieno BJY-48 pārnesumu pakāpiena motoru ar cilindru. Motoram nepieciešams skriemelis ar urbuma izmēru 5 mm.

[1] Plastmasas gala aizbāžņi ir pieejami lielākajai daļai cauruļu diametru, taču tie tika noraidīti, jo tie der virs caurules, nevis iekšpusē, un plastmasai ir tendence saliekties. Tie droši vien būtu labi, ja skrūvju vietā tiktu izmantota nepārtraukta ass … bet tad jums ir nepieciešama kāda metode, kā asi piestiprināt pie gala aizbāžņiem.

4. solis: būvniecības padomi

Pārliecinieties, ka pildspalva pārvietojas pa cilindra centru. To var panākt, izgriežot koka balstu stūrus. Ja pildspalvveida pilnšļirce atrodas ārpus centra, tai ir tendence slīdēt lejup pa cilindra malu.

Ir svarīgi precīzi urbt divus pildspalvas caurumus. Jebkurš svārstības pildspalvas vadotnē vai ratiņu komplektā radīs svārstības gar X asi.

Nepārspriegojiet GT-2 zobsiksnas … tām vienkārši jābūt nostieptām. BYJ-48 soļu motoriem nav daudz griezes momenta.

BJY-48 soļu motoriem bieži ir neliela pretestība, kas ir niecīga gar X asi, bet rada bažas attiecībā uz Y asi. Iemesls tam ir tas, ka viena Y ass motora rotācija ir vienāda ar cilindra rotāciju, turpretim pildspalvas ratiņiem ir vajadzīgi daudzi X ass motora apgriezieni, lai šķērsotu trumuļa garumu. Jebkuru Y ass pretestību var novērst, saglabājot cilindram nemainīgu griezes momentu. Vienkārša metode ir pievienot nelielu svaru pie neilona auklas, kas ietīta ap cilindru.

5. solis: Bresenham līnijas zīmēšanas algoritms

Bresenham līnijas zīmēšanas algoritms
Bresenham līnijas zīmēšanas algoritms
Bresenham līnijas zīmēšanas algoritms
Bresenham līnijas zīmēšanas algoritms

Šis ploteris izmanto Bresenham līnijas zīmēšanas algoritma optimizētu versiju [1]. Diemžēl šis algoritms ir derīgs tikai līniju slīpumiem, kas ir mazāki vai vienādi ar 45 grādiem (ti, viens apļa oktāns).

Lai apietu šo ierobežojumu, es "kartēju" visas XY ievades līdz pirmajam "oktantam", pēc tam "atkartoju" tās, kad pienācis laiks uzzīmēt. Ievades un izvades kartēšanas funkcijas, lai to panāktu, ir parādītas iepriekš redzamajā diagrammā.

Atvasinājums

Pārējo šī soļa daļu var izlaist, ja esat iepazinies ar Bresenham algoritmu.

Uzzīmēsim līniju no (0, 0) līdz (x1, y1) kur:

  • x1 = 8 = horizontālais attālums
  • y1 = 6 = vertikālais attālums

Vienādojums taisnei, kas iet caur sākumpunktu (0, 0), ir dots ar vienādojumu y = m*x kur:

m = y1/x1 = 6/8 = 0,75 = slīpums

Vienkāršs algoritms

Vienkāršs šīs līnijas uzzīmēšanas algoritms ir šāds:

  • int x1 = 8;
  • int y1 = 6;
  • pludiņš m = y1/x1;
  • gabals (0, 0);
  • par (int x = 1; x <= x1; x ++) {
  • int y = apaļš (m*x);
  • diagramma (x, y);
  • }

1. tabula. Vienkāršs algoritms

x m m*x g
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

Ar šo vienkāršo algoritmu ir divas problēmas:

  • galvenā cilpa satur reizināšanu, kas ir lēna
  • tas izmanto peldošā komata skaitļus, kas ir arī lēni

Šīs līnijas grafiks y pret x ir parādīts iepriekš.

Bresenham algoritms

Bresenham ieviesa kļūdas termina “e” jēdzienu, kas tiek inicializēts līdz nullei. Viņš saprata, ka 1. tabulā norādītās m*x vērtības var iegūt, secīgi pievienojot “m” e. Viņš arī saprata, ka y tiek palielināts tikai tad, ja m*x daļējā daļa ir lielāka par 0,5. Lai saglabātu savu salīdzinājumu 0 <= 0,5 <= 1 diapazonā, viņš atņem 1 no "e", kad y tiek palielināts.

  • int x1 = 8;
  • int y1 = 6;
  • pludiņš m = y1/x1;
  • int y = 0;
  • pludiņš e = 0;
  • gabals (0, 0);
  • par (int x = 1; x <= x1; x ++) {
  • e+= m;
  • ja (e> = 0,5) {
  • e -= 1;
  • y ++;
  • }
  • diagramma (x, y);
  • }

2. tabula. Bresenham algoritms

x m e e-1 g
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

Izpētot algoritmu un 2. tabulu, jūs to pamanīsit;

  • galvenā cilpa izmanto tikai saskaitīšanu un atņemšanu … nav reizināšanas
  • y modelis ir tāds pats kā 1. tabulā.

Bet mēs joprojām izmantojam peldošā komata skaitļus … labosim to.

Bresenham (optimizēts) algoritms

Bresenhama peldošā komata algoritmu var pārvērst par veselu skaitli, ja mērogojam 'm' un 'e' ar 2*x1, tādā gadījumā m = (y1/x1)*2*x1 = 2*y1

Izņemot “m” un “e” mērogošanu, algoritms ir līdzīgs iepriekšminētajam, izņemot:

  • mēs pievienojam “e” 2*y1 katru reizi, kad palielinām “x”
  • mēs palielinām y, ja e ir vienāds vai lielāks par x1.
  • no “e” mēs atņemam 2*x1, nevis 1
  • Salīdzinājumam tiek izmantots x1, nevis 0,5

Algoritma ātrumu var vēl palielināt, ja cilpa pārbaudei izmanto nulli. Lai to izdarītu, kļūdas terminam “e” jāpievieno nobīde.

  • int x1 = 8;
  • int y1 = 6;
  • int m = (y1 << 1); // nemainīgs: slīpums mērogots par 2*x1
  • int E = (x1 << 1); // nemainīgs: 2*x1 izmantošanai cilpā
  • int e = -x1; // nobīde no -E/2: pārbaude tagad ir nulle
  • gabals (0, 0);
  • int y = 0;
  • par (x = 1; x <= x1; x ++) {
  • e += m;
  • ja (e> = x1) {
  • e -= E
  • y ++;
  • }
  • diagramma (x, y);
  • }

3. tabula. Bresenham (optimizētais) algoritms

x m E e e - E. g
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

Atkal y modelis ir tāds pats kā citās tabulās. Interesanti atzīmēt, ka 3. tabulā ir tikai veseli skaitļi un ka attiecība m/E = 12/16 = 0,75, kas ir līnijas slīpums “m”.

Šis algoritms ir ārkārtīgi ātrs, jo galvenā cilpa ietver tikai saskaitīšanu, atņemšanu un salīdzināšanu ar nulli. Reizināšanu neizmanto, izņemot gadījumus, kad mēs inicializējam “E” un “m” vērtības, izmantojot “kreiso maiņu”, lai divkāršotu x1 un y1 vērtības.

[1] Šī Bresenham algoritma optimizētā versija ir no papīra "Bresenham Line and Circle Drawing", autortiesības © 1994-2006, W Randolph Franklin (WRF). Viņa materiālus var izmantot bezpeļņas pētniecībai un izglītībai ar nosacījumu, ka jūs viņam piešķirat kredītu un novirzāt atpakaļ uz viņa mājas lapu,

6. darbība: kods

Lejupielādējiet pievienoto failu tāda paša nosaukuma mapē, pēc tam augšupielādējiet to ploterī, izmantojot savu arduino IDE (integrēta izstrādes vide).

Pirms mēģināt augšupielādēt, atvienojiet zilās formas moduli HC-06. Tas ir nepieciešams, lai izvairītos no seriālā porta konflikta ar USB kabeli.

Trešās puses kods

Papildus iepriekš minētajam.ino kodam jums būs nepieciešamas šādas bezmaksas programmatūras pakotnes:

  • Teraterm, kas ir pieejams vietnē
  • Inkscape, kas ir pieejams vietnē

Norādījumi par katras iepriekš minētās trešās puses pakotnes instalēšanu un lietošanu ir atrodami manā rakstā

7. solis: izvēlne

Izvēlne
Izvēlne

Izveidojiet Bluetooth savienojumu ar savu ploteri, izmantojot "Teraterm".

Ieslēdziet "Caps Lock", jo visas komandas ir rakstītas ar lielajiem burtiem.

Ierakstiet burtu “M”, un izvēlnei vajadzētu parādīties, kā parādīts iepriekš.

Izvēlne ir pietiekami pašsaprotama:

  • M (vai M0) atver izvēlni
  • G0 ļauj nosūtīt pildspalvu uz noteiktu XY koordinātu ar paceltu pildspalvu.
  • G1 ļauj nosūtīt pildspalvu uz noteiktu XY koordinātu ar nolaistu pildspalvu.
  • T1 ļauj novietot pildspalvu virs 0, 0 koordinātas. Lai izietu, ierakstiet “E”.
  • T2 ļauj mērogot zīmējumu. Piemēram, "T2 S2.5" mērogos jūsu zīmējumu par 250%. Noklusējuma skala ir 100%
  • T3 un T4 ļauj pacelt vai nolaist pildspalvu.
  • T5 zīmē "ABC" testa modeli.
  • T6 uzzīmē "mērķi".
  • T7 zīmē radiālo līniju kopu, kuras mērķis ir pārbaudīt, vai Brezenhama algoritms darbojas katrā no astoņiem "oktantiem"

Piezīmes:

  • visos pildspalvu gājienos tiek izmantota zīmēšanas mēroga kopa, izmantojot izvēlnes opciju T2
  • skaitļi "17:" un "19:" ir termināļa "Xon" un "Xoff" rokasspiediena kodi no arduino tulka.

8. solis: kalibrēšana

X_STEPS_PER_MM un Y_STEPS_PER_MM vērtības attiecas uz 90 mm diametra cilindru.

Citu cilindru diametru vērtības var aprēķināt, izmantojot šādas sakarības:

  • bungas apkārtmērs ir PI*diametrs
  • 2048 soļi ir vienāds ar katras motora vārpstas apgriezienu
  • viens GT-2 skriemeļa apgrieziens ir vienāds ar zobsiksnas lineāro 40 milimetru kustību

Vēl viena metode ir ievadīt šādas komandas:

  • G1 X0 Y100
  • G1 X100 Y100

pēc tam izmēriet iegūto līniju garumu un "mērogojiet" vērtības X-STEPS_PER_MM un Y_STEPS_PER_MM

9. darbība: Gcode priekšapstrāde

Gcode pirmapstrāde
Gcode pirmapstrāde
Gcode pirmapstrāde
Gcode pirmapstrāde

Šim ploterim nepieciešami tikai četri no Inkscape gcodes (ti: G0, G1, G2, G3). Kods tiks izpildīts ievērojami ātrāk, ja noņemsim visus nevajadzīgos gkodus un komentārus.

Lai to izdarītu, jums ir nepieciešama "Notepad ++" kopija. Šis bezmaksas teksta redaktors satur “regulārās izteiksmes” meklētājprogrammu nevēlama teksta atrašanai un noņemšanai. Notepad ++ ir pieejams vietnē

Atveriet modificējamo failu, izmantojot Notepad ++, un novietojiet kursoru faila augšdaļā.

Augšējā izvēlnes joslā atlasiet "Skatīt/rādīt simbolu/visas rakstzīmes", kam seko "Meklēt/aizstāt …".

Noklikšķiniet uz izvēles rūtiņas "Regulārā izteiksme" (sk. 1. attēlu) un meklēšanas lodziņā ievadiet katru no šīm koda secībām.

Pēc katra ieraksta noklikšķiniet uz "Aizstāt visu":

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

Iepriekš minētās regulārās izteiksmes noņem visus % simbolus, visus iekavās redzamos komentārus, visus M kodus, visus Z kodus un sekojošos kodus.

Tagad noklikšķiniet uz izvēles rūtiņas "Paplašinātā izteiksme" (sk. 2. attēlu) un ievadiet šādu kodu secību:

r / n / r / n / r / n

Šī izteiksme noņem nevēlamās atgriešanās un rindas plūsmas, ko izveidojusi pirmā secība.

Saglabājiet failu ar citu nosaukumu, izmantojot "Saglabāt kā".

Pabeigts

10. darbība. Rezultāti

Rezultāti
Rezultāti

Šis ploteris tika veidots kā "koncepcijas pierādījums" un nekad nebija paredzēts būt ideāls. Sakot, ka rezultāti nav pārāk slikti. Tie noteikti atbilst manam dizaina mērķim pārvietot akvareļu kontūras uz papīra.

Pirmie trīs attēli ir attiecīgi iebūvētie testa modeļi T5, T6, T7.

"Sveika pasaule!" modelis tika nosūtīts uz ploteri, izmantojot Bluetooth. Ir pievienota šī faila "iepriekš apstrādāta" kopija.

11. darbība: koda atjaunināšana

Koda atjaunināšana
Koda atjaunināšana

Šī plotera kods ir atjaunināts uz Drum_Plotter_V2.ino.

Izmaiņas no sākotnējā Drum_Plotter.ino ietver:

  • gludāka pildspalvu pozicionēšana
  • tagad atpazīst G02 gcode instrukcijas (loki pulksteņrādītāja virzienā)
  • tagad atpazīst G03 gcode instrukcijas (loki pretēji pulksteņrādītāja virzienam)

Pievienotajā diagrammā ir izklāstīta mana loka leņķa aprēķināšanas metode.

12. darbība: Drum_plotter_v3.ino

Ir pievienots koda atjauninājums "CNC Drum Plotter".

"Drum_plotter_v3.ino" novērš nelielu kļūdu, kas ietekmēja plotera precizitāti.

Izmaiņu vēsture

2. versija:

Pievienotas divu loka līknes

3. versija:

Tālāk norādītās funkcijas tika pārrakstītas, lai novērstu nelielu kļūdu, kas ietekmēja plotera precizitāti.

  • (int) funkcijā move_to () aizstāts ar round ().
  • draw_line () funkcija "astoņnieks" meklēšanas algoritms uzlabots
  • Tulks tagad izmanto virkņu funkcijas, nevis norādes, kas vienkāršo dizainu. Piemēram, tagad mēs varam meklēt "MENU", nevis meklēt burtu "M", pēc tam izvilkt veselu skaitli, kas seko. Tas ļauj personalizēt ploteri ar savām komandām.

13. darbība: Drum_plotter_plotter_v4.ino

2017. gada 16. janvāris:

Šī bungu plotera kods ir vēl vairāk optimizēts. Ir pievienotas papildu funkcijas.

Izmaiņas ietver:

  • ātrāks draw_line () algoritms
  • atbilstoša funkcija move_to ()
  • soļu skaitītāji
  • neliels kļūdu labojums

Lai iegūtu sīkāku informāciju, izlasiet komentārus pielikumā "drum_plotter_v4.ino".

Noklikšķiniet šeit, lai skatītu citus manus norādījumus.

Ieteicams: