Kazalo:
- 1. korak: Uporabljeni viri
- 2. korak: O vretenih - kaj so to?
- 3. korak: O vretenih - enojne in kroglične niti
- 4. korak: O vretenih - aplikacije
- 5. korak: O vretenih - parametri
- Korak 6: O vretenih - korak (premik in hitrost)
- 7. korak: Montaža
- 8. korak: Montaža - Materiali
- 9. korak: Montaža - 1. korak
- 10. korak: Montaža - 2. korak
- Korak 11: Montaža - Korak 03
- 12. korak: Montaža - 4. korak
- 13. korak: Montaža - elektronika
- 14. korak: električna shema
- Korak 15: Izvorna koda
- Korak 16: O vretenih - konfiguracije stroja
- 17. korak: Marlin
- 18. korak: GRBL
- 19. korak: Oglejte si več mojega dela:
Video: Arduino Uno z vretenskim in nagibnim motorjem: 19 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Danes se bomo pogovarjali o zelo pomembnem predmetu v mehaniki in mehatroniki: elementih strojev. V tem članku bomo posebej obravnavali vretena z nekaj zanimivimi funkcijami in aplikacijami. Kljub temu bomo pokazali nekaj načinov izračuna gibanja, ki ga povzroči vreteno, in predstavili preskusni sklop.
Zato sem sestavil spodaj, ki razkriva napredovanje vretena 2 mm in drugega 8 mm. Ta vretena TR8, ki jih uporabljam, se običajno uporabljajo v majhnih usmerjevalnikih in 3D tiskalnikih, zlasti na osi Z. Ne pozabite, da boste z obvladovanjem nekaterih konceptov, na katerih bomo tukaj delali, lahko oblikovali katero koli vrsto stroja.
1. korak: Uporabljeni viri
- Trapezno vreteno s premerom 8 mm in korakom 2 mm
- Trapezno vreteno premera 8 mm in naklona 8 mm
- 8x2 vretenasto prirobljen kostanj
- 8x8 vretenasto prirobljen kostanj
- Ležaji za vretena s premerom 8 mm
- Linearno valjasto vodilo s premerom 10 mm
- Cilindrični valjčni ležaji za 10 mm vodila
- Nosilci za cilindrična vodila 10 mm
- Motorji NEMA 17
- Spojke gredi
- Arduino Uno
- Gonilnik DRV8825
- Matrična tipkovnica 4x4
- Zaslon Nokia 5110
- Razni deli iz plastike
- Vijaki in matice
- Lesena podlaga
- Zunanji 12V napajalnik
2. korak: O vretenih - kaj so to?
Vretena so elementi strojev, na primer vijaki. To pomeni, da so ravne palice, ki jih tvorijo niti neprekinjenih korakov. Uporabljajo se v mehanizmih, ki zahtevajo linearno gibanje in pozicioniranje. Lahko izvajajo velike natezne in tlačne sile ter prenašajo navor. Omogočajo premikanje z avtomatskim zaklepanjem. Lahko so izdelani iz različnih materialov, najpogosteje iz aluminija in jekla.
Ker kitajska podjetja izdelujejo trapezna vretena, predlagam, da namesto znanega vijaka z matico dobite to vrsto izdelka. To je posledica privlačnejše cene in vlečenja, ki se mi zdi grozno.
Na fotografijo sem dal najboljše vreteno, ki je po mojem mnenju krožno krožno vreteno. Običajno je iz zelo trdega jekla, kroglice pa se vrtijo okoli njega, znotraj kostanja. Poleg odlične natančnosti izpostavljam tudi vzdržljivost, saj lahko tovrstno vreteno reproducira milijarde gibov, ne da bi pri tem poškodovalo mehanizem. Cenejša možnost, ki jo uporabljamo tukaj, je trapezno vreteno.
3. korak: O vretenih - enojne in kroglične niti
Kroglična vretena, na fotografiji levo, imajo polkrožne kanale, kjer se kroglice valjajo. So relativno dražji in imajo nizko trenje v primerjavi z enojnimi vijaki, kar vodi do veliko večjega izkoristka (kotalno trenje).
Vretena z enim navojem na desni strani slike imajo običajno trapezne profile, saj je ta geometrija primernejša za uporabo sil v aksialni smeri in nemoten prenos gibanja. So relativno poceni in imajo veliko trenje v primerjavi s krogličnimi vreteni, ki krožijo, kar vodi do nizkega izkoristka, tj. Trenja zdrsa.
4. korak: O vretenih - aplikacije
Vretena se lahko uporabijo za kateri koli mehanizem, kjer je potrebno linearno gibanje. V industriji se pogosto uporabljajo v strojih in procesih.
Nekatere aplikacije vključujejo:
- Tovorna dvigala
- Stiskalnice
- Jagode in stružnice
- CNC oprema
- Stroji za zavijanje
- 3D tiskalniki
- Oprema za lasersko rezanje in rezanje
- Industrijski procesi
- Sistemi za pozicioniranje in linearno gibanje
5. korak: O vretenih - parametri
Obstaja več značilnosti vretena, ki jih je treba upoštevati pri načrtovanju mehanizma. Poleg premera in nagiba je treba upoštevati njegovo tlačno trdnost, vztrajnostni moment (odpornost na spremembe v rotacijskem stanju), konstrukcijski material, hitrost vrtenja, ki mu bo izpostavljen, smer delovanja (vodoravno ali navpično), uporabljeno obremenitev, med drugim.
Toda na podlagi že zgrajenih mehanizmov lahko intuitiramo več teh parametrov.
Prepoznajmo nekaj skupnega dobrega. Začnimo s KORAK.
Korak 6: O vretenih - korak (premik in hitrost)
Določa dolžino, ki jo matica prevozi pri vsakem obratu. Običajno je to v mm / obratu.
2 mm vreteno na vrtljaj povzroči pomik 2 mm pri vsakem obratu vretena. To bo vplivalo na linearno hitrost matice, saj se bo s povečanjem hitrosti vrtenja povečalo število vrtljajev na enoto časa in posledično tudi prevožena razdalja.
Če se vrtenje 2 mm na vrtljaj vrti pri 60 vrtljajih na minuto (en vrtljaj na sekundo), se bo matica premikala s hitrostjo 2 mm na sekundo.
7. korak: Montaža
V našem sklopu imam dva motorja in našo tipkovnico z zaslonom, ki je bila videti kot kalkulator, ker sem jim v 3D tiskalniku naredil ovitek. Na zaslonu Nokia imamo naslednje možnosti:
F1: Polmesec - Fuso gre iz trenutnega položaja v položaj, ki ga določim
F2: padajoče - zavijte
F3: Hitrost - Ali lahko spremenim širino impulza
F4: ESC
8. korak: Montaža - Materiali
Linearna vodila A - 10 mm
B - Trapezna vretena stopnic 2 in 8 mm
C - Vrtalna baza
D - Ležaji za vretena
E - Držala za vodila
F - kostanj
G - Ležaji
H - Spojke
I - Motorji
J - Različni plastični deli (kazalci, nosilci motorja, klini, podpora za tipkovnico in zaslon
9. korak: Montaža - 1. korak
Po vrtanju podlage (C) sestavimo dva motorja (I). Za njihovo pritrditev uporabljamo nosilce, izdelane v 3D tiskalniku (J). V tem koraku pozicioniranja ne privijte nobenega vijaka. To bo omogočilo potrebne prilagoditve v koraku poravnave.
10. korak: Montaža - 2. korak
Še vedno po vrtanju podlage (C) postavite vodila (E) in ležaje (D). Podrobnosti za plastično podlogo (J) za nastavitev višine ležajev.
Korak 11: Montaža - Korak 03
Ustvarjamo kazalec z natisnjenim delom za povezavo ležaja (G) z matico (F). Uporabili smo dve kazalki, eno desno drugo levo. Njegova funkcija je prikazati položaj na lestvici, kadar koli želimo določiti premik, ki ga povzroči vreteno.
12. korak: Montaža - 4. korak
Vodilo (A) in vreteno (B) vstavite v ustrezen ležaj (D) in nosilec (E), nasproti motorja, nato pa vstavite vodilo in vreteno v ležaj (G) in kostanj (F) in na na vrh vretena vstavimo tudi spojko (H). Oba jih vzamemo, dokler ne dosežeta svojih končnih točk (nasprotna podpora in motor).
Rahlo privijte vijake, da omogočite poznejšo nastavitev. Postopek ponovite s preostalim vodilom in vretenom. Z vsemi postavljenimi komponentami izvedemo poravnavo delov in zaključimo fazo mehanskega sestavljanja.
13. korak: Montaža - elektronika
S tiskanim plastičnim držalom smo zavarovali zaslon Nokia 5110 in matrično tipkovnico 4x4. V spodnjem prostoru stojala bo Arduino Uno, voznik DRV8825.
S pomočjo razpoložljivega vrtanja v podnožje pritrdimo sklop.
14. korak: električna shema
Shema ožičenja je preprosta. Imamo DRV8825 in enaka dvanajst ogledal, torej enak korak, ki ga pošljemo enemu, gre do drugega. Kar se spremeni je, da imam v enem od motorjev 8 mm vreteno, v drugem pa 2 mm vreteno. Očitno je torej, da prvi, z 8 mm vretenom, gre hitreje. Na diagramu sta še zaslon in tipkovnica 4x4, ki mora biti matrična.
Korak 15: Izvorna koda
Vključevanje knjižnic in ustvarjanje predmetov
Tukaj imamo Lib, ki sem ga naredil, to je StepDriver.h. Pripravljen je za voznike 8825, 4988 in tudi za TB6600. V tem koraku ustvarim predmet DRV8825, d1.
// Biblioteca responsável por capturar a tecla que foi pressionada no teclado #include // Biblioteca responsável pelos graficos do display #include // Biblioteca responsável pela comunicacao do display #include // Configuracao de pinos do Display // pin 6 - Serijska ura je izklopljena (SCLK) // pin 5 - Serijski izhod podatkov (DIN) // pin 4 - Izbira podatkov/ukaza (D/C) // pin 3 - Izbira čipa LCD (CS/CE) // pin 2 - ponastavitev LCD (RST) Adafruit_PCD8544 zaslon = Adafruit_PCD8544 (6, 5, 4, 3, 2); // Biblioteca de motor de passo #include // Instancia o driver DRV8825 DRV8825 d1;
Konstante in globalne spremenljivke
V tem delu kode obravnavam matriko, ki sem jo naučil v drugi video lekciji (LINK KEYBOARD). Kljub temu govorim o predmetu tipkovnice, poleg razdalje in hitrosti.
const bajt LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // definiraj 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 kot linhas do teclado byte PINOS_COLUNA [COLUNAS] = {0, 1, A0, A1}; // pinos que indicam as colunas do teclado // instancia de Keypad, response to capturar a tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); // variáveis resposnsáveis por armazenar o valor digitado char customKey; nepodpisana dolga distanca = 0; nepodpisana dolga velocidada = 2000;
Funkcija branja tipkovnice
V tem koraku imamo kodo, ki se nanaša na zaslon, ki deluje pri naraščajočem in padajočem tiskanju.
// Funcao responsavel por ler o valor do usuario pelo teclado -------------------------------------- --- brez podpisa dolg lerValor () {// Povzetek o podmeniju que coleta os valores brez prikaza na zaslonu.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (27, 2); display.setTextColor (BELO); display.print ("VALOR"); display.setTextColor (ČRNO); display.fillRect (0, 24, 21, 11, 2); display.setCursor (2, 26); display.setTextColor (BELO); display.print ("CLR"); display.setTextColor (ČRNO); display.setCursor (23, 26); display.print ("LIMPAR"); display.fillRect (0, 36, 21, 11, 2); display.setCursor (5, 38); display.setTextColor (BELO); display.print ("F4"); display.setTextColor (ČRNO); display.setCursor (23, 38); display.print ("VOLTAR"); display.setCursor (2, 14); display.display (); Niz valor = ""; char tecla = false;
zanka čaka na pritisk tipke
Tu razložimo programiranje z zanko, torej tam, kjer vnesete vrednosti.
// Loop infinito enquanto nao chamar o return while (1) {tecla = customKeypad.getKey (); if (tecla) {switch (tecla) {// Se teclas de 0 a 9 forem pressionadas primer '1': primer '2': primer '3': primer '4': primer '5': primer '6': primer '7': primer '8': primer '9': primer '0': valor += tecla; display.print (tecla); display.display (); prekiniti; // 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 (); prekiniti; // Se tecla ENT foi pressionada case 'e': // Retorna o valor return valor.toInt (); prekiniti; // Se tecla F4 (ESC) for pressionada case 'D': return -1; privzeto: break; }} // Limpa o char tecla tecla = false; }}
Funkcija motornega pogona
V tem koraku se nadaljuje funkcija "premik". Dobim število impulzov in smer, nato pa naredim "za".
// Funcao responsavel por mover o motor -------------------------------------- void mover (unsigned) dolg pulsos, bool direcao) {for (unsigned long i = 0; i <pulsos; i ++) {d1.motorMove (direcao); }}
nastaviti ()
Zdaj premaknem zaslon in konfiguracijo gonilnika in celo vstavim pripenjanje v izvorno kodo, da olajšam. Inicializiram določene vrednosti in obravnavam metode, ki ustvarjajo nastavitve.
void setup () {// Configuracao do display ---------------------------------------- -------- display.begin (); display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (ČRNO); // Konfiguracija gonilnika DRV8825 ----------------------------------------- // pin GND - Omogoči (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.spi (NIZKO); d1.reset (); d1.korakPerMm (100); d1.stepPerRound (200); d1.stepConfig (1); d1.motionConfig (50, velocidade, 5000); }
loop () - 1. del - meni Risba
void loop () {// Escreve o Menu do Programa no display ----------------------------------- display.clearDisplay (); display.fillRect (0, 0, 15, 11, 2); display.setCursor (2, 2); display.setTextColor (BELO); display.print ("F1"); display.setTextColor (ČRNO); display.setCursor (17, 2); display.print ("CRESCENTE"); display.fillRect (0, 12, 15, 11, 2); display.setCursor (2, 14); display.setTextColor (BELO); display.print ("F2"); display.setTextColor (ČRNO); display.setCursor (17, 14); display.print ("DECRESCENTE"); display.fillRect (0, 24, 15, 11, 2); display.setCursor (2, 26); display.setTextColor (BELO); display.print ("F3"); display.setTextColor (ČRNO); display.setCursor (17, 26); display.print ("VELOCIDADE");
zanka () - 2. del - meni Risba
display.fillRect (0, 36, 15, 11, 2); display.setCursor (2, 38); display.setTextColor (BELO); display.print ("F4"); display.setTextColor (ČRNO); display.setCursor (17, 38); display.print ("ESC"); display.display (); bool esc = napačno;
zanka () - 3. del - Tek
// 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 {// Dvignite telo "Movendo" brez prikaza na zaslonu.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (BELO); display.print ("MOVENDO"); display.setTextColor (ČRNO); display.setCursor (2, 14); display.print (distancia); display.print ("Passos"); display.display ();
zanka () - 4. del - Tek
// Premakni ali premakni motor (distancia, LOW); // Volta ao meni esc = true; } prelom; // Se tecla F2 foi pressionada case 'B': distancia = lerValor (); // Se tecla ESC foi pressionada if (distancia == -1) {esc = true; } else {// Dvignite telo "Movendo" brez prikaza na zaslonu.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (BELO); display.print ("MOVENDO"); display.setTextColor (ČRNO); display.setCursor (2, 14); display.print (distancia); display.print ("Passos"); display.display ();
zanka () - 5. del - Tek
// Premakni ali premakni motor (distancia, HIGH); // Volta ao meni esc = true; } prelom; // Se tecla F3 foi pressionada case 'C': velocidade = lerValor (); če (velocidade == -1) {esc = res; } else {// Escreve a body "Velocidade" no display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (12, 2); display.setTextColor (BELO); display.print ("VELOCIDADE"); display.setTextColor (ČRNO); display.setCursor (2, 14); display.print (velocidade); display.print (char (229)); display.print ("s");
zanka () - 6. del - Tek
display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor (BELO); display.println ("V redu!"); display.setTextColor (ČRNO); display.display (); // Konfiguracija nove velocidade ao motorja d1.motionConfig (50, velocidade, 5000); zamuda (2000); // Volta ao meni esc = true; } prelom; // 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; privzeto: break; }} // Limpa o char customKey customKey = false; }}
Korak 16: O vretenih - konfiguracije stroja
Pri CNC strojih, na primer 3D -tiskalnikih in usmerjevalnikih, mora program, odgovoren za krmiljenje pozicioniranja, vedeti, kako se bodo premiki pojavili v odvisnosti od števila impulzov, podanih koračnemu motorju.
Če gonilnik koračnega motorja dovoljuje uporabo mikrokorakov, je treba to konfiguracijo upoštevati pri izračunu nastalega premika.
Na primer, če je 200-stopenjski motor na vrtljaj povezan z gonilnikom, nastavljenim na 1/16, bodo potrebni 16 x 200 impulzov za en sam obrat vretena, to je 3200 impulzov za vsak vrtljaj. Če ima to vreteno nagib 2 mm na vrtljaj, bo v gonilniku potrebnih 3200 impulzov, da se matica premakne za 2 mm.
Pravzaprav programski krmilniki pogosto uporabljajo razlog za določitev tega razmerja, "števila impulzov na milimeter" ali "korakov / mm".
17. korak: Marlin
V Marlinu na primer v razdelku @section motion vidimo:
/ **
* Privzeti koraki osi na enoto (koraki / mm)
* Preglasite z M92
* X, Y, Z, E0 [, E1 [, E2 [, E3 [, E4]
* /
#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 3200, 100}
V tem primeru lahko sklepamo, da imata osi X in Y natančnost 80 impulzov za premik 1 mm, medtem ko Z potrebuje 3200 impulzov, ekstruder E0 pa 100.
18. korak: GRBL
Spodaj vidimo konfiguracijske ukaze GRBL. Z ukazom 100 USD lahko prilagodimo število impulzov, ki so potrebni za eno milimetrski odmik na osi X.
V spodnjem primeru lahko vidimo, da je trenutna vrednost 250 impulzov na mm.
Osi Y in Z lahko nastavite za 101 in 102 USD.
Priporočena:
Pohodni robot z 1 servo motorjem: 13 korakov (s slikami)
Pohodni robot z enim servo motorjem: želel sem zgraditi tega hojnega robota, odkar sem ga videl na YouTubu. Po kratkem iskanju sem našel nekaj več informacij o njem in se odločil, da bom naredil svojega. Cilj, ki sem ga imel pri izdelavi te sprehajalke, je bil, da bi bil čim manjši
Koračni motor z koračnim motorjem brez mikrokrmilnika!: 6 korakov
Koračni motor z koračnim motorjem brez mikrokrmilnika!: V tem hitrem navodilu bomo naredili preprost krmilnik koračnega motorja s koračnim motorjem. Ta projekt ne zahteva zapletenih vezij ali mikrokrmilnika. Torej, brez odlašanja, začnimo
Trikopter s sprednjim nagibnim motorjem .: 5 korakov (s slikami)
Trikopter s sprednjim nagibnim motorjem. Torej je to majhen poskus, ki bo upam, da bo pripeljal do hibridnega trikopterja/žirokopterja? Torej pri tem trikopterju ni nič novega, v bistvu je enako kot moj običajni trikotnik, kot je prikazano v tem navodilu. Vendar je bila dolžina
Odvračilni ukrep proti vlomu 'Sam doma'/ Uporabite Attiny13 za vožnjo z motorjem s koračnimi motorji in servo motorjem: 5 korakov
Odvračilni ukrep proti vlomilcem „Sam doma“/ Uporabite Attiny13 za vožnjo s koračnim motorjem in servo motorjem: To je morda eden mojih najbolj čudnih projektov doslej :-) Toda tudi če vas ne zanima, da bi vlomilce zadržali stran, lahko ta projekt uporabite za vse, kar želite potrebujete pogon koračnega motorja ali servo motorja ali celo več enosmernih motorjev z Attiny13. Mo
Uporaba mostu H (293D) za vožnjo dveh motorjev z motorjem z motorjem Ans Arduino; pregled vezja: 9 korakov
Uporaba mostu H (293D) za pogon dveh motorjev z motorjem za hobi Ans Arduino; pregled vezja: most H 293D je integrirano vezje, ki lahko poganja 2 motorja. Prednost mostu H pred tranzistorjem ali krmilnimi vezji MOSFET je lahko vozite 2 motorja dvosmerno (naprej in nazaj) s kodo