Obsah:
- Krok 1: Použité zdroje
- Krok 2: O vretenách - čo sú to?
- Krok 3: O vretenách - jednoduché a guľkové nite
- Krok 4: O vretenách - aplikácie
- Krok 5: O vretenách - parametre
- Krok 6: O vretenách - krok (výtlak a rýchlosť)
- Krok 7: Zostavenie
- Krok 8: Montáž - materiály
- Krok 9: Montáž - krok 01
- Krok 10: Montáž - krok 02
- Krok 11: Montáž - krok 03
- Krok 12: Montáž - krok 04
- Krok 13: Montáž - elektronika
- Krok 14: Elektrická schéma
- Krok 15: Zdrojový kód
- Krok 16: O vretenách - konfigurácie stroja
- Krok 17: Marlin
- Krok 18: GRBL
- Krok 19: Pozrite sa na ďalšie moje práce:
Video: Arduino Uno s vretenovým a rozstupovým motorom: 19 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
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?
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
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
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
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ť)
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
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
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
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
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
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
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
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
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
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
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
Ď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:
Ovládajte výkonný elektrický skateboardový elektrobicykel 350 W jednosmerným motorom pomocou Arduino a BTS7960b: 9 krokov
Ovládajte výkonný elektrický skateboard E-bike 350 W jednosmerným motorom pomocou Arduino a BTS7960b: V tomto tutoriáli sa naučíme ovládať DC motor pomocou ovládača Arduino a Dc bts7960b. Motor môže byť 350 W alebo len malý jednosmerný motor arduino Toy pokiaľ jeho výkon neprekročí maximálny prúd ovládača BTS7960b. Pozrite si video
Krokový motor riadený krokovým motorom bez mikrokontroléra!: 6 krokov
Krokový motor riadený krokovým motorom bez mikrokontroléra !: V tomto rýchlom návode vyrobíme jednoduchý ovládač krokového motora pomocou krokového motora. Tento projekt nevyžaduje žiadne zložité obvody ani mikrokontrolér. Takže bez ďalších okolkov začnime
Trikoptéra s predným výklopným motorom .: 5 krokov (s obrázkami)
Trikoptéra s predným naklápacím motorom: Takže toto je malý experiment, ktorý dúfajme povedie k hybridnej trikoptére/gyrokoptére? Takže na tejto trikoptére nie je nič nové, je v zásade rovnaká ako moja normálna trikoptéra, ako je uvedené v tomto návode. Bola to však dĺžka
Krokový motor riadený krokovým motorom bez mikrokontroléra (V2): 9 krokov (s obrázkami)
Krokový motor riadený krokovým motorom bez mikrokontroléra (V2): V jednom z mojich predchádzajúcich návodov som vám ukázal, ako ovládať krokový motor pomocou krokového motora bez mikrokontroléra. Bol to rýchly a zábavný projekt, ale priniesol dva problémy, ktoré budú v tomto návode vyriešené. Takže vtip
Lokomotíva riadená krokovým motorom - Krokový motor ako rotačný kodér: 11 krokov (s obrázkami)
Lokomotíva riadená krokovým motorom | Krokový motor ako rotačný kodér: V jednom z predchádzajúcich návodov sme sa naučili používať krokový motor ako rotačný snímač. V tomto projekte teraz použijeme otočný rotačný snímač krokového motora na ovládanie modelovej lokomotívy pomocou mikrokontroléra Arduino. Takže bez fu