Obsah:

Arduino Uno s vretenovým a rozstupovým motorom: 19 krokov
Arduino Uno s vretenovým a rozstupovým motorom: 19 krokov

Video: Arduino Uno s vretenovým a rozstupovým motorom: 19 krokov

Video: Arduino Uno s vretenovým a rozstupovým motorom: 19 krokov
Video: Foxalien Vasto XXL Cnc Router - Ballscrews, Linear Rails Build, Test & Review 2024, November
Anonim
Image
Image
Použité zdroje
Použité zdroje

Dnes budeme hovoriť o veľmi dôležitom predmete v mechanike a mechatronike: prvkoch strojov. V tomto článku sa budeme konkrétne venovať vretenám predstavujúcim niektoré zaujímavé funkcie a aplikácie. Napriek tomu ukážeme niektoré spôsoby výpočtu pohybu spôsobeného vretenom a predstavíme testovaciu zostavu.

Zostavu som preto vyrobil nižšie, ktorá odhaľuje posun vretena o 2 mm a ďalšieho o 8 mm. Tieto vretená TR8, ktoré používam, sa bežne používajú v malých smerovačoch a 3D tlačiarňach, najmä na osi Z. Pamätajte si, že zvládnutím niektorých konceptov, na ktorých tu budeme pracovať, budete schopní navrhnúť akýkoľvek typ stroja.

Krok 1: Použité zdroje

  • Trapézové vreteno s priemerom 8 mm a rozstupom 2 mm
  • Trapézové vreteno s priemerom 8 mm a rozstupom 8 mm
  • Prírubový gaštan s vretenom 8x2
  • Prírubový gaštan s vretenom 8x8
  • Ložiská pre vretená s priemerom 8 mm
  • Lineárne valcovité vedenie s priemerom 10 mm
  • Valčekové ložiská pre 10 mm vodítka
  • Konzoly pre 10 mm valcové vodidlá
  • Motory NEMA 17
  • Hriadeľové spojky
  • Arduino Uno
  • Ovládač DRV8825
  • Maticová klávesnica 4x4
  • Displej Nokia 5110
  • Rôzne plastové diely
  • Skrutky a matice
  • Drevená základňa
  • Externé napájanie 12V

Krok 2: O vretenách - čo sú to?

O vretenách - aké sú to?
O vretenách - aké sú to?

Vretená sú prvky strojov, napríklad skrutky. To znamená, že sú to rovné tyče tvorené závitmi súvislých krokov. Používajú sa v mechanizmoch, ktoré vyžadujú lineárny pohyb a polohovanie. Môžu vyvíjať vysoké ťahové a tlakové sily a prenášať krútiaci moment. Umožňujú pohyb s automatickým zamykaním. Môžu byť vyrobené z rôznych materiálov, pričom ide o najbežnejší hliník a oceľ.

Keďže čínske spoločnosti vyrábajú lichobežníkové vretená, navrhoval by som vám zaobstarať tento typ výrobku namiesto známeho skrutky s maticou. Je to kvôli atraktívnejšej cene a odporu, ktorý považujem za hrozný.

Na fotografiu som dal to najlepšie vreteno, ktoré podľa mňa má, to je recirkulačné guľové vreteno. Obvykle je vyrobený z veľmi tvrdej ocele a guličky sa okolo neho otáčajú vo vnútri gaštanu. Okrem vynikajúcej presnosti vyzdvihujem aj trvanlivosť, pretože tento typ vretena dokáže reprodukovať miliardy pohybov bez poškodenia mechanizmu. Lacnejšou možnosťou, ktorú tu používame, je lichobežníkové vreteno.

Krok 3: O vretenách - jednoduché a guľkové nite

O vretenách - jednoduché a guľkové nite
O vretenách - jednoduché a guľkové nite

Vretená s loptičkami na fotografii vľavo majú polkruhové kanály, kde sa loptičky valia. Sú relatívne drahšie a majú nízke trenie v porovnaní s vretenami s jednou skrutkou, čo vedie k oveľa vyššiemu výťažku (valivé trenie).

Jednovláknové vretená na pravej strane obrázku majú zvyčajne lichobežníkové profily, pretože táto geometria je vhodnejšia na pôsobenie síl v axiálnom smere a plynulý prenos pohybu. Sú relatívne lacné a v porovnaní s recirkulačnými vretenami majú vysoké trenie, čo vedie k nízkemu výťažku, tj klznému treniu.

Krok 4: O vretenách - aplikácie

O vretenách - Aplikácie
O vretenách - Aplikácie

Vretená je možné použiť na akýkoľvek mechanizmus, kde je potrebný lineárny pohyb. V priemysle sa široko používajú v strojoch a procesoch.

Niektoré aplikácie zahŕňajú:

  • Nákladné výťahy
  • Lisy
  • Jahody a sústruhy
  • CNC zariadenie
  • Baliace stroje
  • 3D tlačiarne
  • Zariadenie na rezanie a rezanie laserom
  • Priemyselné procesy
  • Polohovacie a lineárne pohybové systémy

Krok 5: O vretenách - parametre

O vretenách - parametre
O vretenách - parametre

Pri návrhu mechanizmu je potrebné vziať do úvahy niekoľko charakteristík vretena. Okrem jeho priemeru a rozstupu je potrebné rozpoznať aj jeho pevnosť v tlaku, moment zotrvačnosti (odpor voči zmene stavu rotácie), konštruktívny materiál, rýchlosť otáčania, ktorému bude podrobené, smer činnosti (horizontálny) alebo zvislé), okrem iného aplikované zaťaženie.

Na základe už vytvorených mechanizmov však môžeme niekoľko z týchto parametrov intuitívne.

Rozpoznajme niektoré spoločné dobro. Začnime KROKOM.

Krok 6: O vretenách - krok (výtlak a rýchlosť)

O vretenách - krok (výtlak a rýchlosť)
O vretenách - krok (výtlak a rýchlosť)

Určuje dĺžku prejdenú maticou pri každej otáčke. Obvykle je to v mm / otáčka.

2 mm vreteno na otáčku spôsobí posun 2 mm pri každom otočení, ktoré vreteno vykoná. Ovplyvní lineárnu rýchlosť matice, pretože so zvýšením rýchlosti otáčania sa zvýši počet otáčok za jednotku času a následne aj prejdená vzdialenosť.

Ak sa otáčanie 2 mm na otáčku otáča pri 60 otáčkach za minútu (jedna otáčka za sekundu), matica sa bude pohybovať rýchlosťou 2 mm za sekundu.

Krok 7: Zostavenie

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

V našej zostave mám dva motory a našu klávesnicu s displejom, ktorá vyzerala ako kalkulačka, pretože som im vyrobil kryt v 3D tlačiarni. Na displeji Nokia máme nasledujúce možnosti:

F1: Polmesiac - Fuso prechádza z aktuálnej polohy do polohy, ktorú určím

F2: Zostupne - odbočka

F3: Rýchlosť - Môžem zmeniť šírku impulzu

F4: ESC

Krok 8: Montáž - materiály

Montáž - materiály
Montáž - materiály

A - 10 mm lineárne vedenie

B - Trapézové vretená krokov 2 a 8 mm

C - Vŕtacia základňa

D - Ložiská pre vretená

E - Držiaky sprievodcu

F - gaštany

G - Ložiská

H - Spojky

I - Motory

J - Rôzne plastové diely (kurzory, konzoly motora, kliny, podpera klávesnice a displej

Krok 9: Montáž - krok 01

Montáž - krok 01
Montáž - krok 01

Po vyvŕtaní základne (C) zostavíme dva motory (I). Na ich upevnenie používame konzoly vyrobené v 3D tlačiarni (J). V tomto kroku polohovania neutiahnite žiadne skrutky. To umožní potrebné úpravy v kroku zarovnania.

Krok 10: Montáž - krok 02

Montáž - krok 02
Montáž - krok 02

Stále sledujte vŕtanie základne (C) a umiestnite vodiace lišty (E) a ložiská (D). Detail pre plastovú vložku (J) použitú na úpravu výšok ložísk.

Krok 11: Montáž - krok 03

Montáž - krok 03
Montáž - krok 03

Vytvoríme kurzor pomocou tlačenej časti na pripojenie ložiska (G) k matici (F). Použili sme dva kurzory, jeden pravý a druhý ľavý. Jeho funkciou je indikovať polohu na stupnici vždy, keď chceme určiť posun spôsobený vretenom.

Krok 12: Montáž - krok 04

Montáž - krok 04
Montáž - krok 04
Montáž - krok 04
Montáž - krok 04

Vložte vodidlo (A) a vreteno (B) do príslušného ložiska (D) a podpery (E) oproti motoru, potom vložte vedenie a vreteno do ložiska (G) a gaštanu (F) a na hrot vretena vložíme aj spojku (H). Vezmeme ich oboch, kým nedosiahnu svoje konečné body (opačná podpora a motor).

Zľahka utiahnite skrutky, aby bolo možné neskoršie nastavenie. Opakujte postup s použitím zostávajúceho vodidla a vretena. Po umiestnení všetkých komponentov vykonáme zarovnanie dielov a dokončíme fázu mechanickej montáže.

Krok 13: Montáž - elektronika

Montáž - elektronika
Montáž - elektronika
Montáž - elektronika
Montáž - elektronika
Montáž - elektronika
Montáž - elektronika

Pomocou vytlačeného plastového držiaka sme zaistili displej Nokia 5110 a maticovú klávesnicu 4x4. V dolnom priestore stojana bude sídliť Arduino Uno, ovládač DRV8825.

Pomocou dostupného vŕtania do základne upevníme zostavu.

Krok 14: Elektrická schéma

Elektrická schéma
Elektrická schéma

Schéma zapojenia je jednoduchá. Máme DRV8825 a rovnaké dve 17 zrkadiel, to znamená, že rovnaký krok, ktorý pošleme jednému, prejde na druhý. Čo sa mení, je to, že v jednom z motorov mám vreteno 8 mm a v druhom vreteno 2 mm. Je teda zrejmé, že prvý s 8 mm vretenom ide rýchlejšie. Na obrázku je stále displej a klávesnica 4x4, ktoré musia byť maticové.

Krok 15: Zdrojový kód

Zahrnutie knižníc a vytváranie objektov

Máme tu Lib, ktorý som urobil, čo je StepDriver.h. Je pripravený pre ovládače 8825, 4988 a tiež TB6600. V tomto kroku vytvorím objekt DRV8825, d1.

// Biblioteca responzar and tecla que foi pressionada no teclado #include // Biblioteca responzel pelos graficos do display #include // Biblioteca responziel pela comunicacao do display #include // Configuracao de pinos do Display // pin 6 - Serial clock out (SCLK) // pin 5 - výstup sériových dát (DIN) // pin 4 - výber údajov/príkazov (D/C) // pin 3 - výber čipu LCD (CS/CE) // pin 2 - reset LCD (RST) Displej Adafruit_PCD8544 = Adafruit_PCD8544 (6, 5, 4, 3, 2); // Biblioteca de passo #include // Instancia o driver DRV8825 DRV8825 d1;

Konštanty a globálne premenné

V tejto časti kódu sa zaoberám maticou, ktorú som učil v ďalšej video lekcii (KLÁVESNICE NA ODKAZ). Napriek tomu hovorím o objekte Klávesnica, okrem vzdialenosti a rýchlosti.

konštantný bajt 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 '}}; bajt PINOS_LINHA [LINHAS] = {A2, A3, A4, A5}; // pinos que indicam as linhas do teclado byte PINOS_COLUNA [COLUNAS] = {0, 1, A0, A1}; // hlavné indikácie ako // // klávesnica, odpoveď na obrázok a tlačová klávesnica customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); // variáveis resposnsáveis por armazenar o valor digitado char char customKey; dlhá vzdialenosť bez znamienka = 0; dlhá velocidáda bez znamienka = 2000;

Funkcia čítania klávesnice

V tomto kroku máme kód odkazujúci na displej, ktorý funguje na zvyšujúcej sa a klesajúcej tlači.

// Funcao responavel por ler o valor do usuario pelo teclado -------------------------------------- --- unsigned long lerValor () {// Escreve o submenu que coleta os valores no display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (27, 2); display.setTextColor (BIELY); display.print („VALOR“); display.setTextColor (ČIERNA); display.fillRect (0, 24, 21, 11, 2); display.setCursor (2, 26); display.setTextColor (BIELY); display.print („CLR“); display.setTextColor (ČIERNA); display.setCursor (23, 26); display.print („LIMPAR“); display.fillRect (0, 36, 21, 11, 2); display.setCursor (5, 38); display.setTextColor (BIELY); display.print ("F4"); display.setTextColor (ČIERNA); display.setCursor (23, 38); display.print („VOLTAR“); display.setCursor (2, 14); display.display (); String valor = ""; char tecla = nepravda;

opakovanie čakania na stlačenie klávesu

Tu vysvetlíme programovanie slučky, to znamená, kde zadávate hodnoty.

// Opakujte nekonečné smyčky a vráťte sa, kým (1) {tecla = customKeypad.getKey (); if (tecla) {switch (tecla) {// Se teclas de 0 a 9 forward pressionadas case '1': case '2': case '3': case '4': case '5': case '6': prípad '7': prípad '8': prípad '9': prípad '0': valor += tecla; display.print (tecla); display.display (); prestávka; // Pozri tek CLR pre prípad prípadu 'c': // Limpa a string valor valor = ""; // Apaga o valor do display display.fillRect (2, 14, 84, 8, 0); display.setCursor (2, 14); display.display (); prestávka; // Se tecla ENT foi pressionada case 'e': // Retorna o valor return valor.toInt (); prestávka; // Pozri tecla F4 (ESC) pre prípad prípadu 'D': return -1; predvolené: break; }} // Limpa o char tecla tecla = false; }}

Funkcia motorového pohonu

V tomto kroku sa pracuje na funkcii „presun“. Zistím počet impulzov a smer a potom urobím „za“.

// Funcao responseavel from mover or motor -------------------------------------- neplatný sťahovač (bez znamienka dlhé pulzy, bool direcao) {for (nepodpísané dlhé i = 0; i <pulsos; i ++) {d1.motorMove (direcao); }}

nastaviť ()

Teraz presuniem displej a konfiguráciu ovládača a kvôli zjednodušeniu som dokonca vložil pripnutie do zdrojového kódu. Inicializujem určité hodnoty a zaoberám sa metódami, ktoré generujú nastavenia.

void setup () {// Configuracao do display ---------------------------------------- -------- display.begin (); display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (ČIERNA); // Konfigurácia ovládača DRV8825 ----------------------------------------- // pin GND - Povoliť (ENA) // pin 13 - M0 // pin 12 - M1 // pin 11 - M2 // pin 10 - Reset (RST) // pin 9 - Sleep (SLP) // pin 8 - Step (STP) // pin 7 - Smer (DIR) d1.pinConfig (99, 13, 12, 11, 10, 9, 8, 7); d1.spánok (NÍZKY); d1.reset (); d1.stepPerMm (100); d1.stepPerRound (200); d1.stepConfig (1); d1.motionConfig (50, velocidáda, 5000); }

slučka () - 1. časť - Menu kresby

void loop () {// Escreve o Menu do Programa no display ----------------------------------- display.clearDisplay (); display.fillRect (0, 0, 15, 11, 2); display.setCursor (2, 2); display.setTextColor (BIELY); display.print ("F1"); display.setTextColor (ČIERNA); display.setCursor (17, 2); display.print („CRESCENTE“); display.fillRect (0, 12, 15, 11, 2); display.setCursor (2, 14); display.setTextColor (BIELY); display.print ("F2"); display.setTextColor (ČIERNA); display.setCursor (17, 14); display.print („DEKRESENT“); display.fillRect (0, 24, 15, 11, 2); display.setCursor (2, 26); display.setTextColor (BIELY); display.print ("F3"); display.setTextColor (ČIERNA); display.setCursor (17, 26); display.print („VELOCIDADE“);

loop () - 2. časť - Menu kresby

display.fillRect (0, 36, 15, 11, 2); display.setCursor (2, 38); display.setTextColor (BIELY); display.print ("F4"); display.setTextColor (ČIERNA); display.setCursor (17, 38); display.print („ESC“); display.display (); bool esc = false;

loop () - Časť 3 - Beh

// Zopakujte smyčku a tecla F4 (ESC) pre 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 {// Escreve a tela "Movendo" no display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (BIELY); display.print („MOVENDO“); display.setTextColor (ČIERNA); display.setCursor (2, 14); display.print (vzdialenosť); display.print („Passos“); display.display ();

loop () - časť 4 - Beh

// Move or motor mover (distancia, LOW); // Volta ao menu esc = true; } prestávka; // Pozrite sa na prípad F2 pre prípad „B“: distancia = lerValor (); // Se tecla ESC foi pressionada if (distancia == -1) {esc = true; } else {// Escreve a tela "Movendo" no display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (BIELY); display.print („MOVENDO“); display.setTextColor (ČIERNA); display.setCursor (2, 14); display.print (vzdialenosť); display.print („Passos“); display.display ();

loop () - 5. časť - Beh

// Move or motor mover (distancia, HIGH); // Volta ao menu esc = true; } prestávka; // Pozrite sa na prípad F3 pre prípad 'C': velocidade = lerValor (); if (velocidade == -1) {esc = true; } else {// Escreve a tela "Velocidade" no display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (12, 2); display.setTextColor (BIELY); display.print („VELOCIDADE“); display.setTextColor (ČIERNA); display.setCursor (2, 14); display.print (velocidáda); display.print (char (229)); display.print ("s");

loop () - časť 6 - Beh

display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor (BIELY); display.println („OK!“); display.setTextColor (ČIERNA); display.display (); // Configura nova velocidade ao motor d1.motionConfig (50, velocidade, 5000); oneskorenie (2000); // Volta ao menu esc = true; } prestávka; // Se tecla F4 (ESC) for pressionada case 'D': // Se tecla CLR foi pressionada case 'c': // Se tecla ENT fori pressionada case 'e': // Volta ao menu esc = true; predvolené: break; }} // Limit alebo znak customKey customKey = false; }}

Krok 16: O vretenách - konfigurácie stroja

O vretenách - Konfigurácie strojov
O vretenách - Konfigurácie strojov

Na CNC strojoch, ako sú napríklad 3D tlačiarne a smerovače, musí program zodpovedný za riadenie polohovania vedieť, ako k pohybom dôjde, v závislosti od počtu impulzov daných krokovému motoru.

Ak ovládač krokového motora umožňuje použitie mikrokrokov, táto konfigurácia sa musí vziať do úvahy pri výpočte vytvoreného posunu.

Ak je napríklad 200-stupňový motor na otáčku pripojený k budiču nastavenému na 1/16, potom bude na jednu otáčku vretena potrebovať 16 x 200 impulzov, to znamená 3 200 impulzov na každú otáčku. Ak má toto vreteno rozstup 2 mm na otáčku, bude matici trvať 2 200 impulzov, kým sa matica posunie o 2 mm.

V skutočnosti softvérové ovládače často používajú dôvod na určenie tohto pomeru, „počtu impulzov na milimeter“alebo „krokov / mm“.

Krok 17: Marlin

Marlin
Marlin

U Marlina napríklad v sekcii @sekčný pohyb vidíme:

/ **

* Predvolené kroky osi na jednotku (kroky / mm)

* Prepísať pomocou M92

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

* /

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

V tomto prípade môžeme dospieť k záveru, že osi X a Y majú na pohyb 1 mm presnosť 80 impulzov, zatiaľ čo Z potrebuje 3200 impulzov a extrudér E0 potrebuje 100.

Krok 18: GRBL

GRBL
GRBL

Ďalej vidíme konfiguračné príkazy GRBL. Príkazom 100 dolárov môžeme upraviť počet impulzov potrebných na to, aby na osi X došlo k posunu milimetra.

V nižšie uvedenom príklade vidíme, že aktuálna hodnota je 250 impulzov na mm.

Osy Y a Z je možné nastaviť na 101 dolárov a 102 dolárov.

Odporúča: