Obsah:

CNC bubnový plotter: 13 krokov (s obrázkami)
CNC bubnový plotter: 13 krokov (s obrázkami)

Video: CNC bubnový plotter: 13 krokov (s obrázkami)

Video: CNC bubnový plotter: 13 krokov (s obrázkami)
Video: СТАРЫЙ НОУТБУК, ЛИНУКС И НИКАКИХ БУБНОВ (2023) 2024, November
Anonim
Image
Image
CNC bubnový plotter
CNC bubnový plotter

Tento návod popisuje plotter A4/A3 vyrobený z časti plastovej rúry, dvoch krokových motorov BYJ-48 a serva SG-90. V podstate ide o plochý ploter zrolovaný do bubna.

Jeden motor otáča bubon, zatiaľ čo druhý pohybuje tlačovou hlavou. Servo slúži na zdvíhanie a spúšťanie pera.

Tento plotter má oproti tradičnému plochému plotru niekoľko výhod:

  • výrazne menšia stopa
  • vyžaduje iba jednu lineárnu vodiacu lištu
  • jednoduchá konštrukcia
  • lacné

Palubný tlmočník prijíma výstup gcode z Inkscape.

Komunikácia s plotrom je cez bluetooth prepojenie.

Plotr je kompatibilný s CNC grafickým tabletom popísaným v mojom návode

Aj keď nejde o presný nástroj, presnosť tohto plotra je na zamýšľaný účel prenosu akvarelových obrysov na papier uspokojivá.

Krok 1: Okruh

Okruh
Okruh

Obvod obsahuje mikrokontrolér Arduino UNO R3 a vlastný štít, na ktorom sú namontované diskrétne komponenty. Napájanie je dodávané prostredníctvom externého 5 voltového 1 ampérového regulátora. Priemerný prúd je okolo 500mA.

Krokové motory BYJ-48 sú pripevnené k PORTB (kolíky D8, D9, D10, D11) a PORTC (kolíky A0, A1, A2, A3). Na kolíku D3 je pripevnené servo zdvihák SG-90.

Odpory 560 ohmov, ktoré môžu byť vynechané, poskytujú opatrenie ochrany proti skratu pre arduino, ak sa niečo pokazí. Tiež uľahčujú prevlečenie štítu, pretože pôsobia ako "prepojky" cez napájacie koľajnice.

Rezistory 1k2 a 2K2 zabraňujú poškodeniu bluetooth modulu HC-06 [1] znížením 5 voltového výstupu z arduina na 3,3 voltov.

[1] Pri odosielaní kódu do arduina cez port USB odpojte modul bluetooth HC-06. Tým sa zabráni akýmkoľvek konfliktom sériového portu.

Krok 2: Lineárny pohon

Lineárny pohon
Lineárny pohon
Lineárny pohon
Lineárny pohon
Lineárny pohon
Lineárny pohon

Lineárny pohon je vyrobený z hliníkovej tyče s dĺžkou 3 mm x 32 mm, pásu z hliníkového plechu a štyroch malých kladiek s guličkovými ložiskami.

Hliník je k dispozícii vo väčšine železiarstiev. Remenice U624ZZ 4x13x7mm s drážkou U sú dostupné na

Všetko, čo potrebujete, je jednoduché ručné náradie. Odrežte hliníkovú lištu tak, aby vyhovovala rozmerom vášho plotru.

Zostava motora

Namontujte krokový motor BJY-48 cez tyč na jednom konci a na hriadeľ motora pripevnite 20-zubovú remenicu GT2 s 5 mm otvorom. Teraz namontujte ďalšiu kladku GT2 na druhý koniec tyče, aby sa mohla voľne otáčať. Na dosiahnutie tohto cieľa som použil trubicovú (rádiovú) podložku s priemerom 5 mm a skrutku 3 mm.

Teraz preveďte okolo remeníc dĺžku rozvodového remeňa GT2. Pripojte konce rozvodového remeňa pomocou polovičného zákrutu, aby sa zuby preložili a upevnili káblovou sponou.

Nakoniec pripevnite zostavu vozíka k rozvodovému remeňu sťahovacou páskou.

Zostava koča

Zostava vozíka je vyrobená z pásu hliníkového plechu [1], na ktorý sú priskrutkované kladky U624ZZ. V prípade potreby vyberte 4 mm podložku na vytiahnutie remeníc z hliníkového plechu.

Remenice, ktoré majú drážku 4 mm, obopínajú hornú a dolnú časť hliníkovej lišty tak, aby nedochádzalo k vertikálnym pohybom, ale hliníkový pás sa voľne pohybuje vľavo a vpravo.

Aby ste zaistili voľný chod vozíka, namontujte najskôr dve horné kladky a potom, keď sú kladky umiestnené na lište, označte polohy dvoch dolných kladiek. Teraz môžu byť vyvŕtané otvory pre tieto dve kladky. Najprv použite malý „pilotný“vrták, aby ste zabránili unášaniu väčšieho 4 mm vrtáka.

Pred ohnutím pásika hliníka do „U“vyvŕtajte hornú a dolnú časť otvoru podľa priemeru pera. Teraz dokončite ohyby.

Pripojte rozvodový remeň k zostave vozíka pomocou sťahovacej pásky a 3 mm skrutky medzi dvoma hornými kladkami.

Zostava zdvihák pera

Pomocou jednej alebo dvoch káblových svoriek pripevnite servo SG-90 k hornej časti zostavy vozíka.

Sklopte pero nadol do dvoch vyvŕtaných otvorov. Zaistite, aby sa pero voľne posúvalo hore a dole.

K peru pripevnite „obojok“tak, aby sa pero tesne nachádzalo mimo bubna, keď je servo v polohe hore perom.

[1] Hliník sa môže rezať tak, že sa obidve strany plechu obrobia ostrým nožom (vykrajovátko) a potom sa rez ohne cez okraj stola. Niekoľko kmitov a hárok sa zlomí a zanechá priamu prestávku. Na rozdiel od cínových nožníc, táto metóda hliník neohýba.

Krok 3: Bubon

Bubon
Bubon
Bubon
Bubon
Bubon
Bubon

Bubon pozostáva z časti plastovej rúrky s dvoma drevenými koncovými zátkami [1].

Na kreslenie obrysov koncových zástrčiek použite kompas nastavený na vnútorný polomer potrubia. Teraz rozrežte každý obrys pomocou jemnej pílovej píly („coping“, „pražce“), potom na mieru prispôsobte každú koncovú zátku pomocou drevenej rašple. Koncové zátky upevnite pomocou malých zapustených skrutiek do dreva.

Nápravu tvorí 6 mm technická skrutka v strede každej koncovej zátky.

Rozmery bubna

Rozmery valca sú určené vašou veľkosťou papiera. Priemer valca 100 mm podporuje formát A4 na výšku a A3 na šírku. Priemer valca 80 mm bude podporovať iba formát A4. Na zníženie zotrvačnosti použite čo najmenší priemer bubna … motory BYJ-48 sú len malé.

Priemer valca 90 mm je ideálny pre papier na výšku a na šírku formátu A3, pretože opačné okraje sa pri obtekaní okolo valca prekrývajú približne o 10 mm, čo znamená, že na miesto nalepíte iba jeden šev.

Otáčanie bubna

Každá náprava prechádza hliníkovým koncovým držiakom tak, aby sa bubon mohol voľne otáčať. Koncovému plaváku bráni kladka GT-2, 20 zubov, 6 mm otvor, na jednom konci pripevnená k osi. Súvislý rozvodový remeň GT-2 spája krokový motor s prevodom BJY-48 s bubnom. Motor vyžaduje remenicu s priemerom otvoru 5 mm.

[1] Plastové koncovky sú k dispozícii pre väčšinu priemerov rúrok, ale boli odmietnuté, pretože sa hodia skôr na rúrku než dovnútra a plast má tendenciu sa ohýbať. Pravdepodobne by bolo v poriadku, keby sa namiesto skrutiek použila súvislá náprava … ale potom potrebujete nejaký spôsob upevnenia nápravy na koncových zátkach.

Krok 4: Tipy na stavbu

Zaistite, aby sa pero pohybovalo stredom valca. To sa dá dosiahnuť vyrezaním rohov z drevených podper. Ak je pero mimo stredu, bude mať tendenciu kĺzať po boku valca.

Presné vŕtanie dvoch otvorov pre pero je dôležité. Akékoľvek kolísanie vo vedení pera alebo zostave vozíka spôsobí chvenie pozdĺž osi X.

Nenapínajte rozvodové remene GT-2 príliš, ale musia byť napnuté. Krokové motory BYJ-48 nemajú veľký krútiaci moment.

Krokové motory BJY-48 často vykazujú malé množstvo vôle, ktoré je zanedbateľné pozdĺž osi X, ale vyvoláva obavy, pokiaľ ide o os Y. Dôvodom je to, že jedno otočenie motora v osi Y sa rovná jednému otáčaniu bubna, zatiaľ čo vozík s perom vyžaduje veľa otáčok motora v osi X, aby prešiel po dĺžke bubna. Akékoľvek vôle v osi Y je možné eliminovať udržiavaním konštantného krútiaceho momentu na bubne. Jednoduchou metódou je pripevnenie malého závažia na nylonovú šnúru omotanú okolo bubna.

Krok 5: Bresenhamov algoritmus kreslenia čiar

Bresenhamov algoritmus kresby
Bresenhamov algoritmus kresby
Bresenhamov algoritmus kresby
Bresenhamov algoritmus kresby

Tento plotter používa optimalizovanú verziu [1] Bresenhamovho algoritmu kresby. Tento algoritmus bohužiaľ platí iba pre sklony čiar menšie alebo rovné 45 stupňom (t.j. jeden oktant kruhu).

Aby som obišiel toto obmedzenie, „namapujem“všetky XY vstupy na prvý „oktant“a potom ich „zmapujem“, keď je čas na vykreslenie. Funkcie mapovania vstupov a výstupov na dosiahnutie tohto cieľa sú uvedené vo vyššie uvedenom diagrame.

Odvodenie

Zostávajúcu časť tohto kroku môžete vynechať, ak ste oboznámení s Bresenhamovým algoritmom.

Nakreslite čiaru od (0, 0) do (x1, y1), kde:

  • x1 = 8 = horizontálna vzdialenosť
  • y1 = 6 = vertikálna vzdialenosť

Rovnica pre priamku prechádzajúcu počiatkom (0, 0) je daná rovnicou y = m*x, kde:

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

Jednoduchý algoritmus

Jednoduchý algoritmus na vykreslenie tohto riadku je:

  • int x1 = 8;
  • int y1 = 6;
  • plavák m = y1/x1;
  • sprisahanie (0, 0);
  • pre (int x = 1; x <= x1; x ++) {
  • int y = okrúhle (m*x);
  • plot (x, y);
  • }

Tabuľka 1: Jednoduchý algoritmus

X m m*x r
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 týmto jednoduchým algoritmom existujú dva problémy:

  • hlavná slučka obsahuje pomalé násobenie
  • používa čísla s pohyblivou rádovou čiarkou, ktoré sú tiež pomalé

Graf y proti x pre tento riadok je uvedený vyššie.

Bresenhamov algoritmus

Bresenham predstavil koncept chybového výrazu „e“, ktorý je inicializovaný na nulu. Uvedomil si, že hodnoty m*x uvedené v tabuľke 1 je možné získať postupným sčítaním „m“k „e“. Ďalej si uvedomil, že y sa zvyšuje iba vtedy, ak je zlomková časť m*x väčšia ako 0,5. Aby udržal svoje porovnanie v rozsahu 0 <= 0,5 <= 1, odčíta 1 od 'e' vždy, keď sa zvýši y.

  • int x1 = 8;
  • int y1 = 6;
  • plavák m = y1/x1;
  • int y = 0;
  • float e = 0;
  • sprisahanie (0, 0);
  • pre (int x = 1; x <= x1; x ++) {
  • e+= m;
  • ak (e> = 0,5) {
  • e -= 1;
  • y ++;
  • }
  • plot (x, y);
  • }

Tabuľka 2: Bresenhamov algoritmus

X m e e-1 r
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

Ak preskúmate algoritmus a tabuľku 2, zistíte, že;

  • hlavná slučka používa iba sčítanie a odčítanie … nedochádza k násobeniu
  • vzor pre y je rovnaký ako pre tabuľku 1.

Ale stále používame čísla s pohyblivou rádovou čiarkou … opravme to.

Bresenhamov (optimalizovaný) algoritmus

Bresenhamov algoritmus s pohyblivou rádovou čiarkou je možné previesť na celočíselný tvar, ak zmeníme mierku „m“a „e“na 2*x1, v takom prípade m = (y1/x1)*2*x1 = 2*y1

Okrem zmeny mierky „m“a „e“je algoritmus podobný vyššie uvedenému, okrem:

  • pripočítame 2*y1 k „e“vždy, keď zvýšime „x“
  • zvýšime y, ak e je rovné alebo väčšie ako x1.
  • od „e“namiesto 1 odpočítame 2*x1
  • x1 sa používa na porovnanie namiesto 0,5

Rýchlosť algoritmu je možné ďalej zvýšiť, ak slučka na test používa nulu. Aby sme to urobili, musíme k chybovému výrazu „e“pridať posun.

  • int x1 = 8;
  • int y1 = 6;
  • int m = (y1 << 1); // konštanta: sklon zmenšený o 2*x1
  • int E = (x1 << 1); // konštanta: 2*x1 na použitie v slučke
  • int e = -x1; // offset -E/2: test teraz vykonaný na nule
  • sprisahanie (0, 0);
  • int y = 0;
  • pre (x = 1; x <= x1; x ++) {
  • e += m;
  • ak (e> = x1) {
  • e -= E
  • y ++;
  • }
  • plot (x, y);
  • }

Tabuľka 3: Bresenhamov (optimalizovaný) algoritmus

X m E e e - E r
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

Vzorec pre y je opäť rovnaký ako v ostatných tabuľkách. Je zaujímavé poznamenať, že tabuľka 3 obsahuje iba celé čísla a že pomer m/E = 12/16 = 0,75, čo je sklon 'm' priamky.

Tento algoritmus je extrémne rýchly, pretože hlavná slučka zahŕňa iba sčítanie, odčítanie a porovnávanie s nulou. Násobenie sa nepoužíva okrem toho, keď inicializujeme hodnoty pre „E“a „m“pomocou „posunu doľava“na zdvojnásobenie hodnôt x1 a y1.

[1] Táto optimalizovaná verzia Bresenhamovho algoritmu pochádza z dokumentu „Bresenhamova kresba čiar a kruhov“, Copyright © 1994-2006, W Randolph Franklin (WRF). Jeho materiál môže byť použitý na neziskový výskum a vzdelávanie za predpokladu, že mu uvediete kredit, a odkaz späť na jeho domovskú stránku

Krok 6: Kód

Stiahnite si priložený súbor do rovnomenného priečinka a potom ho nahrajte na plotter pomocou vášho arduino IDE (integrované vývojové prostredie).

Pred pokusom o odoslanie odpojte modul bluetoorh HC-06. Je to nevyhnutné, aby sa zabránilo konfliktu sériového portu s káblom USB.

Kód tretej strany

Okrem vyššie uvedeného kódu.ino budete potrebovať aj nasledujúce softvérové balíky, ktoré sú zadarmo / na darovanie:

  • Teraterm, ktorý je k dispozícii na
  • Inkscape, ktorý je k dispozícii na

Pokyny na inštaláciu a používanie každého z vyššie uvedených balíkov tretích strán nájdete v mojom článku

Krok 7: Menu

Ponuka
Ponuka

Vytvorte bluetooth spojenie so svojim ploterom pomocou „Teraterm“.

Zapnite „caps lock“, pretože všetky príkazy sú veľké písmená.

Zadajte písmeno „M“a mala by sa zobraziť ponuka, ako je uvedené vyššie.

Menu je dostatočne vysvetľujúce:

  • M (alebo M0) vyvolá ponuku
  • G0 vám umožňuje poslať pero na konkrétnu súradnicu XY so zdvihnutým perom.
  • G1 vám umožňuje poslať pero na konkrétnu súradnicu XY so spusteným perom.
  • T1 vám umožňuje umiestniť pero nad vašu súradnicu 0, 0. Ukončite zadaním „E“.
  • T2 vám umožňuje rozšíriť svoje kresby. Napríklad „T2 S2,5“zväčší vašu kresbu o 250%. Predvolená stupnica je 100%
  • T3 a T4 vám umožňujú zdvihnúť alebo spustiť pero.
  • T5 nakreslí testovací vzor „ABC“.
  • T6 nakreslí „cieľ“.
  • T7 nakreslí sadu radiálnych čiar, ktorých účelom je overiť, či Bresenhamov algoritmus funguje v každom z ôsmich „oktantov“

Poznámky:

  • všetky pohyby pera používajú sadu mierky kresby pomocou možnosti ponuky T2
  • čísla „17:“a „19:“sú kódy handshake terminálu „Xon“a „Xoff“od tlmočníka arduino.

Krok 8: Kalibrácia

Hodnoty pre X_STEPS_PER_MM a Y_STEPS_PER_MM sú pre bubon s priemerom 90 mm.

Hodnoty pre ostatné priemery valcov je možné vypočítať pomocou nasledujúcich vzťahov:

  • obvod bubna je priemer PI*
  • 2048 krokov sa rovná jednej otáčke každého hriadeľa motora
  • jedna otáčka remenice GT-2 sa rovná lineárnemu pohybu rozvodového remeňa o 40 milimetrov

Ďalšou metódou je zadanie nasledujúcich príkazov,

  • G1 X0 Y100
  • G1 X100 Y100

potom zmerajte dĺžku výsledných čiar a „škálovajte“hodnoty pre X-STEPS_PER_MM a Y_STEPS_PER_MM

Krok 9: Predspracovanie Gcode

Predspracovanie Gcode
Predspracovanie Gcode
Predspracovanie Gcode
Predspracovanie Gcode

Tento plotter vyžaduje iba štyri kódy Inkscape gk (pozri: G0, G1, G2, G3). Kód sa spustí výrazne rýchlejšie, ak odstránime všetky nepotrebné kódy a komentáre.

Na to potrebujete kópiu programu „Poznámkový blok ++“. Tento bezplatný textový editor obsahuje vyhľadávací nástroj „regulárnych výrazov“na vyhľadávanie a odstraňovanie nechceného textu. Poznámkový blok ++ je k dispozícii na

Otvorte súbor, ktorý chcete upraviť, v programe Poznámkový blok ++ a umiestnite kurzor na začiatok súboru.

Vyberte „Zobraziť/Zobraziť symbol/Všetky znaky“a potom v hornom paneli ponuky položku „Hľadať/nahradiť …“.

Kliknite na začiarkavacie políčko „Regulárny výraz“(pozri 1. obrázok) a do vyhľadávacieho poľa zadajte každú z nasledujúcich sekvencií kódov.

Po každom zadaní kliknite na „Nahradiť všetko“:

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

Vyššie uvedené regulárne výrazy odstránia všetky symboly %, všetky komentáre uvedené v zátvorkách, všetky M kódy, všetky Z kódy a nasledujúce kódy.

Teraz kliknite na začiarkavacie políčko „Rozšírený výraz“(pozri 2. obrázok) a zadajte nasledujúcu postupnosť kódov:

r / n / r / n / r / n

Tento výraz odstráni nechcené návraty na vozík a riadkové kanály vytvorené prvou sekvenciou.

Uložte súbor pod iným názvom pomocou „Uložiť ako“.

Hotový.

Krok 10: Výsledky

Výsledky
Výsledky

Tento plotter bol postavený ako „dôkaz konceptu“a nikdy nemal v úmysle byť dokonalý. Hovorí sa, že výsledky nie sú také zlé. Rozhodne spĺňajú môj dizajnový cieľ prenosu akvarelových obrysov na papier.

Prvé tri obrázky sú vstavané testovacie vzory T5, T6, T7.

„Ahoj svet!“vzor bol odoslaný do plotra cez bluetooth. „Predpracovaná“kópia tohto súboru je priložená.

Krok 11: Aktualizácia kódu

Aktualizácia kódu
Aktualizácia kódu

Kód pre tento plotter bol aktualizovaný na Drum_Plotter_V2.ino.

Zmeny oproti pôvodnému Drum_Plotter.ino zahŕňajú:

  • plynulejšie polohovanie pera
  • teraz rozpoznáva pokyny pre kód G02 (oblúky v smere hodinových ručičiek)
  • teraz rozpoznáva pokyny pre kód G03 (oblúky proti smeru hodinových ručičiek)

Priložený diagram načrtáva moju metódu výpočtu uhla oblúka.

Krok 12: Drum_plotter_v3.ino

Je priložená aktualizácia kódu pre „CNC bubnový plotter“.

„drum_plotter_v3.ino“opravuje menšiu chybu, ktorá ovplyvnila presnosť plotra.

História zmien

Verzia 2:

Pridané dvojoblúkové krivky

Verzia 3:

Nasledujúce funkcie boli prepísané tak, aby vyriešili drobnú chybu, ktorá ovplyvnila presnosť plotra.

  • (int) nahradené za round () vo funkcii move_to ().
  • Vylepšený algoritmus vyhľadávania „oktant“funkcie draw_line ()
  • Tlmočník teraz používa namiesto ukazovateľov funkcie reťazcov, čo zjednodušuje návrh. Teraz môžeme napríklad hľadať „MENU“, a nie hľadať písmeno „M“, potom extrahovať celé číslo, ktoré nasleduje. To vám umožní prispôsobiť plotr vlastnými príkazmi.

Krok 13: Drum_plotter_plotter_v4.ino

16. januára 2017:

Kód pre tento bubnový plotter bol ďalej optimalizovaný. Pribudli ďalšie funkcie.

Medzi zmeny patrí:

  • rýchlejší algoritmus draw_line ()
  • zodpovedajúca funkcia move_to ()
  • krokové počítadlá
  • oprava menšej chyby

Ďalšie podrobnosti nájdete v komentároch v prílohe „drum_plotter_v4.ino“.

Kliknutím sem zobrazíte ďalšie moje pokyny.

Odporúča: