Sadržaj:
- Korak 1: Korišteni resursi
- Korak 2: O vretenima - što su oni?
- Korak 3: O vretenima - jednostruki i kuglasti navoji
- Korak 4: O vretenima - aplikacije
- Korak 5: O vretenima - parametri
- Korak 6: O vretenima - Korak (pomak i brzina)
- Korak 7: Montaža
- Korak 8: Montaža - Materijali
- Korak 9: Montaža - Korak 01
- Korak 10: Montaža - Korak 02
- Korak 11: Montaža - Korak 03
- Korak 12: Montaža - Korak 04
- Korak 13: Montaža - elektronika
- Korak 14: Električna shema
- Korak 15: Izvorni kod
- Korak 16: O vretenu - konfiguracije stroja
- Korak 17: Marlin
- Korak 18: GRBL
- Korak 19: Pogledajte više mojih radova:
Video: Arduino Uno s motorom vretena i nagiba: 19 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Danas ćemo govoriti o vrlo važnoj temi u mehanici i mehatronici: elementima strojeva. U ovom ćemo se članku posebno osvrnuti na vretena s nekim zanimljivim značajkama i aplikacijama. Ipak, pokazat ćemo neke načine izračunavanja pomaka uzrokovanog vretenom i prikazati testni sklop.
Stoga sam napravio donji sklop koji otkriva napredovanje vretena od 2 mm i drugog od 8 mm. Ova TR8 vretena koja koristim obično se koriste u malim usmjerivačima i 3D pisačima, posebno na osi Z. Sjetite se da ćete svladavanjem nekih koncepata na kojima ćemo ovdje raditi, moći dizajnirati bilo koju vrstu stroja.
Korak 1: Korišteni resursi
- Trapezno vreteno promjera 8 mm i razmak 2 mm
- Trapezno vreteno promjera 8 mm i koraka 8 mm
- 8x2 vreteno prirubnički kesten
- 8x8 vreteno prirubnički kesten
- Ležajevi za vretena promjera 8 mm
- Linearna cilindrična vodilica promjera 10 mm
- Cilindrični valjkasti ležajevi za vodilice 10 mm
- Nosači za cilindrične vodilice 10 mm
- Motori NEMA 17
- Spojke vratila
- Arduino Uno
- Upravljački program DRV8825
- Matrična tipkovnica 4x4
- Zaslon Nokia 5110
- Razni dijelovi od plastike
- Vijci i matice
- Drvena podloga
- Vanjsko napajanje od 12V
Korak 2: O vretenima - što su oni?
Vretena su elementi strojeva, poput vijaka. To jest, to su ravne šipke formirane nitima kontinuiranih koraka. Koriste se u mehanizmima koji zahtijevaju linearno kretanje i pozicioniranje. Mogu djelovati velike vlačne i tlačne sile i prenositi okretni moment. Omogućuju kretanje s automatskim zaključavanjem. Mogu biti izrađene od različitih materijala, a najčešće su aluminij i čelik.
Budući da kineske tvrtke proizvode trapezna vretena, predlažem da nabavite ovu vrstu proizvoda umjesto dobro poznatog vijka s maticom. To je zbog privlačnije cijene i otpora koji smatram užasnim.
Na fotografiju sam stavio najbolje vreteno koje ima, po mom mišljenju, to je vreteno s recirkulacijom. Obično je izrađen od vrlo tvrdog čelika, a loptice se okreću oko njega, unutar kestena. Osim izvrsne preciznosti, ističem i izdržljivost jer ova vrsta vretena može reproducirati milijarde pokreta bez oštećenja mehanizma. Jeftinija opcija, koju ovdje koristimo, je trapezoidno vreteno.
Korak 3: O vretenima - jednostruki i kuglasti navoji
Vretena kugle, na fotografiji lijevo, imaju polukružne kanale gdje se kuglice kotrljaju. Relativno su skuplji i imaju nisko trenje u usporedbi s vretena s jednim vijkom, što dovodi do mnogo većeg prinosa (trenje kotrljanja).
Vretena s jednim navojem na desnoj strani slike obično imaju trapezne profile, budući da je ova geometrija prikladnija za primjenu sila u aksijalnom smjeru i glatki prijenos gibanja. Relativno su jeftini i imaju visoko trenje u usporedbi s recirkulacijskim kugličnim vretenima, što dovodi do niskog prinosa, odnosno trenja klizanja.
Korak 4: O vretenima - aplikacije
Vretena se mogu primijeniti na bilo koji mehanizam gdje je potrebno linearno kretanje. Široko se koriste u industriji u strojevima i procesima.
Neke aplikacije uključuju:
- Dizala tereta
- Preše
- Jagode i tokarilice
- CNC oprema
- Strojevi za pakiranje
- 3D pisači
- Oprema za rezanje laserom i rezanje
- Industrijski procesi
- Sustavi pozicioniranja i linearnog kretanja
Korak 5: O vretenima - parametri
Postoji nekoliko karakteristika vretena koje se moraju uzeti u obzir pri projektiranju mehanizma. Osim promjera i koraka, potrebno je prepoznati i njegovu tlačnu čvrstoću, moment inercije (otpor na promjenu rotacijskog stanja), konstruktivni materijal, brzinu rotacije kojoj će biti izložen, smjer rada (vodoravno ili okomito), primijenjeno opterećenje, između ostalog.
No, na temelju već izgrađenih mehanizama, možemo intuitirati nekoliko ovih parametara.
Prepoznajmo neko opće dobro. Počnimo s KORAK.
Korak 6: O vretenima - Korak (pomak i brzina)
Određuje duljinu prolaska matice pri svakom okretaju. To je obično u mm / okretu.
Vreteno od 2 mm po okretaju uzrokovat će pomak od 2 mm pri svakom okretu koje vreteno izvrši. To će utjecati na linearnu brzinu matice, jer će se s povećanjem brzine vrtnje povećati broj okretaja po jedinici vremena, a time i prijeđena udaljenost.
Ako se okretanje od 2 mm po okretu okreće pri 60 okretaja u minuti (jedan okretaj u sekundi), matica će se pomicati 2 mm u sekundi.
Korak 7: Montaža
U našoj montaži imam dva motora i našu tipkovnicu s zaslonom, koja je izgledala poput kalkulatora, jer sam im napravio omot u 3D pisaču. Na Nokia zaslonu imamo sljedeće mogućnosti:
F1: Polumjesec - Fuso prelazi sa trenutnog položaja na položaj koji ja odredim
F2: Silazno - Okreni
F3: Brzina - Mogu li promijeniti širinu impulsa
F4: ESC
Korak 8: Montaža - Materijali
Linearne vodilice A - 10 mm
B - Trapezoidna vretena koraka 2 i 8 mm
C - Baza za bušenje
D - Ležajevi za vretena
E - Držači vodiča
F - kesteni
G - Ležajevi
H - Spojke
I - Motori
J - Razni plastični dijelovi (pokazivači, nosači motora, klinovi, podrška za tipkovnicu i zaslon)
Korak 9: Montaža - Korak 01
Nakon bušenja baze (C), sastavljamo dva motora (I). Za njihovo pričvršćivanje koristimo zagrade izrađene u 3D pisaču (J). U ovom koraku pozicioniranja nemojte pritezati niti jedan vijak. To će omogućiti potrebne prilagodbe u koraku poravnanja.
Korak 10: Montaža - Korak 02
I dalje nakon bušenja podnožja (C), postavite vodilice (E) i ležajeve (D). Detalj za plastičnu podlošku (J) koja se koristi za podešavanje visine ležajeva.
Korak 11: Montaža - Korak 03
Kreiramo kursor pomoću ispisanog dijela za spajanje ležaja (G) s maticom (F). Koristili smo dva kursora, jedan desno drugi lijevo. Njegova je funkcija označiti položaj na ljestvici kad god želimo odrediti pomak uzrokovan vretenom.
Korak 12: Montaža - Korak 04
Umetnite vodilicu (A) i vreteno (B) u odgovarajući ležaj (D) i nosač (E), nasuprot motora, zatim umetnite vodilicu i vreteno u ležaj (G) i kesten (F), a vrh vretena također ubacujemo spojku (H). Oboje ih uzimamo dok ne dosegnu konačne točke (suprotna podrška i motor).
Lagano pritegnite vijke kako biste omogućili kasnije podešavanje. Ponovite postupak pomoću preostale vodilice i vretena. Sa svim postavljenim komponentama izvodimo poravnavanje dijelova, završavajući fazu mehaničkog sastavljanja.
Korak 13: Montaža - elektronika
Pomoću tiskanog plastičnog držača učvrstili smo zaslon Nokia 5110 i matričnu tipkovnicu 4x4. U donjem prostoru postolja smjestit će se Arduino Uno, vozač DRV8825.
Pomoću dostupnog bušenja u podnožju pričvršćujemo sklop.
Korak 14: Električna shema
Shema ožičenja je jednostavna. Imamo DRV8825 i ista dva 17 zrcala, odnosno isti korak koji šaljemo jednom ide do drugog. Ono što se mijenja je da u jednom od motora imam vreteno od 8 mm, a u drugom vreteno od 2 mm. Očigledno je dakle da prvi, s vretenom od 8 mm, ide brže. Na dijagramu su još uvijek zaslon i tipkovnica 4x4, koja mora biti matrična.
Korak 15: Izvorni kod
Uključivanje knjižnica i stvaranje objekata
Ovdje imamo Lib koji sam napravio, a to je StepDriver.h. Pripremljen je za vozače 8825, 4988, a također i za TB6600. U ovom koraku stvaram objekt 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 - Serijski sat out (SCLK) // pin 5 - Serijski izlaz (DIN) // pin 4 - Odabir podataka/naredbe (D/C) // pin 3 - Odabir LCD čipa (CS/CE) // pin 2 - Resetiranje LCD -a (RST) Adafruit_PCD8544 zaslon = Adafruit_PCD8544 (6, 5, 4, 3, 2); // Biblioteca de motor de passo #include // Instancia o driver DRV8825 DRV8825 d1;
Konstante i globalne varijable
U ovom dijelu koda obrađujem matricu koju sam naučio u drugoj video lekciji (LINK TASTATURA). Ipak, govorim o objektu Keypad, osim udaljenosti i brzine.
const bajt LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // definirati 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 kao linhas do teclado byte PINOS_COLUNA [COLUNAS] = {0, 1, A0, A1}; // pinos que indicam as colunas do teclado // instancia de Keypad, responsável por 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; nepotpisana duga distancija = 0; bez potpisa duga velocidada = 2000;
Funkcija čitanja tipkovnice
U ovom koraku imamo kôd koji se odnosi na zaslon, koji radi na povećanju i smanjenju ispisa.
// Funcao responsavel por ler o valor do usuario pelo teclado -------------------------------------- --- unsigned long lerValor () {// Escreve o podizborniku que coleta os valores bez prikaza display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (27, 2); display.setTextColor (BIJELO); display.print ("VALOR"); display.setTextColor (CRNO); display.fillRect (0, 24, 21, 11, 2); display.setCursor (2, 26); display.setTextColor (BIJELO); display.print ("CLR"); display.setTextColor (CRNO); display.setCursor (23, 26); display.print ("LIMPAR"); display.fillRect (0, 36, 21, 11, 2); display.setCursor (5, 38); display.setTextColor (BIJELO); display.print ("F4"); display.setTextColor (CRNO); display.setCursor (23, 38); display.print ("VOLTAR"); display.setCursor (2, 14); display.display (); String valor = ""; char tecla = lažno;
petlja čekajući pritisnutu tipku
Ovdje objašnjavamo programiranje petlje, odnosno mjesto gdje unosite vrijednosti.
// Petlja beskonačno 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': slučaj '7': slučaj '8': slučaj '9': slučaj '0': valor += tecla; prikaz.tisak (tecla); display.display (); pauza; // 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 (); pauza; // Se tecla ENT foi pressionada case 'e': // Retorna o valor return valor.toInt (); pauza; // Se tecla F4 (ESC) foi pressionada case 'D': return -1; zadano: break; }} // Limpa o char tecla tecla = false; }}
Funkcija pogona motora
U ovom koraku radi se na funkciji "premještanje". Dobijem broj impulsa i smjer, a zatim napravim "za".
// Funcao responsavel por mover o motor -------------------------------------- void mover (unsigned long pulsos, bool direcao) {for (unsigned long i = 0; i <pulsos; i ++) {d1.motorMove (direcao); }}
postaviti ()
Sada premještam zaslon i konfiguraciju upravljačkog programa, a čak sam stavio i pričvršćivanje unutar izvornog koda kako bih olakšao. Pokrećem određene vrijednosti i bavim se metodama koje generiraju postavke.
void setup () {// Configuracao do display ---------------------------------------- -------- display.begin (); display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (CRNO); // Konfiguracija upravljačkog programa DRV8825 ----------------------------------------- // pin GND - Omoguć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.spavati (NISKO); d1.reset (); d1.korakPerMm (100); d1.stepPerRound (200); d1.stepConfig (1); d1.motionConfig (50, velocidade, 5000); }
loop () - 1. dio - izbornik Crtanje
void loop () {// Escreve o Menu do Programa nema prikaza ----------------------------------- prikaz.clearDisplay (); display.fillRect (0, 0, 15, 11, 2); display.setCursor (2, 2); display.setTextColor (BIJELO); display.print ("F1"); display.setTextColor (CRNO); display.setCursor (17, 2); display.print ("CRESCENTE"); display.fillRect (0, 12, 15, 11, 2); display.setCursor (2, 14); display.setTextColor (BIJELO); display.print ("F2"); display.setTextColor (CRNO); display.setCursor (17, 14); display.print ("DECRESCENTE"); display.fillRect (0, 24, 15, 11, 2); display.setCursor (2, 26); display.setTextColor (BIJELO); display.print ("F3"); display.setTextColor (CRNO); display.setCursor (17, 26); display.print ("VELOCIDADE");
loop () - 2. dio - Izbornik za crtanje
display.fillRect (0, 36, 15, 11, 2); display.setCursor (2, 38); display.setTextColor (BIJELO); display.print ("F4"); display.setTextColor (CRNO); display.setCursor (17, 38); display.print ("ESC"); display.display (); bool esc = netočno;
loop () - Dio 3 - Trčanje
// Petlja enquanto tecla F4 (ESC) nao za pressionadu while (! Esc) {// hvatanje 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 body "Movendo" no display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (BIJELO); display.print ("MOVENDO"); display.setTextColor (CRNO); display.setCursor (2, 14); prikaz.tisak (distancia); display.print ("Passos"); display.display ();
loop () - Dio 4 - Trčanje
// Pokret o motorni pokretač (udaljenost, LOW); // Volta ao izbornik esc = true; } pauza; // Se tecla F2 foi pressionada case 'B': distancia = lerValor (); // Se tecla ESC foi pressionada if (distancia == -1) {esc = true; } else {// Escreve a body "Movendo" no display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (BIJELO); display.print ("MOVENDO"); display.setTextColor (CRNO); display.setCursor (2, 14); prikaz.tisak (distancija); display.print ("Passos"); display.display ();
loop () - 5. dio - Trčanje
// Pomicanje o motorni pokretač (udaljenost, VISOKO); // Volta ao izbornik esc = true; } pauza; // Se tecla F3 foi pressionada case 'C': velocidade = lerValor (); if (velocidade == -1) {esc = true; } else {// Escreve tela "Velocidade" bez prikaza na zaslonu.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (12, 2); display.setTextColor (BIJELO); display.print ("VELOCIDADE"); display.setTextColor (CRNO); display.setCursor (2, 14); prikaz.tisak (velocidade); display.print (char (229)); display.print ("s");
loop () - Dio 6 - Trčanje
display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor (BIJELO); display.println ("U redu!"); display.setTextColor (CRNO); display.display (); // Configura nova velocidade ao motor d1.motionConfig (50, velocidade, 5000); odgoda (2000); // Volta ao izbornik esc = true; } pauza; // 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; zadano: break; }} // Limpa o char customKey customKey = false; }}
Korak 16: O vretenu - konfiguracije stroja
U CNC strojevima, na primjer 3D pisačima i usmjerivačima, program odgovoran za kontrolu pozicioniranja mora znati kako će se kretanja odvijati u ovisnosti o broju impulsa koji se daju koračnom motoru.
Ako pogon koračnog motora dopušta primjenu mikro-koraka, ova se konfiguracija mora uzeti u obzir pri izračunu proizvedenog pomaka.
Na primjer, ako je motor od 200 koraka po okretaju spojen na upravljački sklop postavljen na 1/16, tada će za jedno okretanje vretena biti potrebno 16 x 200 impulsa, odnosno 3200 impulsa za svaki okretaj. Ako ovo vreteno ima korak od 2 mm po okretu, bit će potrebno 3200 impulsa u pogonu da se matica pomakne 2 mm.
Zapravo, softverski kontroleri često koriste razlog za navođenje ovog omjera, "broja impulsa po milimetru" ili "koraka / mm".
Korak 17: Marlin
U Marlinu, na primjer, u odjeljku @sekcijsko gibanje vidimo:
/ **
* Zadani koraci osi po jedinici (koraci / mm)
* Nadjačaj s M92
* X, Y, Z, E0 [, E1 [, E2 [, E3 [, E4]
* /
#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 3200, 100}
U ovom primjeru možemo zaključiti da osi X i Y imaju točnost od 80 impulsa za pomicanje 1 mm, dok Z treba 3200 impulsa, a ekstruderu E0 100.
Korak 18: GRBL
U nastavku vidimo naredbe za konfiguraciju GRBL -a. Pomoću naredbe od 100 USD možemo podesiti broj impulsa potrebnih za izazivanje pomaka od jednog milimetra na osi X.
U donjem primjeru možemo vidjeti da je trenutna vrijednost 250 impulsa po mm.
Osi Y i Z mogu se postaviti 101 USD odnosno 102 USD.
Preporučeni:
LED kockice osjetnika nagiba: 3 koraka
LED kockice osjetnika nagiba: Ovaj projekt stvara LED kockice koje proizvode novi broj svaki put kada se osjetnik nagiba nagne. Ovaj bi se projekt mogao izmijeniti tako da koristi gumb, ali bi se kôd morao promijeniti u skladu s tim. Prije početka ovog projekta priključite 5V na
Digitalni osjetnik nagiba pomoću LM358: 3 koraka
Digitalni osjetnik nagiba Korištenje LM358: Senzori su najbolja stvar za početak s DIY elektronikom, možete nabaviti veliki broj senzora, svaki prikladan za jedan ili više zadataka. Arduino je kompatibilan s raznim senzorima i pokazat ću vam kako izgraditi različite senzore
Podizač nagiba tipkovnice: 3 koraka
Keyboard Tilt Lifter .: Nedavno sam kupio Belkinovu "light up" tipkovnicu, ali sam bio pomalo zaprepašten kad sam otkrio da male noge koje inače koristite za podešavanje nagiba tipkovnice nisu uključene u dizajn. S obzirom da mrzim tipkanje na ravnoj tipkovnici, odlučio sam
Senzor nagiba od pet centi: 4 koraka (sa slikama)
Senzor nagiba od pet centi: Ovo je osnovni osjetnik nagiba inspiriran senzorima u stilu loptice i kaveza, ali 2d umjesto 3d. Uhvaćeni nick povezuje parove žica ovisno o orijentaciji senzora. Brzo se izrađuju i prilično su jeftini; Smislio sam ih za projekt s
Objekt DSLR fotoaparata s promjenom nagiba DIY: 6 koraka
Objektivi za fotoaparate DSLR fotoaparata s promjenom nagiba: Što vam je potrebno: 1) SLR ili DSLR fotoaparat s izmjenjivim objektivom. 2) Predimenzionirani objektiv. Ebay je sjajan resurs, možete kupiti visokokvalitetne leće za oko 15,3 USD) Gumeni klip nalik na harmoniku (po mogućnosti crni, kako bi se spriječilo svjetlo