Tartalomjegyzék:

Arduino Uno orsóval és emelési motorral: 19 lépés
Arduino Uno orsóval és emelési motorral: 19 lépés

Videó: Arduino Uno orsóval és emelési motorral: 19 lépés

Videó: Arduino Uno orsóval és emelési motorral: 19 lépés
Videó: Proyecto de heliostato Templastat / Templastat Heliostat Project: improvements, updates and test 2024, Július
Anonim
Image
Image
Felhasznált források
Felhasznált források

Ma a mechanika és a mechatronika egy nagyon fontos témájáról fogunk beszélni: a gépek elemeiről. Ebben a cikkben külön foglalkozunk az orsókkal, érdekes funkciókkal és alkalmazásokkal. Ennek ellenére bemutatunk néhány módszert az orsó által okozott mozgás kiszámítására és egy teszt szerelvény bemutatására.

Ezért az alábbi szerelvényt készítettem el, amely egy 2 mm -es, egy másik 8 mm -es orsó előretörését teszi lehetővé. Ezeket az általam használt TR8 orsókat általában kis útválasztókban és 3D nyomtatókban használják, különösen a Z tengelyen. Ne feledje, hogy elsajátítva néhány olyan koncepciót, amelyeken itt dolgozni fogunk, bármilyen típusú gépet meg tud tervezni.

1. lépés: Felhasznált erőforrások

  • Trapéz alakú orsó 8 mm átmérőjű és 2 mm -es szögben
  • Trapéz alakú orsó 8 mm átmérőjű és 8 mm -es szögben
  • 8x2 orsós karimás gesztenye
  • 8x8 orsós karimás gesztenye
  • Csapágyak 8 mm átmérőjű orsókhoz
  • Lineáris hengeres vezető 10 mm átmérőjű
  • Hengergörgős csapágyak 10 mm -es vezetőkhöz
  • Konzolok 10 mm -es hengeres vezetőkhöz
  • NEMA 17 Motors
  • Tengelykapcsolók
  • Arduino Uno
  • DRV8825 illesztőprogram
  • 4x4 mátrix billentyűzet
  • Kijelző Nokia 5110
  • Különféle műanyag alkatrészek
  • Csavarok és anyacsavarok
  • Fa alap
  • Külső 12V -os tápegység

2. lépés: Az orsókról - melyek ezek?

Az orsókról - mik ezek?
Az orsókról - mik ezek?

Az orsók a gépek elemei, például csavarok. Vagyis egyenes rudak, amelyeket folytonos lépések menete alkot. Olyan mechanizmusokban használják, amelyek lineáris mozgást és pozicionálást igényelnek. Nagy szakító- és nyomóerőt tudnak kifejteni, valamint nyomatékot továbbítani. Automatikus reteszeléssel lehetővé teszik a mozgást. Különböző anyagokból készülhetnek, ezek a leggyakoribb alumínium és acél.

Mivel kínai vállalatok gyártják a trapéz orsókat, azt javaslom, hogy a jól ismert anyacsavar helyett ezt a típusú terméket szerezze be. Ez a vonzóbb árnak és a húzódásnak köszönhető, amit undorítónak tartok.

A fényképen a legjobb orsót helyezem el, amely véleményem szerint a keringető golyós orsót tartalmazza. Általában nagyon kemény acélból készül, és a golyók körülötte forognak, a gesztenye belsejében. A nagy pontosság mellett kiemelem a tartósságot is, mivel az ilyen típusú orsók több milliárd mozgást képesek reprodukálni anélkül, hogy károsítanák a mechanizmust. Olcsóbb megoldás, amelyet itt használunk, a trapéz orsó.

3. lépés: Az orsókról - Egyszeres és golyós szálak

Az orsókról - Egyszeres és golyós szálak
Az orsókról - Egyszeres és golyós szálak

A bal oldali képen látható golyós orsók félköríves csatornákkal rendelkeznek, ahol a golyók gurulnak. Ezek viszonylag drágábbak és alacsony súrlódásúak az egycsavaros orsókhoz képest, ami jóval nagyobb hozamhoz vezet (gördülési súrlódás).

Az egymenetes orsók a kép jobb oldalán általában trapéz alakúak, mivel ez a geometria alkalmasabb a tengelyirányú erők kifejtésére és a mozgás zökkenőmentes továbbítására. Viszonylag olcsóak és nagy súrlódásúak a recirkuláló golyós orsókhoz képest, ami alacsony hozamhoz, azaz csúszási súrlódáshoz vezet.

4. lépés: Az orsókról - alkalmazások

Az orsókról - alkalmazások
Az orsókról - alkalmazások

Orsó alkalmazható bármilyen mechanizmusra, ahol lineáris mozgásra van szükség. Széles körben használják az iparban gépekben és folyamatokban.

Néhány alkalmazás a következőket tartalmazza:

  • Teherfelvonók
  • Prések
  • Eper és eszterga
  • CNC berendezés
  • Csomagológépek
  • 3D nyomtatók
  • Lézervágó és vágó berendezések
  • Ipari folyamatok
  • Pozicionáló és lineáris mozgásrendszerek

5. lépés: Az orsókról - paraméterek

Az orsókról - Paraméterek
Az orsókról - Paraméterek

Az orsónak számos jellemzője van, amelyeket figyelembe kell venni a mechanizmus tervezésekor. Átmérőjén és dőlésszögén kívül fel kell ismerni nyomószilárdságát, tehetetlenségi nyomatékát (ellenállása a forgási állapotában bekövetkező változásokkal szemben), konstruktív anyagát, a forgás sebességét, amelynek ki lesz téve, működési irányát (vízszintes vagy függőleges), az alkalmazott terhelés, többek között.

De a már felépített mechanizmusok alapján ezen paraméterek közül többet is intuitív módon használhatunk.

Ismerjünk fel néhány közös jót. Kezdjük a STEP -el.

6. lépés: Az orsókról - lépés (elmozdulás és sebesség)

Az orsókról - lépés (elmozdulás és sebesség)
Az orsókról - lépés (elmozdulás és sebesség)

Meghatározza az anya által minden fordulaton megtett hosszt. Ez általában mm / fordulat.

Egy fordulatonként 2 mm -es orsó 2 mm -es elmozdulást okoz minden fordulatnál, amelyet az orsó végez. Ez befolyásolja az anya lineáris sebességét, mivel a forgási sebesség növekedésével az időegységenkénti fordulatok száma és ennek következtében a megtett távolság is nő.

Ha egy fordulatonként 2 mm -es centrifugálás 60 fordulat / perc sebességgel forog (egy fordulat másodpercenként), akkor az anya 2 mm / másodperc sebességgel mozog.

7. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

Összeszerelésünkben van két motorom és a billentyűzetünk a kijelzővel, ami számológépnek tűnt, mert borítót készítettem nekik a 3D nyomtatóban. A Nokia kijelzőjén a következő lehetőségek állnak rendelkezésre:

F1: Félhold - Fuso az aktuális pozícióból az általam meghatározott pozícióba lép

F2: Csökkenő - Fordulás

F3: Sebesség - Módosíthatom az impulzus szélességét

F4: ESC

8. lépés: Szerelés - anyagok

Szerelés - anyagok
Szerelés - anyagok

A - 10 mm -es lineáris vezetők

B - 2. és 8. mm -es lépések trapéz alakú orsói

C - Fúróalap

D - Orsók csapágyai

E - Vezetőtartók

F - Gesztenye

G - Csapágyak

H - Csatlakozók

I - Motorok

J - Különböző műanyag alkatrészek (kurzorok, motorkonzolok, ékek, billentyűzet támogatás és kijelző

9. lépés: Összeszerelés - 01

Összeszerelés - 01 lépés
Összeszerelés - 01 lépés

Az alap (C) fúrását követően összeszereljük a két motort (I). Rögzítésükhöz a 3D nyomtatóban készült konzolokat használjuk (J). Ne húzza meg a csavarokat ebben a pozícionálási lépésben. Ez lehetővé teszi a szükséges beállításokat az igazítási lépésben.

10. lépés: Összeszerelés - 02

Összeszerelés - 02 lépés
Összeszerelés - 02 lépés

Még mindig az alap (C) fúrását követően helyezze el a vezetősíneket (E) és a csapágyakat (D). Részletek a műanyag alátétről (J) a csapágyak magasságának beállításához.

11. lépés: Szerelés - 03

Szerelés - 03
Szerelés - 03

Kurzort hozunk létre egy nyomtatott rész segítségével, hogy összekapcsoljuk a csapágyat (G) az anyával (F). Két kurzort használtunk, egyik jobb, másik bal. Funkciója, hogy jelzi a pozíciót egy skálán, amikor meg akarjuk határozni az orsó okozta elmozdulást.

12. lépés: Összeszerelés - 04

Összeszerelés - 04 lépés
Összeszerelés - 04 lépés
Összeszerelés - 04 lépés
Összeszerelés - 04 lépés

Helyezze be a vezetőt (A) és az orsót (B) a megfelelő csapágyba (D) és tartóba (E), a motorral szemben, majd helyezze be a vezetőt és az orsót a csapágyba (G) és a gesztenyébe (F), valamint az orsó csúcsába is behelyezzük a csatlakozót (H). Mindkettőt addig vesszük, amíg el nem érik a végső pontokat (ellentétes támasz és motor).

Enyhén húzza meg a csavarokat a későbbi beállításhoz. Ismételje meg az eljárást a fennmaradó vezetővel és orsóval. Az összes alkatrész elhelyezésével elvégezzük az alkatrészek igazítását, befejezve a mechanikai összeszerelési szakaszt.

13. lépés: Szerelés - elektronika

Szerelés - Elektronika
Szerelés - Elektronika
Szerelés - Elektronika
Szerelés - Elektronika
Szerelés - Elektronika
Szerelés - Elektronika

Nyomtatott műanyag tartó segítségével rögzítettük a Nokia 5110 kijelzőt és egy 4x4 -es mátrix billentyűzetet. Az állvány alsó részében az Arduino Uno, a DRV8825 meghajtó található.

Az alapban rendelkezésre álló fúrás segítségével rögzítjük a szerelvényt.

14. lépés: Elektromos rendszer

Elektromos rendszer
Elektromos rendszer

A kapcsolási rajz egyszerű. Megvan a DRV8825 és ugyanaz a két 17 tükör, vagyis ugyanaz a lépés, amit egyiknek küldünk, megy a másikhoz. Ami változik, az az, hogy az egyik motorban 8 mm -es, a másikban 2 mm -es orsóm van. Nyilvánvaló tehát, hogy az első, 8 mm -es orsóval gyorsabban megy. A diagramon még mindig a kijelző és a 4x4 -es billentyűzet található, amelynek mátrixnak kell lennie.

15. lépés: Forráskód

Könyvtárak beépítése és objektumok létrehozása

Van itt egy Lib, amit csináltam, ami a StepDriver.h. Fel van készítve a 8825, 4988 és a TB6600 illesztőprogramokra. Ebben a lépésben létrehozom a DRV8825 objektumot, a d1 -et.

// Biblioteca responseável por capturar a tecla que foi pressionada no teclado #include // Biblioteca responseável pelos graficos do display #include // Biblioteca Responsável pela comunicacao do display #include // Configuracao de pinos do Display // pin 6 - Serial clock out [SCLK] // 5. tű - Soros adatkimenet (DIN) // 4. tű - Adat/parancsválasztás (D/C) // 3. érintkező - LCD chipválasztás (CS/CE) // 2. tű - LCD visszaállítás (RST)) Adafruit_PCD8544 kijelző = Adafruit_PCD8544 (6, 5, 4, 3, 2); // Biblioteca de motor de passo #include // Instancia o driver DRV8825 DRV8825 d1;

Állandó és globális változók

A kód ezen részében a mátrixot kezelem, amelyet egy másik videó leckében tanítottam (LINK KEYBOARD). Ennek ellenére a billentyűzetről beszélek, a távolságon és a sebességen kívül.

const bájt LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // define uma matriz com os símbolos que deseja ser lido do teclado char SIMBOLOS [LINHAS] [COLUNAS] = {{'A', '1', '2', '3'}, { "B", "4", "5", "6"}, {"C", "7", "8", "9"}, {"D", "c", "0", "e" '}}; bájtos PINOS_LINHA [LINHAS] = {A2, A3, A4, A5}; // pinos que indicam as linhas do teclado byte PINOS_COLUNA [COLUNAS] = {0, 1, A0, A1}; // pinos que indicam as colunas do teclado // instancia de Keypad, responseavel for capturar and tecla pressionada Keypad customKeypad = Kezelő (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); // variáveis resposnsáveis por armazenar o valor digitado char customKey; előjel nélküli hosszú távolság = 0; előjel nélküli hosszú velocidade = 2000;

Billentyűzet olvasási funkció

Ebben a lépésben megkapjuk a kijelzőre utaló kódot, amely a növekvő és csökkenő nyomtatást végzi.

// Funcao responseavel por ler o valor do usuario pelo teclado -------------------------------------- --- unsigned long lerValor () {// Escreve o almenü que coleta os valores no display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (27, 2); display.setTextColor (FEHÉR); display.print ("VALOR"); display.setTextColor (FEKETE); display.fillRect (0, 24, 21, 11, 2); display.setCursor (2, 26); display.setTextColor (FEHÉR); display.print ("CLR"); display.setTextColor (FEKETE); display.setCursor (23, 26); display.print ("LIMPAR"); display.fillRect (0, 36, 21, 11, 2); display.setCursor (5, 38); display.setTextColor (FEHÉR); display.print ("F4"); display.setTextColor (FEKETE); display.setCursor (23, 38); display.print ("VOLTAR"); display.setCursor (2, 14); display.display (); Karakterlánc vitézség = ""; char tecla = hamis;

hurkolás a gomb megnyomására várva

Itt elmagyarázzuk a Loop programozást, vagyis azt, hogy hol adjuk meg az értékeket.

// Loop infinito enquanto nao chamar o return while (1) {tecla = customKeypad.getKey (); if (tecla) {switch (tecla) {// Se teclas de 0 a 9 forem pressionadas case '1': case '2': case '3': case '4': case '5': case '6': „7” eset: „8” eset: „9” eset: „0” eset: valor += tecla; display.print (tecla); display.display (); szünet; // Lásd a CLR foi pressionada case 'c': // Limpa a string valor valor = ""; // Apaga o valor do display display.fillRect (2, 14, 84, 8, 0); display.setCursor (2, 14); display.display (); szünet; // Tekintse meg az ENT foi pressionada case 'e': // Retorna o valor return valor.toInt (); szünet; // Lásd az F4 (ESC) „D” esetét: return -1; alapértelmezett: break; }} // Limpa o char tecla tecla = hamis; }}

Motorhajtás funkció

Ebben a lépésben dolgozunk a "mozgatás" funkción. Megkapom az impulzusok számát és az irányt, majd teszek egy "for" -t.

// Funcao responseavel por mover o motor -------------------------------------- void mover (unsigned long pulsos, bool direcao) {for (unsigned long i = 0; i <pulsos; i ++) {d1.motorMove (directcao); }}

beállít ()

Most áthelyezem a kijelzőt és az illesztőprogram konfigurációját, és még a rögzítést is behelyezem a forráskódba, hogy megkönnyítsem. Inicializálok bizonyos értékeket, és foglalkozom a beállításokat előállító módszerekkel.

void setup () {// Configuracao do display ---------------------------------------- -------- display.begin (); display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (FEKETE); // Configuração do Driver DRV8825 ----------------------------------------- // pin GND - Engedélyezés (ENA) // 13. tű - M0 // 12. tű - M1 // 11. tű - M2 // 10. tű - Visszaállítás (RST) // 9. pin - Alvás (SLP) // 8. pin - Lépés (STP) // 7. tű - Irány (DIR) d1.pinConfig (99, 13, 12, 11, 10, 9, 8, 7); d1.alvás (LOW); d1.reset (); d1.lépésPerMm (100); d1.lépésPerRund (200); d1.stepConfig (1); d1.motionConfig (50, velocidade, 5000); }

loop () - 1. rész - Rajz menü

void loop () {// Escreve o Menu do Programa no display ----------------------------------- display.clearDisplay (); display.fillRect (0, 0, 15, 11, 2); display.setCursor (2, 2); display.setTextColor (FEHÉR); display.print ("F1"); display.setTextColor (FEKETE); display.setCursor (17, 2); display.print ("CRESCENTE"); display.fillRect (0, 12, 15, 11, 2); display.setCursor (2, 14); display.setTextColor (FEHÉR); display.print ("F2"); display.setTextColor (FEKETE); display.setCursor (17, 14); display.print ("DECRESCENTE"); display.fillRect (0, 24, 15, 11, 2); display.setCursor (2, 26); display.setTextColor (FEHÉR); display.print ("F3"); display.setTextColor (FEKETE); display.setCursor (17, 26); display.print ("VELOCIDADE");

loop () - 2. rész - Rajz menü

display.fillRect (0, 36, 15, 11, 2); display.setCursor (2, 38); display.setTextColor (FEHÉR); display.print ("F4"); display.setTextColor (FEKETE); display.setCursor (17, 38); display.print ("ESC"); display.display (); bool esc = hamis;

hurok () - 3. rész - Futás

// Loop enquanto a tecla F4 (ESC) nao for pressionada while (! Esc) {// captura a tecla pressionada do teclado customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {// Trata a tecla apertada switch (customKey) {// Se tecla F1 foi pressionada case 'A': distancia = lerValor (); // Se tecla ESC foi pressionada if (distancia == -1) {esc = true; } else {// Javítson egy tela "Movendo" kijelzőt.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (FEHÉR); display.print ("MOVENDO"); display.setTextColor (FEKETE); display.setCursor (2, 14); display.print (distancia); display.print ("Passos"); display.display ();

hurok () - 4. rész - Futás

// Move o motor mover (distancia, LOW); // Volta ao menü esc = true; } szünet; // A tecla F2 foi pressionada case 'B': distancia = lerValor (); // Se tecla ESC foi pressionada if (distancia == -1) {esc = true; } else {// Javítson egy tela "Movendo" kijelzőt.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (FEHÉR); display.print ("MOVENDO"); display.setTextColor (FEKETE); display.setCursor (2, 14); display.print (distancia); display.print ("Passos"); display.display ();

hurok () - 5. rész - Futás

// Move o motor mover (distancia, HIGH); // Volta ao menü esc = true; } szünet; // Tekintse meg az F3 foi presionada case 'C': velocidade = lerValor (); if (velocidade == -1) {esc = igaz; } else {// Töltsön fel egy "Velocidade" -et, nincs kijelző.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (12, 2); display.setTextColor (FEHÉR); display.print ("VELOCIDADE"); display.setTextColor (FEKETE); display.setCursor (2, 14); display.print (velocidade); display.print (char (229)); display.print ("s");

hurok () - 6. rész - Futás

display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor (FEHÉR); display.println ("OK!"); display.setTextColor (FEKETE); display.display (); // Configura nova velocidade ao motor d1.motionConfig (50, velocidade, 5000); késleltetés (2000); // Volta ao menü esc = true; } szünet; // Se tecla F4 (ESC) foi pressionada case 'D': // Se tecla CLR foi pressionada case 'c': // Se tecla ENT foi pressionada case 'e': // Volta ao menu esc = true; alapértelmezett: break; }} // Limpa vagy char customKey customKey = false; }}

16. lépés: Az orsókról - gépkonfigurációk

Az orsókról - Gépkonfigurációk
Az orsókról - Gépkonfigurációk

A CNC gépekben, például 3D nyomtatókban és útválasztókban a pozicionálás vezérléséért felelős programnak tudnia kell, hogy a mozgások hogyan fognak történni a léptetőmotornak adott impulzusszám függvényében.

Ha a lépcsőmotor-meghajtó lehetővé teszi a mikrolépések alkalmazását, ezt a konfigurációt figyelembe kell venni az elmozdulás kiszámításakor.

Például, ha fordulatonként 200 lépéses motor van csatlakoztatva egy 1/16 meghajtóhoz, akkor 16 x 200 impulzusra lesz szükség az orsó egyetlen fordulatához, azaz minden fordulathoz 3200 impulzus. Ha ennek az orsónak a fordulatszáma 2 mm fordulatonként, akkor 3200 impulzus kell a meghajtóban ahhoz, hogy az anya 2 mm -re mozogjon.

Valójában a szoftvervezérlők gyakran használnak okot ennek az aránynak a megadására, az "impulzusok milliméterenként" vagy "lépés / mm" értékre.

17. lépés: Marlin

Marlin
Marlin

A Marlinban például a @section motion részben láthatjuk:

/ **

* Alapértelmezett tengelylépések egységenként (lépés / mm)

* Felülbírálás az M92 segítségével

* X, Y, Z, E0 [, E1 [, E2 [, E3 [, E4]

* /

#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 3200, 100}

Ebben a példában azt a következtetést vonhatjuk le, hogy az X és Y tengelyek 80 impulzus pontossággal mozoghatnak 1 mm -t, míg a Z 3200 impulzust, az E0 extruder 100 -at igényel.

18. lépés: GRBL

GRBL
GRBL

Az alábbiakban a GRBL konfigurációs parancsokat látjuk. A $ 100 paranccsal beállíthatjuk az impulzusok számát, amely szükséges ahhoz, hogy egy milliméteres eltolódást okozzunk az X tengelyen.

Az alábbi példában láthatjuk, hogy az aktuális érték 250 impulzus / mm.

Az Y és Z tengelyek 101, illetve 102 dollárba állíthatók.

Ajánlott: