Tartalomjegyzék:

CNC dobdoboz: 13 lépés (képekkel)
CNC dobdoboz: 13 lépés (képekkel)

Videó: CNC dobdoboz: 13 lépés (képekkel)

Videó: CNC dobdoboz: 13 lépés (képekkel)
Videó: Как проверить предохранитель, проверив его мультиметром 2024, November
Anonim
Image
Image
CNC dob plotter
CNC dob plotter

Ez az utasítás egy A4/A3-as plottert ír le, amely műanyag csőből, két BYJ-48 léptetőmotorból és egy SG-90 szervóból készült. Lényegében ez egy síkágyas plotter, amelyet dobba tekernek.

Az egyik motor forgatja a dobot, míg a másik a nyomtatófejet. A szervót a toll felemelésére és leengedésére használják.

Ennek a plotternek számos előnye van a hagyományos síkágyas plotterekhez képest:

  • lényegesen kisebb lábnyom
  • csak egy lineáris vezetősínre van szükség
  • egyszerűen felépíthető
  • olcsó

A fedélzeti tolmács elfogadja az Inkscape gcode kimenetét.

A plotterrel való kommunikáció bluetooth kapcsolaton keresztül történik.

A plotter kompatibilis az utasításomban leírt CNC grafikus táblával:

Bár nem precíziós műszer, ennek a plotternek a pontossága kielégítő a rendeltetésének megfelelően, az akvarell körvonalakat papírra másolja.

1. lépés: Az áramkör

Az áramkör
Az áramkör

Az áramkör egy Arduino UNO R3 mikrokontrollert és egy egyedi pajzsot tartalmaz, amelyre a különálló alkatrészek vannak felszerelve. A tápellátást egy külső 5 voltos, 1 amperes szabályozó biztosítja. Az átlagos áram körülbelül 500 mA.

A BYJ-48 léptetőmotorok a PORTB (D8, D9, D10, D11 csapok) és a PORTC (A0, A1, A2, A3 csapok) csatlakozókhoz vannak csatlakoztatva. Az SG-90 tollemelő szervó a D3 csaphoz van rögzítve.

Az 560 ohmos ellenállások, amelyeket el lehet hagyni, rövidzárlat elleni védelmet nyújtanak az arduino számára, ha valami baj történik. Ezenkívül megkönnyítik a pajzs bekötését, mivel "ugróként" működnek az ellátó síneken.

Az 1k2 és 2K2 ellenállások megakadályozzák a HC-06 bluetooth modul [1] károsodását, ha az arduino 5 voltos kimenetét lecsökkentik 3,3 voltra.

[1] Húzza ki a HC-06 bluetooth modult, ha kódot tölt fel az arduino-ba az USB porton keresztül. Ezzel elkerülhető a soros port konfliktusa.

2. lépés: A lineáris hajtás

A lineáris hajtás
A lineáris hajtás
A lineáris hajtás
A lineáris hajtás
A lineáris hajtás
A lineáris hajtás

A lineáris meghajtás 3 mm x 32 mm-es alumínium rúdból, alumíniumlemez szalagból és négy kis golyóscsapágyból készült.

Az alumínium a legtöbb vaskereskedésben kapható. Az U624ZZ 4x13x7mm U-hornyú szíjtárcsák a https://www.aliexpress.com oldalon érhetők el

Egyszerű kéziszerszámokra van szüksége. Vágja le az alumínium rudat a plotter méreteinek megfelelően.

A motor szerelvénye

Szerelje fel a BJY-48 léptetőmotort a rúdon az egyik végén, és rögzítse a GT2 20 fogú, 5 mm-es furatú, szíjtárcsát a motor tengelyéhez. Most szereljen fel egy másik GT2 szíjtárcsát a rúd másik végére úgy, hogy a szíjtárcsa szabadon foroghasson. Ennek eléréséhez 5 mm átmérőjű cső alakú (rádió) távtartót és 3 mm -es csavart használtam.

Most hurkoljon egy hosszú GT2 vezérműszíjat a szíjtárcsák körül. Csatlakoztassa a vezérműszíj végeit félcsavarással úgy, hogy a fogak összefonódjanak és rögzítsék kábelköteggel.

Végül rögzítse a kocsi szerelvényt a vezérműszíjhoz kábelkötegelővel.

A kocsi szerelvénye

A kocsi szerelvény alumíniumlemezből [1] készült, amelyre az U624ZZ szíjtárcsákat csavarozzák. Ha szükséges, használjon 4 mm -es alátétet a tárcsák eltávolításához az alumíniumlemezről.

A 4 mm -es horonyú tárcsák az alumínium rúd tetejét és alját úgy helyezik el, hogy nincs függőleges mozgás, de az alumínium szalag szabadon mozog balra és jobbra.

Annak érdekében, hogy a kocsi szabadon mozogjon, először a felső két szíjtárcsát szerelje fel, majd a tárcsákon a rúdon ülve jelölje meg az alsó két tárcsa helyzetét. Ennek a két tárcsának a lyukait fúrni lehet. Először használjon egy kis "próba" fúrót, hogy megakadályozza a nagyobb 4 mm -es fúró sodródását.

Mielőtt az alumínium csíkot "U" betűre hajlítaná, fúrjon lyukat felül és alul a toll átmérőjének megfelelően. Most fejezze be a kanyarokat.

Rögzítse a vezérműszíjat a kocsi szerelvényéhez egy kábelkötegelővel és 3 mm-es csavarral a két felső tárcsa között.

A tollemelő szerelvény

Csatlakoztasson egy SG-90 szervót a kocsi szerelvény tetejére egy vagy két kábelköteg segítségével.

Tegye le a tollat a két lyukba, amelyeket fúrt. Győződjön meg arról, hogy a toll szabadon csúszik fel és le.

Rögzítsen egy "gallért" a tollához úgy, hogy a toll csak akkor legyen távol a dobtól, amikor a szervo fel van tolva.

[1] Az alumínium vágható úgy, hogy a lap mindkét oldalát éles késsel (dobozvágóval) megmunkálja, majd a vágást az asztal szélére hajlítja. Néhány rázkódás és a lap eltörik, egyenes törést hagyva. Az ónvágókkal ellentétben ez a módszer nem csavarja meg az alumíniumot.

3. lépés: A dob

A dob
A dob
A dob
A dob
A dob
A dob

A dob egy műanyag csőszakaszból áll, két fa végdugóval [1].

Használjon iránytűt, amely a cső belső sugarára van állítva, és rajzolja ki a végdugó körvonalait. Most vágjon körbe minden körvonalat egy finom pengefűrésszel ("megbirkózás", "fret"), majd egyedi illesztéssel illessze be az összes végdugót egy fatörzs segítségével. Rögzítse a végdugókat kisméretű, süllyesztett facsavarokkal.

Az egyes végdugók közepén áthaladó 6 mm-es mérőcsavar képezi a tengelyt.

Dob méretek

A dob méreteit a papír mérete határozza meg. A 100 mm -es dobátmérő támogatja az A4 -es álló és az A3 -as tájképet. A 80 mm -es dobátmérő csak A4 -es tájképet támogat. Használja a lehető legkisebb dobátmérőt a tehetetlenség csökkentésére… a BYJ-48 motorok csak kicsik.

A 90 mm -es dobátmérő ideális A4 -es álló és A3 -as tájképpapírhoz, mivel a szemközti élek a dob körül tekerve körülbelül 10 mm -rel átfedik egymást, ami azt jelenti, hogy csak egy varratot kell ragasztani a helyére.

A dob forgatása

Minden tengely alumínium végkonzolon halad keresztül, így a dob szabadon foroghat. A végúszást egy GT-2, 20 fogú, 6 mm-es furat, egy tengelyhez rögzített szíjtárcsa megakadályozza. Folyamatos GT-2 vezérműszíj köti össze a BJY-48 hajtóműves léptetőmotort a dobbal. A motorhoz 5 mm átmérőjű tárcsa szükséges.

[1] A műanyag végdugók a legtöbb csőátmérőhöz rendelkezésre állnak, de elutasításra kerültek, mivel a cső fölé illeszkednek, nem pedig belsejükbe, és a műanyag hajlamos a hajlításra. Valószínűleg rendben lenne, ha a csavarok helyett folytonos tengelyt használnának … de akkor valamilyen módszerre van szükség a tengely végdugókhoz való rögzítéséhez.

4. lépés: Tippek az építéshez

Győződjön meg arról, hogy a toll végighalad a dob közepén. Ezt úgy érhetjük el, hogy kivágjuk a sarkokat a fa tartóelemekből. Ha a toll nem középen van, hajlamos lecsúszni a dob oldalán.

Fontos a két tolllyuk pontos fúrása. A tollvezetőben vagy a kocsi szerelvényben való bármilyen ingadozás hullámzást okoz az X tengely mentén.

Ne húzza túl a GT-2 vezérműszíjakat, csak meg kell feszíteni őket. A BYJ-48 léptetőmotoroknak nincs nagy nyomatéka.

A BJY-48 léptetőmotorok gyakran kis mennyiségű holtjátékot mutatnak, ami jelentéktelen az X tengely mentén, de aggodalomra ad okot az Y tengely tekintetében. Ennek az az oka, hogy az Y tengelyű motor egy fordulata a dob egy fordulatával egyenlő, míg a tollkocsi az X tengelyű motor sok fordulatát igényli, hogy áthaladjon a dob hosszán. Bármilyen Y tengelyes holtjáték kiküszöbölhető, ha állandó nyomatékot tart a dobon. Egyszerű módszer, ha kis súlyt rögzítünk a dob köré tekert nejlonzsinórra.

5. lépés: Bresenham vonalrajzoló algoritmusa

Bresenham vonalrajzoló algoritmusa
Bresenham vonalrajzoló algoritmusa
Bresenham vonalrajzoló algoritmusa
Bresenham vonalrajzoló algoritmusa

Ez a plotter a Bresenham vonalrajzoló algoritmusának optimalizált változatát [1] használja. Sajnos ez az algoritmus csak a 45 foknál kisebb egyenlő lejtőkre érvényes (azaz egy kör egy oktánjára).

Ennek a korlátozásnak a kiküszöbölése érdekében az összes XY bemenetet az első "oktán" -hoz "leképezem", majd "leképezem" őket, amikor el kell kezdeni a rajzolást. Ennek eléréséhez a bemeneti és kimeneti leképezési funkciókat a fenti ábra mutatja.

Származtatás

Ennek a lépésnek a többi része elhagyható, ha ismeri Bresenham algoritmusát.

Rajzoljunk egy vonalat (0, 0) és (x1, y1) között, ahol:

  • x1 = 8 = vízszintes távolság
  • y1 = 6 = függőleges távolság

Az origón (0, 0) áthaladó egyenes egyenletét az y = m*x egyenlet adja meg, ahol:

m = y1/x1 = 6/8 = 0,75 = lejtés

Egyszerű algoritmus

A vonal ábrázolásának egyszerű algoritmusa:

  • int x1 = 8;
  • int y1 = 6;
  • úszó m = y1/x1;
  • ábra (0, 0);
  • for (int x = 1; x <= x1; x ++) {
  • int y = kerek (m*x);
  • ábra (x, y);
  • }

1. táblázat: Egyszerű algoritmus

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

Ezzel az egyszerű algoritmussal két probléma van:

  • a főhurok lassú szorzást tartalmaz
  • lebegőpontos számokat használ, ami szintén lassú

Ennek a vonalnak az y és az x grafikonja látható fent.

Bresenham algoritmusa

Bresenham bevezette az „e” hibakifejezés fogalmát, amely nullára van inicializálva. Rájött, hogy az 1. táblázatban szereplő m*x értékek az „m” egymás utáni hozzáadásával kaphatók. Felismerte továbbá, hogy y csak akkor növekszik, ha m*x törtrésze nagyobb, mint 0,5. Ahhoz, hogy összehasonlítását a 0 <= 0,5 <= 1 tartományon belül tartsa, kivonja az 1 -et az "e" -ből, amikor y növekszik.

  • int x1 = 8;
  • int y1 = 6;
  • úszó m = y1/x1;
  • int y = 0;
  • úszó e = 0;
  • ábra (0, 0);
  • for (int x = 1; x <= x1; x ++) {
  • e+= m;
  • ha (e> = 0,5) {
  • e -= 1;
  • y ++;
  • }
  • ábra (x, y);
  • }

2. táblázat: Bresenham algoritmusa

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

Ha megvizsgálja az algoritmust és a 2. táblázatot, észre fogja venni, hogy;

  • a fő hurok csak összeadást és kivonást használ… nincs szorzás
  • y mintája ugyanaz, mint az 1. táblázatban.

De még mindig lebegőpontos számokat használunk … javítsuk ki ezt.

Bresenham (optimalizált) algoritmusa

Bresenham lebegőpontos algoritmusa egész alakba konvertálható, ha az „m” és az „e” skálát 2*x1 -gyel méretezzük, ebben az esetben m = (y1/x1)*2*x1 = 2*y1

Az „m” és „e” skálázáson kívül az algoritmus hasonló a fentiekhez, kivéve:

  • 2 x y1 -et adunk az "e" -hez minden alkalommal, amikor növeljük az "x" értéket
  • y -t növeljük, ha e egyenlő vagy nagyobb x1 -nél.
  • 1 helyett 2*x1 -et vonunk le az "e" -ből
  • Az x1 -et használják az összehasonlításhoz 0,5 helyett

Az algoritmus sebessége tovább növelhető, ha a ciklus nullát használ a teszthez. Ehhez hozzá kell adnunk egy eltolást az 'e' hibakifejezéshez.

  • int x1 = 8;
  • int y1 = 6;
  • int m = (y1 << 1); // állandó: meredekség 2*x1 -rel méretezve
  • int E = (x1 << 1); // konstans: 2*x1 ciklusban való használatra
  • int e = -x1; // -E/2 eltolása: a teszt most nullán történt
  • ábra (0, 0);
  • int y = 0;
  • (x = 1; x <= x1; x ++) esetén {
  • e += m;
  • ha (e> = x1) {
  • e -= E
  • y ++;
  • }
  • ábra (x, y);
  • }

3. táblázat: Bresenham (optimalizált) algoritmusa

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

Ismét az y mintája ugyanaz, mint a többi táblázatban. Érdekes megjegyezni, hogy a 3. táblázat csak egész számokat tartalmaz, és hogy az m/E = 12/16 = 0,75 arány, amely a vonal „m” meredeksége.

Ez az algoritmus rendkívül gyors, mivel a fő hurok csak összeadást, kivonást és nullával való összehasonlítást foglal magában. A szorzást csak akkor használjuk, ha inicializáljuk az „E” és „m” értékeit „balra tolással” az x1 és y1 értékek duplázásához.

[1] Bresenham algoritmusának ez az optimalizált változata a "Bresenham Line and Circle Drawing" című dokumentumból származik, szerzői jog © 1994-2006, W Randolph Franklin (WRF). Anyaga felhasználható nonprofit kutatásokhoz és oktatáshoz, feltéve, ha elismeri őt, és visszavezeti a honlapjára,

6. lépés: A kód

Töltse le a csatolt fájlt egy azonos nevű mappába, majd töltse fel a plotterre az arduino IDE (integrált fejlesztői környezet) használatával.

A feltöltés megkezdése előtt húzza ki a HC-06 bluetoorh modult. Erre azért van szükség, hogy elkerülje a soros port ütközését az USB -kábellel.

Harmadik fél kódja

A fenti.ino kódon kívül a következő ingyenes / donation -ware szoftvercsomagokra lesz szüksége:

  • Teraterm, amely a https://osdn.net/projects/ttssh2/releases/ oldalon érhető el
  • Inkscape, amely a https://inkscape.org/en/download/ oldalon érhető el

A fenti harmadik féltől származó csomagok telepítésével és használatával kapcsolatos utasítások a https://www.instructables.com/id/CNC-Robot-Plotter/ cikkemben találhatók.

7. lépés: menü

Menü
Menü

Hozzon létre bluetooth kapcsolatot a plotterrel a "Teraterm" segítségével.

Kapcsolja be a "caps lock" -ot, mivel minden parancs nagybetűs.

Gépelje be az „M” betűt, és egy menü jelenik meg a fentiek szerint.

A menü meglehetősen magától értetődő:

  • M (vagy M0) megjeleníti a menüt
  • A G0 lehetővé teszi, hogy a tollat egy meghatározott XY-koordinátára küldje a felemelt tollal.
  • A G1 lehetővé teszi, hogy a tollat egy meghatározott XY koordinátára küldje leengedett tollal.
  • A T1 lehetővé teszi, hogy a tollat a 0, 0 koordináta fölé helyezze. A kilépéshez írja be az „E” billentyűt.
  • A T2 lehetővé teszi a rajz méretezését. Például a "T2 S2.5" 250%-ra méretezi a rajzot. Az alapértelmezett skála 100%
  • A T3 és T4 lehetővé teszi a toll felemelését vagy leengedését.
  • A T5 "ABC" tesztmintát rajzol.
  • A T6 "célt" rajzol.
  • A T7 sugárirányú vonalakat rajzol, amelyek célja annak ellenőrzése, hogy Bresenham algoritmusa működik -e a nyolc "oktán" mindegyikében

Megjegyzések:

  • minden tollmozdulat a T2 menüopció segítségével használja a rajz méretarányát
  • a "17:" és a "19:" számok az arduino tolmács "Xon" és "Xoff" terminál kézfogási kódjai.

8. lépés: Kalibrálás

Az X_STEPS_PER_MM és Y_STEPS_PER_MM értékek egy 90 mm átmérőjű dobra vonatkoznak.

Más dobátmérők értékeit a következő összefüggések segítségével lehet kiszámítani:

  • a dob kerülete PI*átmérőjű
  • 2048 lépés minden motor tengelyének egy fordulata
  • A GT-2 szíjtárcsa egy fordulata a vezérműszíj 40 milliméteres lineáris mozgását jelenti

Egy másik módszer a következő parancsok bevitele:

  • G1 X0 Y100
  • G1 X100 Y100

majd mérje meg a kapott sorok hosszát, és "méretezze át" az X-STEPS_PER_MM és Y_STEPS_PER_MM értékeket

9. lépés: Gcode előfeldolgozás

Gcode előfeldolgozás
Gcode előfeldolgozás
Gcode előfeldolgozás
Gcode előfeldolgozás

Ez a plotter csak négy Inkscape gcode -ot igényel (azaz: G0, G1, G2, G3). A kód lényegesen gyorsabban fog futni, ha eltávolítjuk az összes felesleges gcode -ot és megjegyzést.

Ehhez szüksége van egy "Notepad ++" példányra. Ez az ingyenes szövegszerkesztő tartalmaz egy "reguláris kifejezés" keresőmotort a nem kívánt szöveg megkeresésére és eltávolítására. A Notepad ++ a következő címen érhető el:

Nyissa meg a módosítani kívánt fájlt a Notepad ++ segítségével, és vigye a kurzort a fájl tetejére.

Válassza a „Nézet/Szimbólum/Minden karakter megjelenítése” lehetőséget, majd a „Keresés/Csere…” lehetőséget a felső menüsorban.

Kattintson a "Rendszeres kifejezés" jelölőnégyzetre (lásd az első képet), és írja be az alábbi kódsorozatokat a keresőmezőbe.

Minden bejegyzés után kattintson a "Csere az összesre" gombra:

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

A fenti reguláris kifejezések eltávolítják az összes % szimbólumot, a zárójelben látható megjegyzéseket, az összes M kódot, az összes Z kódot és az azt követő kódokat.

Most kattintson a "Kiterjesztett kifejezés" jelölőnégyzetre (lásd a 2. képet), és írja be a következő kódsorozatot:

r / n / r / n / r / n

Ez a kifejezés eltávolítja az első sorozat által létrehozott nem kívánt kocsi-visszatéréseket és sorcsatornákat.

Mentse el a fájlt más néven a "Mentés másként" használatával.

Kész.

10. lépés: Eredmények

Eredmények
Eredmények

Ez a plotter a koncepció bizonyítékaként készült, és soha nem volt tökéletes. Mondván, hogy az eredmények nem rosszak. Határozottan megfelelnek a tervezési célomnak, hogy az akvarell körvonalait papírra vigyem át.

Az első három kép a beépített T5, T6, T7 tesztminták.

A "Hello World!" mintát bluetooth -on küldték a plotterhez. Ennek a fájlnak az "előfeldolgozott" példánya csatolva van.

11. lépés: Kódfrissítés

Kódfrissítés
Kódfrissítés

Ennek a plotternek a kódja frissítve lett: Drum_Plotter_V2.ino.

Változások az eredeti Drum_Plotter.ino -hoz képest:

  • simább tollpozíció
  • most felismeri a G02 gcode utasításokat (az óramutató járásával megegyező irányú ívek)
  • most felismeri a G03 gcode utasításokat (az óramutató járásával ellentétes ívek)

A mellékelt diagram felvázolja az ívszög kiszámításának módját.

12. lépés: Drum_plotter_v3.ino

A "CNC Drum Plotter" kódfrissítése csatolva van.

A "drum_plotter_v3.ino" kijavít egy kisebb hibát, amely befolyásolta a plotter pontosságát.

Változástörténet

2. verzió:

Kétíves görbék hozzáadva

3. verzió:

A következő funkciókat átírtuk, hogy kijavítsunk egy kisebb hibát, amely befolyásolta a plotter pontosságát.

  • (int) körre () cserélve a move_to () függvényben.
  • draw_line () függvény "oktáns" keresési algoritmus javítva
  • A tolmács most karakterlánc -függvényeket használ a mutatók helyett, ami leegyszerűsíti a tervezést. Például most kereshetünk a "MENU" -ra, ahelyett, hogy az "M" betűt keressük, majd kivonjuk a következő egész számot. Ez lehetővé teszi a plotter személyre szabását saját parancsaival.

13. lépés: Drum_plotter_plotter_v4.ino

2017. január 16.:

Ennek a dobos plotternek a kódja tovább lett optimalizálva. További funkciókkal bővült.

A változások a következők:

  • gyorsabb draw_line () algoritmus
  • megfelelő move_to () függvény
  • lépésszámlálók
  • kisebb hibajavítás

További részletekért olvassa el a mellékelt "drum_plotter_v4.ino" megjegyzéseket.

Kattintson ide a többi utasításom megtekintéséhez.

Ajánlott: