Sisällysluettelo:
- Vaihe 1: Käytetyt resurssit
- Vaihe 2: Karat - mitä ne ovat?
- Vaihe 3: Tietoja karaista - yksittäis- ja pallokierteet
- Vaihe 4: Tietoja karaista - sovellukset
- Vaihe 5: Tietoja karaista - parametrit
- Vaihe 6: Tietoja karaista - Vaihe (siirtymä ja nopeus)
- Vaihe 7: Kokoonpano
- Vaihe 8: Asennus - materiaalit
- Vaihe 9: Kokoonpano - Vaihe 01
- Vaihe 10: Kokoonpano - Vaihe 02
- Vaihe 11: Asennus - Vaihe 03
- Vaihe 12: Kokoaminen - Vaihe 04
- Vaihe 13: Asennus - elektroniikka
- Vaihe 14: Sähköjärjestelmä
- Vaihe 15: Lähdekoodi
- Vaihe 16: Tietoja karaista - koneen kokoonpanot
- Vaihe 17: Marlin
- Vaihe 18: GRBL
- Vaihe 19: Katso lisää töistäni:
Video: Arduino Uno kara- ja pikimoottorilla: 19 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Tänään aiomme puhua erittäin tärkeästä mekaniikan ja mekatroniikan aiheesta: koneiden elementeistä. Tässä artikkelissa käsittelemme erityisesti karat, joissa on joitain mielenkiintoisia ominaisuuksia ja sovelluksia. Esittelemme kuitenkin joitain tapoja laskea karan aiheuttama liike ja esitellä testikokoonpano.
Tein alla olevan kokoonpanon, joka paljastaa 2 mm: n ja toisen 8 mm: n karan etenemisen. Tätä käyttämääni TR8 -karaa käytetään yleisesti pienissä reitittimissä ja 3D -tulostimissa, erityisesti Z -akselilla. Muista, että hallitsemalla joitain käsitteitä, joita käsittelemme täällä, voit suunnitella minkä tahansa tyyppisiä koneita.
Vaihe 1: Käytetyt resurssit
- Puolisuunnikkaan muotoinen kara, jonka halkaisija on 8 mm ja askel 2 mm
- Puolisuunnikkaan muotoinen kara 8 mm halkaisijaltaan ja 8 mm nousulla
- 8x2 karainen laipallinen kastanja
- 8x8 karainen laipallinen kastanja
- Laakerit halkaisijaltaan 8 mm: n karaille
- Lineaarinen lieriömäinen ohjain, halkaisija 10 mm
- Lieriömäiset rullalaakerit 10 mm ohjaimille
- Kiinnikkeet 10 mm lieriömäisille ohjaimille
- NEMA 17 -moottorit
- Akselikytkimet
- Arduino Uno
- Kuljettaja DRV8825
- 4x4 matriisin näppäimistö
- Näyttö Nokia 5110
- Sekalaiset muoviosat
- Pultit ja mutterit
- Puinen pohja
- Ulkoinen 12V virtalähde
Vaihe 2: Karat - mitä ne ovat?
Karat ovat koneiden osia, kuten ruuveja. Toisin sanoen ne ovat suoria tankoja, jotka on muodostettu jatkuvien vaiheiden kierteistä. Niitä käytetään mekanismeissa, jotka edellyttävät lineaarista liikettä ja paikannusta. Ne voivat käyttää suuria veto- ja puristusvoimia ja siirtää vääntömomenttia. Ne mahdollistavat liikkeen automaattisella lukituksella. Ne voidaan rakentaa eri materiaaleista, joista yleisin on alumiini ja teräs.
Koska kiinalaiset yritykset valmistavat puolisuunnikkaan muotoisia karaja, suosittelen, että hankit tämän tyyppisen tuotteen tunnetun mutteripultin sijasta. Tämä johtuu houkuttelevammasta hinnasta ja pidosta, jota pidän kauheana.
Valokuvaan laitan parhaan karan, jossa on mielestäni kierrätyskuula. Se on yleensä valmistettu erittäin kovasta teräksestä, ja pallot pyörivät sen ympärillä kastanjan sisällä. Suuren tarkkuuden lisäksi korostan myös kestävyyttä, koska tämäntyyppinen kara voi toistaa miljardeja liikkeitä vahingoittamatta mekanismia. Halvempi vaihtoehto, jota käytämme tässä, on puolisuunnikkaan muotoinen kara.
Vaihe 3: Tietoja karaista - yksittäis- ja pallokierteet
Kuulakarat, vasemmalla olevassa kuvassa, ovat puolipyöreitä kanavia, joissa pallot rullaavat. Ne ovat suhteellisen kalliimpia ja niillä on alhainen kitka verrattuna yksiruuvisiin karaihin, mikä johtaa paljon suurempaan saantoon (vierintäkitka).
Kuvan oikealla puolella olevilla yksikierteisillä karsilla on yleensä puolisuunnikkaan muotoiset profiilit, koska tämä geometria on sopivampi kohdistamaan voimia aksiaalisuunnassa ja sujuvan liikkeen siirtämisen. Ne ovat suhteellisen halpoja ja niillä on suuri kitka verrattuna kierrätettäviin kuulakarkoihin, mikä johtaa alhaiseen saantoon eli liukukitkaan.
Vaihe 4: Tietoja karaista - sovellukset
Karat voidaan kiinnittää mihin tahansa mekanismiin, jossa tarvitaan lineaarista liikettä. Niitä käytetään laajalti teollisuudessa koneissa ja prosesseissa.
Jotkin sovellukset sisältävät:
- Kuormahissit
- Painaa
- Mansikat ja sorvit
- CNC -laitteet
- Käärintäkoneet
- 3D -tulostimet
- Laserleikkaus- ja leikkauslaitteet
- Teolliset prosessit
- Paikannus- ja lineaariset liikejärjestelmät
Vaihe 5: Tietoja karaista - parametrit
Karalla on useita ominaisuuksia, jotka on otettava huomioon mekanismia suunniteltaessa. Halkaisijan ja nousun lisäksi on tarpeen tunnistaa sen puristuslujuus, hitausmomentti (vastustuskyky pyörimistilan muutoksille), rakentava materiaali, pyörimisnopeus, johon se kohdistuu, toiminnan suunta (vaakasuora tai pystysuorassa), sovellettu kuorma, mm.
Mutta jo rakennettujen mekanismien perusteella voimme tunnistaa useita näistä parametreista.
Tunnustetaan yhteinen hyvä. Aloitetaan STEP.
Vaihe 6: Tietoja karaista - Vaihe (siirtymä ja nopeus)
Määrittää mutterin kulkeman pituuden jokaisella kierroksella. Tämä on yleensä mm / kierros.
2 mm: n kara kierrosta kohden aiheuttaa 2 mm: n siirtymän jokaisella karan suorittamalla kierroksella. Se vaikuttaa mutterin lineaariseen nopeuteen, koska pyörimisnopeuden kasvaessa kierrosten määrä ajan yksikköä kohti kasvaa ja siten myös ajettu matka.
Jos 2 mm: n pyöräytys kierrosta kohden pyörii 60 kierrosta minuutissa (yksi kierros sekunnissa), mutteri liikkuu nopeudella 2 mm sekunnissa.
Vaihe 7: Kokoonpano
Kokoonpanossamme minulla on kaksi moottoria ja näppäimistö, jossa on näyttö, joka näytti laskimelta, koska tein heille kannen 3D -tulostimessa. Nokian näytössä on seuraavat vaihtoehdot:
F1: Puolikuu - Fuso siirtyy nykyisestä sijainnista määrittämääni kohtaan
F2: Laskeva - Käännä
F3: Nopeus - Voinko muuttaa pulssin leveyttä?
F4: ESC
Vaihe 8: Asennus - materiaalit
A - 10 mm: n lineaariset ohjaimet
B - Vaiheiden 2 ja 8 mm puolisuunnikkaiset karat
C - Porausjalusta
D - Karan laakerit
E - Oppaan pidikkeet
F - Kastanjat
G - Laakerit
H - Kytkimet
I - Moottorit
J - Erilaisia muoviosia (kohdistimet, moottorin kiinnikkeet, kiilat, näppäimistön tuki ja näyttö
Vaihe 9: Kokoonpano - Vaihe 01
Pohjan (C) poraamisen jälkeen koomme kaksi moottoria (I). Kiinnitämme ne 3D -tulostimella (J) tehtyihin kiinnikkeisiin. Älä kiristä ruuveja tässä asennossa. Tämä mahdollistaa tarvittavat säädöt kohdistusvaiheessa.
Vaihe 10: Kokoonpano - Vaihe 02
Asenna ohjauskiskot (E) ja laakerit (D) edelleen alustan (C) poraamisen jälkeen. Yksityiskohta laakerien korkeuden säätämiseen käytetystä muovilevystä (J).
Vaihe 11: Asennus - Vaihe 03
Luomme kohdistimen painetun osan avulla laakerin (G) liittämiseksi mutteriin (F). Käytimme kahta kohdistinta, yksi oikea toinen vasemmalle. Sen tehtävänä on osoittaa sijainti asteikolla aina, kun haluamme määrittää karan aiheuttaman siirtymän.
Vaihe 12: Kokoaminen - Vaihe 04
Aseta ohjain (A) ja kara (B) vastaaviin laakereihinsa (D) ja tukeen (E), vastapäätä moottoria, ja aseta sitten ohjain ja kara laakeriin (G) ja kastanjaan (F) ja asennamme myös kytkimen (H). Otamme ne molemmat, kunnes ne saavuttavat lopulliset pisteet (vastakkaiset tuet ja moottori).
Kiristä ruuvit kevyesti, jotta säätö on mahdollista myöhemmin. Toista toimenpide jäljellä olevan ohjaimen ja karan avulla. Kun kaikki komponentit on sijoitettu, suoritamme osien kohdistuksen ja viimeistelemme mekaanisen kokoonpanovaiheen.
Vaihe 13: Asennus - elektroniikka
Käyttämällä painettua muovipidikettä varmistimme Nokia 5110 -näytön ja 4x4 -matriisinäppäimistön. Jalustan alaosassa on Arduino Uno, ohjain DRV8825.
Kiinnitämme kokoonpano pohjaan saatavalla porauksella.
Vaihe 14: Sähköjärjestelmä
Kytkentäkaavio on yksinkertainen. Meillä on DRV8825 ja samat kaksi 17 peiliä, eli sama vaihe, jonka lähetämme yhdelle, menee toiselle. Muuttuu kuitenkin se, että yhdessä moottorista minulla on 8 mm: n ja toisessa 2 mm: n kara. On siis selvää, että ensimmäinen, 8 mm: n kara, kulkee nopeammin. Kaaviossa ovat edelleen näyttö ja 4x4 -näppäimistö, jonka on oltava matriisi.
Vaihe 15: Lähdekoodi
Kirjastojen sisällyttäminen ja objektien luominen
Meillä on täällä Lib, jonka tein, joka on StepDriver.h. Se on valmistettu 8825-, 4988- ja TB6600 -ajureille. Luon tässä vaiheessa objektin DRV8825, d1.
// Biblioteca response for por capturar a tecla que foi pressionada no teclado #include // Biblioteca responseável pelos graficos do display #include // Biblioteca responseável pela comunicacao do display #include // Configuracao de pinos do Display // nasta 6 - Sarjakello ulos (SCLK) // nasta 5 - Sarjatiedon ulostulo (DIN) // nasta 4 - Tietojen/komentojen valinta (D/C) // nasta 3 - LCD -sirun valinta (CS/CE) // nasta 2 - LCD -nollaus (RST) Adafruit_PCD8544 -näyttö = Adafruit_PCD8544 (6, 5, 4, 3, 2); // Biblioteca de motor de passo #include // Instancia o driver DRV8825 DRV8825 d1;
Vakiot ja globaalimuuttujat
Tässä koodin osassa käsittelen matriisia, jonka opetin toisessa videotunnissa (LINK NÄPPÄIMISTÖ). Silti puhun näppäimistöobjektista etäisyyden ja nopeuden lisäksi.
const tavu LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // määritä 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 '}}; tavu PINOS_LINHA [LINHAS] = {A2, A3, A4, A5}; // pinos que indicam linhas do teclado byte PINOS_COLUNA [COLUNAS] = {0, 1, A0, A1}; // pinos que indicam as colunas do teclado // instancia de Keypad, response to capturar and tecla pressionada Keypad customKeypad = Näppäimistö (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); // varáveis resposnsáveis por armazenar o valor digitado char customKey; allekirjoittamaton pitkä etäisyys = 0; allekirjoittamaton pitkä velocidade = 2000;
Näppäimistön lukutoiminto
Tässä vaiheessa meillä on näyttöön viittaava koodi, joka toimii lisääntyvässä ja vähenevässä tulostuksessa.
// Funcaon vastaus ler o valor do usuario pelo teclado -------------------------------------- --- unsigned long lerValor () {// Escreve o alivalikko que coleta os valores no display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (27, 2); display.setTextColor (VALKOINEN); display.print ("VALOR"); display.setTextColor (MUSTA); display.fillRect (0, 24, 21, 11, 2); display.setCursor (2, 26); display.setTextColor (VALKOINEN); display.print ("CLR"); display.setTextColor (MUSTA); display.setCursor (23, 26); display.print ("LIMPAR"); display.fillRect (0, 36, 21, 11, 2); display.setCursor (5, 38); display.setTextColor (VALKOINEN); display.print ("F4"); display.setTextColor (MUSTA); display.setCursor (23, 38); display.print ("VOLTAR"); display.setCursor (2, 14); display.display (); Merkkijono valor = ""; char tecla = epätosi;
silmukka odottaa näppäimen painamista
Tässä kerromme silmukan ohjelmoinnista eli siitä, missä syötät arvot.
// Loop infinito 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': tapaus '7': tapaus '8': tapaus '9': tapaus '0': valor += tecla; näyttö. tulostus (tecla); display.display (); tauko; // Katso 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 (); tauko; // Katso ENT foi pressionada case 'e': // Retorna o valor return valor.toInt (); tauko; // Katso tecla F4 (ESC) painamalla D -tapausta: paluu -1; oletus: tauko; }} // Limpa o char tecla tecla = false; }}
Moottorin käyttötoiminto
"Siirrä" -toimintoa käsitellään tässä vaiheessa. Saan pulssien määrän ja suunnan ja teen sitten "puolesta".
// Funcaon vastaus mover o motor -------------------------------------- void mover (unsigned pitkät pulssit, bool direcao) {for (unsigned long i = 0; i <pulsos; i ++) {d1.motorMove (directcao); }}
perustaa ()
Nyt siirrän näyttöä ja ohjaimen kokoonpanoa, ja laitoin jopa kiinnityksen lähdekoodin sisään helpottamaan sitä. Alustan tietyt arvot ja käsittelen asetuksia tuottavia menetelmiä.
void setup () {// Configuracao do display ---------------------------------------- -------- display.begin (); display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (MUSTA); // Configuração do Driver 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)) // nasta 7 - suunta (DIR) d1.pinConfig (99, 13, 12, 11, 10, 9, 8, 7); d1.unen (LOW); d1.nollaa (); d1.vaihePerMm (100); d1.vaihePerRound (200); d1.stepConfig (1); d1.motionConfig (50, velocidade, 5000); }
silmukka () - 1. osa - Piirustusvalikko
void loop () {// Escreve o Menu do Programme no display ----------------------------------- display.clearDisplay (); display.fillRect (0, 0, 15, 11, 2); display.setCursor (2, 2); display.setTextColor (VALKOINEN); display.print ("F1"); display.setTextColor (MUSTA); display.setCursor (17, 2); display.print ("CRESCENTE"); display.fillRect (0, 12, 15, 11, 2); display.setCursor (2, 14); display.setTextColor (VALKOINEN); display.print ("F2"); display.setTextColor (MUSTA); display.setCursor (17, 14); display.print ("DECRESCENTE"); display.fillRect (0, 24, 15, 11, 2); display.setCursor (2, 26); display.setTextColor (VALKOINEN); display.print ("F3"); display.setTextColor (MUSTA); display.setCursor (17, 26); display.print ("VELOCIDADE");
silmukka () - Osa 2 - Piirustusvalikko
display.fillRect (0, 36, 15, 11, 2); display.setCursor (2, 38); display.setTextColor (VALKOINEN); display.print ("F4"); display.setTextColor (MUSTA); display.setCursor (17, 38); display.print ("ESC"); display.display (); bool esc = epätosi;
silmukka () - Osa 3 - Juoksu
// 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 (); // Katso ESC, jos painat 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 (VALKOINEN); display.print ("MOVENDO"); display.setTextColor (MUSTA); display.setCursor (2, 14); näyttö. tulostus (etäisyys); display.print ("Passot"); display.display ();
silmukka () - Osa 4 - Juoksu
// Move o motor mover (distancia, LOW); // Volta ao menu esc = true; } tauko; // Katso F2 foi pressionada -kotelo 'B': distancia = lerValor (); // Katso ESC, jos painat 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 (VALKOINEN); display.print ("MOVENDO"); display.setTextColor (MUSTA); display.setCursor (2, 14); näyttö. tulostus (etäisyys); display.print ("Passot"); display.display ();
silmukka () - Osa 5 - Juoksu
// Move o motor mover (distancia, HIGH); // Volta ao menu esc = true; } tauko; // Katso F3 -painikkeen kotelo 'C': velocidade = lerValor (); jos (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 (VALKOINEN); display.print ("VELOCIDADE"); display.setTextColor (MUSTA); display.setCursor (2, 14); näyttö. tulostus (velocidade); display.print (char (229)); display.print ("s");
silmukka () - Osa 6 - Juoksu
display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor (VALKOINEN); display.println ("OK!"); display.setTextColor (MUSTA); display.display (); // Configura nova velocidade ao motor d1.motionConfig (50, velocidade, 5000); viive (2000); // Volta ao menu esc = true; } tauko; // 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; oletus: tauko; }} // Limpa tai char customKey customKey = false; }}
Vaihe 16: Tietoja karaista - koneen kokoonpanot
Esimerkiksi CNC -koneissa, kuten 3D -tulostimissa ja reitittimissä, paikannusohjauksesta vastaavan ohjelman on tiedettävä, miten liikkeet tapahtuvat askelmoottorille annetun pulssin määrän funktiona.
Jos askelmoottorin ohjain sallii mikroporkkien käytön, tämä kokoonpano on otettava huomioon tuotettua siirtymää laskettaessa.
Jos esimerkiksi 200-vaiheinen moottori kierrosta kohden on kytketty 1/16 -ohjaimeen, 16 x 200 pulssia tarvitaan karan yksittäiseen kierrokseen, eli 3200 pulssia kutakin kierrosta kohden. Jos tämän karan nousu on 2 mm kierrosta kohden, kestää 3200 pulssia ohjaimessa, jotta mutteri liikkuu 2 mm.
Itse asiassa ohjelmisto -ohjaimet käyttävät usein syytä määrittäessään tämän suhteen, "pulssien lukumäärä millimetriä kohti" tai "askelia / mm".
Vaihe 17: Marlin
Esimerkiksi Marlinissa näemme osiossa @section motion:
/ **
* Akselin oletusaskeleet yksikköä kohden (askelta / mm)
* Ohita M92
* X, Y, Z, E0 [, E1 [, E2 [, E3 [, E4]
* /
#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 3200, 100}
Tässä esimerkissä voimme päätellä, että X- ja Y -akseleilla on 80 pulssin tarkkuus liikkua 1 mm, kun taas Z tarvitsee 3200 pulssia ja suulakepuristin E0 tarvitsee 100.
Vaihe 18: GRBL
Alla näet GRBL -kokoonpanokomennot. 100 dollarin komennolla voimme säätää tarvittavien pulssien lukumäärän, joka aiheuttaa yhden millimetrin siirtymän X-akselilla.
Alla olevassa esimerkissä voidaan nähdä, että nykyinen arvo on 250 pulssia millimetriä kohti.
Y- ja Z -akselit voidaan asettaa vastaavasti $ 101 ja $ 102.
Suositeltava:
Arduino Nano - Arduino Uno -sovitin: 6 vaihetta (kuvilla)
Arduino Nano - Arduino Uno -sovitin: Arduino Nano on mukava, pieni ja halpa Arduino -perheen jäsen. Se perustuu Atmega328 -siruun, mikä tekee siitä yhtä voimakkaan kuin hänen veljensä Arduino Uno, mutta sen voi saada pienemmällä rahalla. Ebayssa kiinalaiset versiot voivat nyt
Ohjelman Arduino Pro Mini 328P lataaminen Arduino Uno -ohjelmalla: 6 vaihetta
Ohjelman lataaminen Arduino Pro Mini 328P: tä käyttämällä Arduino Unoa: Arduino Pro Mini on pienin lastulevy, jossa on 14 I/O -nastaa, se toimii 3,3 - 5 voltin tasavirralla ja on helppo ladata koodi ohjelmointilaitteeseen. digitaaliset tulo-/lähtöportit RX, TX, D2 ~ D13, 8 analogista tuloporttia A0 ~ A7 1
Kutista Arduino -projektisi - Arduino UNO ATmega328P -ohjelmoijana (https://youtu.be/YO61YCaC9DY): 4 vaihetta
Kutista Arduino -projektisi | Arduino UNO ATmega328P-ohjelmoijana (https://youtu.be/YO61YCaC9DY): Videolinkki: https://youtu.be/YO61YCaC9DYP-ohjelmointi ATmega328P käyttäen Arduinoa ISP: nä (järjestelmän sisäinen ohjelmoija) mahdollistaa Arduino-ominaisuuksien käyttämisen leipätaululla PCB. Se auttaa enimmäkseen, kun teet korkeakouluhankkeen. Se vähentää
Tehokkaampi Arduino-UNO, Massduino-UNO: 9 vaihetta
Tehokkaampi Arduino-UNO, Massduino-UNO: Mitä Massduino on? Lähes kaikki Arduino -koodit voivat olla
LED -CD -kara: 6 vaihetta
LED -CD -kara: Istuin vain etsimään jotain LED -valojen sijoittamista varten ja kokeilin tätä. Se näyttää upealta tietokoneen vieressä ja siihen on monia mahdollisuuksia