Obsah:

Arduino Uno s vřetenovým a roztečovým motorem: 19 kroků
Arduino Uno s vřetenovým a roztečovým motorem: 19 kroků

Video: Arduino Uno s vřetenovým a roztečovým motorem: 19 kroků

Video: Arduino Uno s vřetenovým a roztečovým motorem: 19 kroků
Video: 7 ПОЛЕЗНЫХ устройств на АРДУИНО, которые можно собрать за 15 минут. 2024, Červenec
Anonim
Image
Image
Použité zdroje
Použité zdroje

Dnes budeme hovořit o velmi důležitém předmětu v mechanice a mechatronice: prvcích strojů. V tomto článku se budeme konkrétně zabývat vřeteny představujícími některé zajímavé funkce a aplikace. Přesto předvedeme některé způsoby výpočtu pohybu způsobeného vřetenem a představíme testovací sestavu.

Sestavu jsem tedy provedl níže, což odhaluje postup vřetena 2 mm a dalšího 8 mm. Tato vřetena TR8, která používám, se běžně používají v malých směrovačích a 3D tiskárnách, zejména na ose Z. Pamatujete -li, že zvládnutím některých konceptů, na kterých zde budeme pracovat, budete moci navrhnout jakýkoli typ stroje.

Krok 1: Použité zdroje

  • Trapézové vřeteno o průměru 8 mm a rozteči 2 mm
  • Trapézové vřeteno o průměru 8 mm a rozteči 8 mm
  • Kaštan s přírubovým vřetenem 8x2
  • Kaštan s přírubovým vřetenem 8x8
  • Ložiska pro vřetena o průměru 8 mm
  • Lineární válcové vedení o průměru 10 mm
  • Válečková ložiska pro vedení 10 mm
  • Konzoly pro 10mm válcová vedení
  • Motory NEMA 17
  • Hřídelové spojky
  • Arduino Uno
  • Ovladač DRV8825
  • Maticová klávesnice 4x4
  • Displej Nokia 5110
  • Různé plastové díly
  • Šrouby a matice
  • Dřevěná základna
  • Externí napájení 12V

Krok 2: O vřetenech - co to je?

O vřetenech - co jsou zač?
O vřetenech - co jsou zač?

Vřetena jsou prvky strojů, jako jsou šrouby. To znamená, že jsou to přímé tyče tvořené závity souvislých kroků. Používají se v mechanismech, které vyžadují lineární pohyb a polohování. Mohou vyvinout vysoké tahové a tlakové síly a přenášet točivý moment. Umožňují pohyb s automatickým zamykáním. Mohou být konstruovány z různých materiálů, což je nejběžnější hliník a ocel.

Vzhledem k tomu, že čínské společnosti vyrábějí lichoběžníková vřetena, navrhuji, abyste místo známého maticového šroubu získali tento typ výrobku. Je to dáno atraktivnější cenou a tahem, který považuji za ohavný.

Na fotografii jsem vložil nejlepší vřeteno, které má, podle mého názoru, to je recirkulační kuličkové vřeteno. Obvykle je vyroben z velmi tvrdé oceli a koule se kolem něj točí uvnitř kaštanu. Kromě skvělé přesnosti zdůrazňuji také trvanlivost, protože tento typ vřetena dokáže reprodukovat miliardy pohybů bez poškození mechanismu. Levnější možností, kterou zde používáme, je lichoběžníkové vřeteno.

Krok 3: O vřetenech - jednoduchá a kuličková vlákna

O vřetenech - jednoduchá a kuličková vlákna
O vřetenech - jednoduchá a kuličková vlákna

Kuličková vřetena, na fotografii vlevo, mají půlkruhové kanály, kde se koule valí. Jsou relativně dražší a mají nízké tření ve srovnání s jednošnekovými vřeteny, což vede k mnohem vyššímu výtěžku (valivé tření).

Jednovláknová vřetena na pravé straně obrazu mají obvykle lichoběžníkové profily, protože tato geometrie je vhodnější pro aplikaci sil v axiálním směru a plynulý přenos pohybu. Jsou relativně levné a ve srovnání s recirkulačními kuličkovými vřeteny mají vysoké tření, což vede k nízkému výtěžku, tj. Třecímu skluzu.

Krok 4: O vřetenech - aplikace

O vřetenech - aplikace
O vřetenech - aplikace

Vřetena lze použít na jakýkoli mechanismus, kde je vyžadován lineární pohyb. Jsou široce používány v průmyslu ve strojích a procesech.

Některé aplikace zahrnují:

  • Nákladní výtahy
  • Lisy
  • Jahody a soustruhy
  • CNC zařízení
  • Balicí stroje
  • 3D tiskárny
  • Laserové řezací a řezací zařízení
  • Průmyslové procesy
  • Polohovací a lineární pohybové systémy

Krok 5: O vřetenech - parametry

O vřetenech - parametry
O vřetenech - parametry

Při návrhu mechanismu je třeba vzít v úvahu několik charakteristik vřetena. Kromě jeho průměru a stoupání je nutné rozpoznat jeho pevnost v tlaku, moment setrvačnosti (odpor vůči změně stavu otáčení), konstrukční materiál, rychlost otáčení, kterému bude vystaven, směr působení (horizontální nebo svisle), mj. aplikované zatížení.

Na základě již vytvořených mechanismů však můžeme několik těchto parametrů intuitivně nastavit.

Poznejme nějaké společné dobro. Začněme KROKEM.

Krok 6: O vřetenech - krok (výtlak a rychlost)

O vřetenech - krok (výtlak a rychlost)
O vřetenech - krok (výtlak a rychlost)

Určuje délku uraženou maticí při každé otáčce. To je obvykle v mm / otáčku.

Vřeteno 2 mm na otáčku způsobí posunutí 2 mm při každé otáčce, kterou vřeteno provede. Ovlivní lineární rychlost matice, protože s nárůstem rychlosti otáčení se zvýší počet otáček za jednotku času a následně také ujetá vzdálenost.

Pokud se točení 2 mm za otáčku otáčí rychlostí 60 ot / min (jedna otáčka za sekundu), matice se bude pohybovat rychlostí 2 mm za sekundu.

Krok 7: Sestavení

Shromáždění
Shromáždění
Shromáždění
Shromáždění

V naší sestavě mám dva motory a naši klávesnici s displejem, která vypadala jako kalkulačka, protože jsem jim vyrobil kryt ve 3D tiskárně. Na displeji Nokia máme následující možnosti:

F1: Půlměsíc - Fuso přechází z aktuální polohy do polohy, kterou určuji

F2: Descending - Turn

F3: Rychlost - Mohu změnit šířku impulsu

F4: ESC

Krok 8: Montáž - materiály

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

A - 10 mm lineární vedení

B - Trapézová vřetena stupňů 2 a 8 mm

C - Vrtná základna

D - Ložiska pro vřetena

E - Držáky vodítka

F - Kaštany

G - Ložiska

H - Spojky

I - Motory

J - Různé plastové díly (kurzory, držáky motoru, klíny, podpora klávesnice a displej

Krok 9: Montáž - krok 01

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

Po vyvrtání základny (C) sestavíme dva motory (I). K jejich upevnění používáme závorky vyrobené v 3D tiskárně (J). V tomto kroku polohování neutahujte žádné šrouby. To umožní nezbytná nastavení v kroku zarovnání.

Krok 10: Montáž - krok 02

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

Stále sledujte vrtání základny (C) a umístěte vodicí lišty (E) a ložiska (D). Detail pro plastovou vložku (J) použitou k nastavení výšek ložisek.

Krok 11: Montáž - krok 03

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

Vytvoříme kurzor pomocí tištěné části pro připojení ložiska (G) k matici (F). Použili jsme dva kurzory, jeden vpravo, druhý vlevo. Jeho funkcí je indikovat polohu na stupnici, kdykoli chceme určit posun způsobený vřetenem.

Krok 12: Montáž - krok 04

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

Vložte vedení (A) a vřeteno (B) do příslušných ložisek (D) a podpěr (E), naproti motoru, poté vložte vedení a vřeteno do ložiska (G) a kaštanu (F) a na špičkou vřetena vložíme také spojku (H). Vezmeme je oba, dokud nedosáhnou svých konečných bodů (opačná podpora a motor).

Lehce utáhněte šrouby, aby bylo možné pozdější nastavení. Opakujte postup pomocí zbývajícího vodítka a vřetena. Když jsou všechny součásti umístěny, provedeme zarovnání dílů a dokončíme fázi mechanické montáže.

Krok 13: Montáž - elektronika

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

Pomocí potištěného plastového držáku jsme zajistili displej Nokia 5110 a maticovou klávesnici 4x4. Ve spodním prostoru stojanu bude sídlit Arduino Uno, ovladač DRV8825.

Pomocí dostupného vrtání v základně upevníme sestavu.

Krok 14: Elektrické schéma

Elektrické schéma
Elektrické schéma

Schéma zapojení je jednoduché. Máme DRV8825 a stejná dvě 17 zrcadla, to znamená, že stejný krok, který posíláme jednomu, jde do druhého. Co se mění je, že v jednom z motorů mám 8mm vřeteno a v druhém 2mm vřeteno. Je tedy zřejmé, že první s 8mm vřetenem jede rychleji. Na obrázku je stále displej a klávesnice 4x4, která musí být maticová.

Krok 15: Zdrojový kód

Zahrnutí knihoven a tvorba objektů

Máme zde Lib, který jsem udělal, což je StepDriver.h. Je připraven pro ovladače 8825, 4988 a také TB6600. V tomto kroku vytvořím objekt DRV8825, d1.

// Zobrazení odpovědí na biblioteca a další tiskové zprávy #zahrnutí // Zobrazení citace biblioteca pelos #include // Biblioteca responzel pela comunicacao do display #include // Configuracao de pinos do Display // pin 6 - Serial clock out (SCLK) // pin 5 - výstup sériových dat (DIN) // pin 4 - výběr dat/příkazů (D/C) // pin 3 - výběr čipu LCD (CS/CE) // pin 2 - reset LCD (RST) Displej Adafruit_PCD8544 = Adafruit_PCD8544 (6, 5, 4, 3, 2); // Biblioteca de motor de passo #include // Instancia o driver DRV8825 DRV8825 d1;

Konstanty a globální proměnné

V této části kódu zpracovávám matici, kterou jsem učil v jiné video lekci (KLÁVESNICE ODKAZU). Přesto mluvím o objektu Klávesnice, kromě vzdálenosti a rychlosti.

konstantní 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}; // pinos que indicam as colunas do teclado // instancia de Keypad, responseável por capturar and tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); // variáveis resposnsáveis por armazenar o valor digitado char customKey; dlouhá vzdálenost bez znaménka = 0; nepodepsaná dlouhá velocidáda = 2000;

Funkce čtení z klávesnice

V tomto kroku máme kód odkazující na displej, který funguje s rostoucím a klesajícím tiskem.

// Funcao responsavel 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 (BÍLÁ); display.print („VALOR“); display.setTextColor (ČERNÁ); display.fillRect (0, 24, 21, 11, 2); display.setCursor (2, 26); display.setTextColor (BÍLÁ); display.print („CLR“); display.setTextColor (ČERNÁ); display.setCursor (23, 26); display.print („LIMPAR“); display.fillRect (0, 36, 21, 11, 2); display.setCursor (5, 38); display.setTextColor (BÍLÁ); display.print („F4“); display.setTextColor (ČERNÁ); display.setCursor (23, 38); display.print („VOLTAR“); display.setCursor (2, 14); display.display (); String valor = ""; char tecla = false;

opakování čekání na stisknutí klávesy

Zde vysvětlujeme programování smyčky, to znamená, kde zadáváte hodnoty.

// Smyčka infinito enquanto nao chamar o return while (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': případ '7': případ '8': případ '9': případ '0': valor += tecla; display.print (tecla); display.display (); přestávka; // Se tecla 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 (); přestávka; // Se tecla ENT foi pressionada case 'e': // Retorna o valor return valor.toInt (); přestávka; // Se tecla F4 (ESC) foi pressionada case 'D': return -1; výchozí: break; }} // Limpa o char tecla tecla = false; }}

Funkce motorového pohonu

V tomto kroku se pracuje na funkci „tah“. Zjistím počet impulsů a směr a pak udělám „pro“.

// Odpověď Funcao na pohyb o motor -------------------------------------- neplatný přesun (bez znaménka long pulsos, bool direcao) {for (unsigned long i = 0; i <pulsos; i ++) {d1.motorMove (direcao); }}

založit ()

Nyní přesunu displej a konfiguraci ovladače a dokonce jsem vložil připnutí do zdrojového kódu, aby to bylo jednodušší. Inicializuji určité hodnoty a zabývám se metodami, které generují nastavení.

neplatné nastavení () {// Configuracao do display ---------------------------------------- -------- display.begin (); display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (ČERNÁ); // Konfigurace ovladače DRV8825 ----------------------------------------- // pin GND - Enable (ENA) // pin 13 - M0 // pin 12 - M1 // pin 11 - M2 // pin 10 - Reset (RST) // pin 9 - Sleep (SLP) // pin 8 - Step (STP) // pin 7 - Direction (DIR) d1.pinConfig (99, 13, 12, 11, 10, 9, 8, 7); d1.spánek (NÍZKÝ); d1.reset (); d1.stepPerMm (100); d1.stepPerRound (200); d1.stepConfig (1); d1.motionConfig (50, velocidáda, 5000); }

smyčka () - 1. část - Nabídka kreslení

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

loop () - Část 2 - Nabídka kreslení

display.fillRect (0, 36, 15, 11, 2); display.setCursor (2, 38); display.setTextColor (BÍLÁ); display.print („F4“); display.setTextColor (ČERNÁ); display.setCursor (17, 38); display.print („ESC“); display.display (); bool esc = false;

loop () - Část 3 - Běh

// 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 {// Escreve a tela "Movendo" no display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (BÍLÁ); display.print („MOVENDO“); display.setTextColor (ČERNÁ); display.setCursor (2, 14); display.print (vzdálenost); display.print („Passos“); display.display ();

loop () - Část 4 - Běh

// Move or motor mover (distancia, LOW); // Volta ao menu esc = true; } přestávka; // Se tecla F2 foi pressionada case '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 (BÍLÁ); display.print („MOVENDO“); display.setTextColor (ČERNÁ); display.setCursor (2, 14); display.print (vzdálenost); display.print („Passos“); display.display ();

loop () - Část 5 - Běh

// Move or motor mover (distancia, HIGH); // Volta ao menu esc = true; } přestávka; // Se tecla F3 foi pressionada case '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 (BÍLÁ); display.print („VELOCIDADE“); display.setTextColor (ČERNÁ); display.setCursor (2, 14); display.print (velocidáda); display.print (char (229)); display.print ("s");

loop () - Část 6 - Běh

display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor (BÍLÁ); display.println („OK!“); display.setTextColor (ČERNÁ); display.display (); // Configura nova velocidade ao motor d1.motionConfig (50, velocidade, 5000); zpoždění (2000); // Volta ao menu esc = true; } přestávka; // Se tecla F4 (ESC) for case pressionada case 'D': // Se tecla CLR foi pressionada case 'c': // Se tecla ENT foi pressionada case 'e': // Volta ao menu esc = true; výchozí: break; }} // Limpa o char customKey customKey = false; }}

Krok 16: O vřetenech - konfigurace stroje

O vřetenech - konfigurace strojů
O vřetenech - konfigurace strojů

U CNC strojů, jako jsou například 3D tiskárny a směrovače, potřebuje program zodpovědný za řízení polohování vědět, jak k pohybům dojde v závislosti na počtu impulzů daných krokovému motoru.

Pokud ovladač krokového motoru umožňuje použití mikrokroků, musí být tato konfigurace vzata v úvahu při výpočtu vytvořeného výtlaku.

Pokud je například 200krokový motor na otáčku připojen k ovladači nastavenému na 1/16, bude na jednu otáčku vřetena zapotřebí 16 x 200 impulzů, tj. 3200 impulzů na každou otáčku. Pokud má toto vřeteno stoupání 2 mm na otáčku, bude trvat 3200 impulsů v ovladači, aby se matice posunula o 2 mm.

Softwarové ovladače ve skutečnosti často používají důvod pro specifikaci tohoto poměru, „počet pulzů na milimetr“nebo „kroky / mm“.

Krok 17: Marlin

Marlin
Marlin

V Marlinovi například vidíme v sekci @section motion:

/ **

* Výchozí kroky osy na jednotku (kroky / mm)

* Přepsat s M92

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

* /

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

V tomto případě můžeme dojít k závěru, že osy X a Y mají přesnost 80 pulsů k pohybu o 1 mm, zatímco Z potřebuje 3200 pulzů a extruder E0 potřebuje 100.

Krok 18: GRBL

GRBL
GRBL

Níže vidíme konfigurační příkazy GRBL. Pomocí příkazu $ 100 můžeme upravit počet impulsů potřebných k tomu, aby na ose X došlo k odsazení o jeden milimetr.

V níže uvedeném příkladu vidíme, že aktuální hodnota je 250 pulzů na mm.

Osy Y a Z lze nastavit respektive 101 $ a 102 $.

Doporučuje: