Sadržaj:
- Korak 1: Krug
- Korak 2: Linearni pogon
- Korak 3: Bubanj
- Korak 4: Savjeti za izgradnju
- Korak 5: Bresenhamov algoritam za crtanje linija
- Korak 6: Kôd
- Korak 7: Izbornik
- Korak 8: Kalibracija
- Korak 9: Gcode predprocesiranje
- Korak 10: Rezultati
- Korak 11: Ažuriranje koda
- Korak 12: Drum_plotter_v3.ino
- Korak 13: Drum_plotter_plotter_v4.ino
Video: CNC ploter za bubnjeve: 13 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Ova instrukcija opisuje ploter A4/A3 napravljen od dijela plastične cijevi, dva koračna motora BYJ-48 i servo SG-90. U biti, to je ploter s ravnim krevetima smotan u bubanj.
Jedan motor okreće bubanj, a drugi pomiče ispisnu glavu. Servo se koristi za podizanje i spuštanje olovke.
Ovaj ploter ima niz prednosti u odnosu na tradicionalni ploter ploter:
- znatno manji otisak
- potrebna je samo jedna linearna vodilica
- jednostavan za izgradnju
- jeftino
Ugrađeni tumač prihvaća gcode izlaz iz Inkscapea.
Komunikacija s ploterom odvija se putem bluetooth veze.
Ploter je kompatibilan s CNC grafičkim tabletom opisanim u mojim uputama
Iako nije precizan instrument, točnost ovog plotera je zadovoljavajuća za namjeravanu svrhu prenošenja obrisa akvarela na papir.
Korak 1: Krug
Krug se sastoji od Arduino UNO R3 mikrokontrolera i prilagođenog štita na koji su montirane diskretne komponente. Napajanje se vrši putem vanjskog regulatora od 1 volti od 1 volta. Prosječna struja je oko 500mA.
Koračni motori BYJ-48 priključeni su na PORTB (pinovi D8, D9, D10, D11) i PORTC (pinovi A0, A1, A2, A3). Servo za podizanje olovke SG-90 pričvršćen je na pin D3.
Otpornici od 560 ohma, koji se mogu izostaviti, pružaju mjeru zaštite od kratkog spoja arduinu u slučaju da nešto pođe po zlu. Također olakšavaju ožičenje štita jer djeluju kao "skakači" preko opskrbnih tračnica.
Otpornici 1k2 i 2K2 sprječavaju oštećenje HC-06 bluetooth modula [1] spuštanjem 5 voltnog izlaza s arduina na 3,3 volta.
[1] Isključite bluetooth modul HC-06 prilikom postavljanja koda na arduino putem USB priključka. Time ćete izbjeći sukobe serijskog porta.
Korak 2: Linearni pogon
Linearni pogon izrađen je od aluminijske šipke duljine 3 mm x 32 mm, trake od aluminijskog lima i četiri male remenice s kugličnim ležajevima.
Aluminij je dostupan u većini prodavaonica hardvera. U624ZZ remenice U-utora 4x13x7 mm dostupne su na
Jednostavni ručni alati su sve što vam je potrebno. Izrežite aluminijsku šipku tako da odgovara vašim dimenzijama plotera.
Sklop motora
Montirajte koračni motor BJY-48 kroz šipku na jednom kraju i pričvrstite zupčanik GT2 20, otvor od 5 mm, remenicu na osovinu motora. Sada montirajte drugu remenicu GT2 na drugi kraj šipke tako da se remenica može slobodno okretati. Za to sam upotrijebio cijevni (radijski) odstojnik promjera 5 mm i vijak od 3 mm.
Sada oko remenica obmotite duljinu razvodnog remena GT2. Krajeve zupčastog remena spojite pomoću poluvrtanja tako da se zubi isprepleću i učvršćuju vezicom za kabel.
Na kraju kabelskom vezicom pričvrstite sklop nosača na razvodni remen.
Sklop kočije
Sklop kolica izrađen je od trake od aluminijskog lima [1] na koju su pričvršćene remenice U624ZZ. Ako je potrebno, podloškom od 4 mm odvojite remenice od aluminijskog lima.
Remenice, koje imaju utor od 4 mm, leže na vrhu i na dnu aluminijske šipke tako da nema okomitog pomicanja, ali se aluminijska traka slobodno kreće lijevo i desno.
Kako biste osigurali nesmetano kretanje kolica, prvo postavite dvije gornje remenice, a zatim s remenicama koje sjede na šipci označite položaje dvaju donjih remenica. Sada se mogu izbušiti rupe za ove dvije remenice. Najprije upotrijebite malu "pilot" bušilicu kako biste spriječili da veća 4mm bušilica ne zanese.
Prije savijanja aluminijske trake u "U", izbušite gornju i donju rupu koja odgovara vašem promjeru olovke. Sada dovršite zavoje.
Pričvrstite razvodni remen na nosač pomoću kabelske vezice i vijka od 3 mm između gornje dvije remenice.
Sklop za podizanje olovke
Pričvrstite servo SG-90 na vrh nosača pomoću jedne ili dvije kabelske vezice.
Bacite olovku niz dvije rupe koje ste izbušili. Pazite da olovka slobodno klizi gore -dolje.
Pričvrstite "ogrlicu" na olovku tako da olovka bude samo dalje od bubnja kada je servo u položaju za podizanje olovke.
[1] Aluminij se može rezati tako da se oštrim nožem (nožem za rezanje kutija) režu obje strane lista, a zatim se savijanje savije preko ruba stola. Nekoliko se vrckanja i plahte će slomiti ostavljajući ravno lom. Za razliku od kositra, ova metoda ne lomi aluminij.
Korak 3: Bubanj
Bubanj sadrži dio plastične cijevi s dva drvena čepa [1].
Upotrijebite kompas, postavljen na unutarnji radijus cijevi, kako biste nacrtali obrise krajnjeg utikača. Sada izrežite svaki obris pomoću fine pile ("suočavanje", "fret"), a zatim prilagodite svaki krajnji čep uz pomoć drvene rašpe. Pričvrstite krajnje čepove malim vijcima za drvo.
Inženjerski vijak od 6 mm kroz središte svakog čepa čini osovinu.
Dimenzije bubnja
Dimenzije bubnja određuju se veličinom papira. Promjer bubnja od 100 mm podržava A4 portret i A3 pejzaž. Promjer bubnja od 80 mm podržavat će samo krajolik formata A4. Upotrijebite što manji promjer bubnja za smanjenje inercije … motori BYJ-48 su samo mali.
Promjer bubnja od 90 mm idealan je za A4 portretni i A3 pejzažni papir jer se suprotni rubovi, kad su omotani oko bubnja, preklapaju za otprilike 10 mm, što znači da morate zalijepiti samo jedan šav.
Rotiranje bubnja
Svaka osovina prolazi kroz aluminijski završni držač tako da se bubanj može slobodno okretati. Krajnji plovak spriječen je pomoću GT-2, 20 zubaca, 6 mm provrta, remenice pričvršćene na osovinu na jednom kraju. Kontinuirani razvodni remen GT-2 povezuje koračni motor BJY-48 s bubnjem. Za motor je potrebna remenica s promjerom otvora 5 mm.
[1] Plastični čepovi dostupni su za većinu promjera cijevi, ali su odbijeni jer pristaju preko cijevi, a ne iznutra, a plastika se savija. Vjerojatno bi bilo u redu da se umjesto vijaka koristi kontinuirana osovina … ali tada trebate neki način pričvršćivanja osovine na krajnje utikače.
Korak 4: Savjeti za izgradnju
Pazite da olovka ide po sredini bubnja. To se može postići izrezivanjem uglova iz drvenih nosača. Ako olovka nije centrirana, klizit će prema dolje sa strane bubnja.
Precizno bušenje dviju rupa za olovke važno je. Svako njihanje u vodilici olovke ili nosaču uzrokovat će ljuljanje duž osi X.
Nemojte previše zatezati zupčaste remene GT-2 … samo ih treba zategnuti. Koračni motori BYJ-48 nemaju veliki okretni moment.
Koračni motori BJY-48 često pokazuju male količine zazora koji su beznačajni duž osi X, ali zabrinjavaju kada se radi o osi Y. Razlog tome je što se jedna rotacija motora Y-osi izjednačuje s jednom rotacijom bubnja, dok nosač olovke zahtijeva mnogo okretaja motora X-osi kako bi prešao duljinu bubnja. Svaki zazor na osi Y može se ukloniti održavanjem konstantnog zakretnog momenta na bubnju. Jednostavna metoda je pričvršćivanje male težine na najlonsku vrpcu omotanu oko bubnja.
Korak 5: Bresenhamov algoritam za crtanje linija
Ovaj ploter koristi optimiziranu verziju [1] Bresenhamovog algoritma za crtanje linija. Nažalost, ovaj algoritam vrijedi samo za nagibe linija koji su manji ili jednaki 45 stupnjeva (tj. Jedan oktant kruga).
Da bih zaobišao ovo ograničenje, "preslikavam" sve XY ulaze u prvi "oktant", a zatim ih "poništavam" kada dođe vrijeme za crtanje. Funkcije preslikavanja ulaza i izlaza za to su prikazane na gornjem dijagramu.
Izvođenje
Ostatak ovog koraka može se izostaviti ako ste upoznati s Bresenhamovim algoritmom.
Povucimo crtu od (0, 0) do (x1, y1) gdje:
- x1 = 8 = vodoravna udaljenost
- y1 = 6 = okomita udaljenost
Jednadžba za ravnu liniju koja prolazi kroz ishodište (0, 0) dana je jednadžbom y = m*x gdje je:
m = y1/x1 = 6/8 = 0,75 = nagib
Jednostavan algoritam
Jednostavan algoritam za iscrtavanje ove linije je:
- int x1 = 8;
- int y1 = 6;
- plovak m = y1/x1;
- nacrt (0, 0);
- za (int x = 1; x <= x1; x ++) {
- int y = okruglo (m*x);
- parcela (x, y);
- }
Tablica 1: Jednostavan algoritam
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 |
S ovim jednostavnim algoritmom postoje dva problema:
- glavna petlja sadrži sporo množenje
- koristi brojeve s pomičnim zarezom koji su također spori
Grafikon y u odnosu na x za ovu liniju prikazan je gore.
Bresenhamov algoritam
Bresenham je uveo koncept pojma greške 'e' koji je inicijaliziran na nulu. Shvatio je da se vrijednosti m*x prikazane u tablici 1 mogu dobiti uzastopnim dodavanjem 'm' u 'e'. Dalje je shvatio da se y povećava samo ako je razlomljeni dio m*x veći od 0,5. Kako bi njegova usporedba bila unutar raspona 0 <= 0,5 <= 1, on oduzima 1 od 'e' kad god se y poveća.
- int x1 = 8;
- int y1 = 6;
- plovak m = y1/x1;
- int y = 0;
- float e = 0;
- nacrt (0, 0);
- za (int x = 1; x <= x1; x ++) {
- e+= m;
- ako je (e> = 0,5) {
- e -= 1;
- y ++;
- }
- parcela (x, y);
- }
Tablica 2: Bresenhamov algoritam
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 |
Ako proučite algoritam i tablicu 2, primijetit ćete da;
- glavna petlja koristi samo zbrajanje i oduzimanje … nema množenja
- uzorak za y je isti kao i za tablicu 1.
Ali još uvijek koristimo brojeve s pomičnim zarezom … popravimo ovo.
Bresenhamov (optimizirani) algoritam
Bresenhamov algoritam s pomičnim zarezom može se pretvoriti u cjelobrojni oblik ako mjerimo 'm' i 'e' za 2*x1 u tom slučaju m = (y1/x1)*2*x1 = 2*y1
Osim skaliranja 'm' i 'e' algoritam je sličan onome gore, osim:
- dodajemo 2*y1 u 'e' svaki put kad povećamo 'x"
- povećavamo y ako je e jednako ili veće od x1.
- oduzimamo 2*x1 od 'e' umjesto 1
- Za usporedbu se koristi x1 umjesto 0,5
Brzina algoritma može se dodatno povećati ako petlja koristi nulu za test. Da bismo to učinili, moramo dodati pomak pojmu greške 'e'.
- int x1 = 8;
- int y1 = 6;
- int m = (y1 << 1); // konstanta: nagib skaliran za 2*x1
- int E = (x1 << 1); // konstanta: 2*x1 za upotrebu u petlji
- int e = -x1; // pomak od -E/2: test je sada obavljen na nuli
- nacrt (0, 0);
- int y = 0;
- za (x = 1; x <= x1; x ++) {
- e += m;
- ako je (e> = x1) {
- e -= E
- y ++;
- }
- parcela (x, y);
- }
Tablica 3: Bresenhamov (optimizirani) algoritam
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 |
Još jednom je uzorak za y isti kao u ostalim tablicama. Zanimljivo je napomenuti da tablica 3 sadrži samo cijele brojeve i da omjer m/E = 12/16 = 0,75 što je nagib 'm' linije.
Ovaj je algoritam iznimno brz jer glavna petlja uključuje samo zbrajanje, oduzimanje i usporedbu s nulom. Množenje se ne koristi osim kada inicijaliziramo vrijednosti za 'E' i 'm' pomoću "pomaka ulijevo" da udvostručimo vrijednosti x1 i y1.
[1] Ova optimizirana verzija Bresenhamovog algoritma potječe iz rada "Bresenhamovo crtanje crteža i krugova", autorsko pravo © 1994-2006, W Randolph Franklin (WRF). Njegov se materijal može koristiti za neprofitna istraživanja i obrazovanje, pod uvjetom da mu date kredit i povežete se na njegovu početnu stranicu,
Korak 6: Kôd
Preuzmite priloženu datoteku u mapu s istim imenom, a zatim je prenesite na ploter koristeći svoj arduino IDE (integrirano razvojno okruženje).
Prije pokušaja učitavanja isključite HC-06 bluetoorh modul. To je potrebno kako bi se izbjegao sukob serijskog porta s USB kabelom.
Kodeks treće strane
Osim gore navedenog.ino koda, trebat će vam sljedeći besplatni softverski paketi / donatorska oprema:
- Teraterm dostupan je na
- Inkscape koji je dostupan na
Upute za instaliranje i korištenje svakog od gore navedenih paketa trećih strana mogu se pronaći u mom članku
Korak 7: Izbornik
Uspostavite bluetooth vezu s vašim ploterom koristeći "Teraterm".
Uključite "caps lock" jer su sve naredbe napisane velikim slovima.
Upišite slovo 'M' i izbornik bi se trebao pojaviti kao što je prikazano gore.
Jelovnik je razumljiv sam po sebi:
- M (ili M0) otvara izbornik
- G0 omogućuje slanje olovke na određenu koordinatu XY s podignutom olovkom.
- G1 vam omogućuje slanje olovke na određenu koordinatu XY sa spuštenom olovkom.
- T1 vam omogućuje da postavite olovku iznad koordinate 0, 0. Upišite 'E' za izlaz.
- T2 vam omogućuje da povećate crtež. Na primjer, "T2 S2.5" će skalirati vaš crtež za 250%. Zadana ljestvica je 100%
- T3 i T4 omogućuju vam podizanje ili spuštanje olovke.
- T5 crta "ABC" test uzorak.
- T6 izvlači "metu".
- T7 crta skup radijalnih linija čija je svrha provjeriti radi li Bresenhamov algoritam u svakom od osam "oktanata"
Bilješke:
- svi pokreti olovke koriste ljestvicu crteža postavljenu pomoću opcije izbornika T2
- brojevi "17:" i "19:" su kodovi rukovanja terminala "Xon" i "Xoff" iz tumača arduino.
Korak 8: Kalibracija
Vrijednosti za X_STEPS_PER_MM i Y_STEPS_PER_MM odnose se na bubanj promjera 90 mm.
Vrijednosti za druge promjere bubnja mogu se izračunati pomoću sljedećih odnosa:
- opseg bubnja ima promjer PI*
- 2048 koraka jednako je jednom okretaju svake osovine motora
- jedan okret remenice GT-2 jednak je linearnom pomicanju razvodnog remena od 40 milimetara
Druga metoda je unos sljedećih naredbi,
- G1 X0 Y100
- G1 X100 Y100
zatim izmjerite duljinu rezultirajućih redaka i "skalirajte" vrijednosti za X-STEPS_PER_MM i Y_STEPS_PER_MM
Korak 9: Gcode predprocesiranje
Ovaj crtač zahtijeva samo četiri Inkscape g koda (naime: G0, G1, G2, G3). Kôd će se izvršiti znatno brže ako uklonimo sve nepotrebne gkodove i komentare.
Da biste to učinili, potrebna vam je kopija "Notepad ++". Ovaj besplatni uređivač teksta sadrži tražilicu "regular izraz" za pronalaženje i uklanjanje neželjenog teksta. Notepad ++ dostupan je na
Otvorite datoteku koju želite izmijeniti pomoću programa Notepad ++ i postavite kursor na vrh datoteke.
Odaberite "Prikaz/prikaz simbola/svi znakovi", a zatim "Traži/zamijeni …" na gornjoj traci izbornika.
Kliknite potvrdni okvir "Regular Expression" (pogledajte 1. sliku) i unesite svaki od sljedećih kodova u okvir za pretraživanje.
Kliknite "Zamijeni sve" nakon svakog unosa:
- %
- (.*)
- ^M.*$
- Z.*$
Gore navedeni regularni izrazi uklanjaju sve simbole %, sve komentare prikazane u zagradama, sve M kodove, sve Z kodove i kodove koji slijede.
Sada kliknite potvrdni okvir "Prošireni izraz" (vidi drugu sliku) i unesite sljedeći kodni niz:
r / n / r / n / r / n
Ovaj izraz uklanja neželjene povratne prijenose i unose redaka stvorene prvim nizom.
Spremite datoteku pod drugim imenom pomoću "Spremi kao".
Gotovo.
Korak 10: Rezultati
Ovaj ploter napravljen je kao "dokaz koncepta" i nikada nije namjeravao biti savršen. Rekavši da rezultati nisu loši. Definitivno ispunjavaju moj dizajnerski cilj prenošenja obrisa akvarela na papir.
Prve tri slike su ugrađeni testni uzorci T5, T6, T7.
"Hello World!" uzorak je poslan na ploter putem bluetootha. U privitku se nalazi "unaprijed obrađena" kopija ove datoteke.
Korak 11: Ažuriranje koda
Kôd za ovaj ploter je ažuriran na Drum_Plotter_V2.ino.
Promjene u odnosu na izvorni Drum_Plotter.ino uključuju:
- glatko pozicioniranje olovke
- sada prepoznaje G02 upute za gcode (lukovi u smjeru kazaljke na satu)
- sada prepoznaje G03 upute za gcode (lukovi suprotni od kazaljke na satu)
Priloženi dijagram prikazuje moju metodu izračuna lučnog kuta.
Korak 12: Drum_plotter_v3.ino
Priloženo je ažuriranje koda za "CNC ploter za bubnjeve".
"drum_plotter_v3.ino" popravlja manju grešku koja je utjecala na točnost plotera.
Promijenite povijest
Verzija 2:
Dodane bi-lučne krivulje
Verzija 3:
Sljedeće su funkcije prepisane radi rješavanja manje greške koja je utjecala na točnost plotera.
- (int) zamijenjeno s round () u funkciji move_to ().
- draw_line () funkcija "oktantan" algoritam pretraživanja poboljšan
- Tumač sada koristi nizove, a ne pokazivače, što pojednostavljuje dizajn. Na primjer, sada možemo tražiti "MENU", a ne tražiti slovo "M", a zatim izdvojiti cijeli broj koji slijedi. To vam omogućuje personalizaciju plotera vlastitim naredbama.
Korak 13: Drum_plotter_plotter_v4.ino
16. siječnja 2017.:
Kod za ovaj ploter bubnja dodatno je optimiziran. Dodane su dodatne značajke.
Promjene uključuju:
- brži algoritam draw_line ()
- podudaranje funkcije move_to ()
- brojači koraka
- ispravak manjih grešaka
Za dodatne pojedinosti pročitajte komentare unutar "drum_plotter_v4.ino" u privitku.
Kliknite ovdje da biste vidjeli moje ostale upute.
Preporučeni:
Micro: bit - Stroj za mikro bubnjeve: 10 koraka (sa slikama)
Micro: bit - Micro Drum Machine: Ovo je mikro: bit stroj za mikro bubnjeve, koji umjesto samo stvaranja zvuka, zapravo bubnjevi. Teško ga inspiriraju zečevi iz orkestra micro: bit. Trebalo mi je neko vrijeme da pronađem neke solenoide koji su se lako koristili s mocro: bit
Pretvorite bubnjeve rock benda X-box u midi samostalne elektroničke bubnjeve .: 4 koraka (sa slikama)
Pretvorite bubnjeve rock benda X-box u midi samostalne elektroničke bubnjeve. Imao sam sreću nabaviti rabljeni set bubnjeva x-box, pomalo je grubog oblika i nema vesla, ali ništa što se ne može popraviti. pretvorite u samostalni električni set bubnjeva. Očitavanje analogne vrijednosti s piezo senzora i pretvaranje u MIDI komandu
CNC robotski ploter: 11 koraka (sa slikama)
CNC Robot ploter: a.članci {font-size: 110.0%; font-weight: bold; font-style: kurziv; ukras teksta: nema; background-color: red;} a. članci: hover {background-color: black;} Ova uputa opisuje ploter robota s CNC upravljanjem. Robot se sastoji od
Arduino CNC ploter (CRTNI STROJ): 10 koraka (sa slikama)
Arduino CNC ploter (CRTNI STROJ): Hej dečki! Nadam se da ste već uživali u mojim prethodnim uputama " Kako napraviti vlastitu Arduino platformu za obuku " i spremni ste za novu, kao i obično, napravio sam ovaj vodič koji će vas voditi korak po korak, a pritom napraviti ovu vrstu super nevjerojatnog
Arduino mini CNC ploter (sa Proteus projektom i PCB -om): 3 koraka (sa slikama)
Arduino mini CNC ploter (sa Proteus Project & PCB -om): Ovaj arduino mini CNC ili XY ploter može pisati i izrađivati dizajne u rasponu od 40x40 mm. Da, ovaj raspon je kratak, ali je dobar početak za skok u arduino svijet. [Dao sam sve u ovom projektu, čak i PCB, Proteus datoteku, primjer dizajna