Sisällysluettelo:

Arduino Uno kara- ja pikimoottorilla: 19 vaihetta
Arduino Uno kara- ja pikimoottorilla: 19 vaihetta

Video: Arduino Uno kara- ja pikimoottorilla: 19 vaihetta

Video: Arduino Uno kara- ja pikimoottorilla: 19 vaihetta
Video: Arduino Projects 😱 2024, Heinäkuu
Anonim
Image
Image
Käytetyt resurssit
Käytetyt resurssit

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?

Tietoja karaista - mitä ne ovat?
Tietoja karaista - 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

Tietoja karaista - Yksittäiset ja pallokierteet
Tietoja karaista - Yksittäiset 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

Tietoja karaista - sovellukset
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

Tietoja karaista - parametrit
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)

Tietoja karaista - vaihe (siirtymä ja nopeus)
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

Kokoonpano
Kokoonpano
Kokoonpano
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

Asennus - Materiaalit
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

Kokoonpano - Vaihe 01
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

Kokoonpano - Vaihe 02
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

Asennus - Vaihe 03
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

Kokoonpano - Vaihe 04
Kokoonpano - Vaihe 04
Kokoonpano - Vaihe 04
Kokoonpano - 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

Asennus - elektroniikka
Asennus - elektroniikka
Asennus - elektroniikka
Asennus - elektroniikka
Asennus - elektroniikka
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ä

Sähköjärjestelmä
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

Tietoja karaista - konekokoonpanot
Tietoja karaista - konekokoonpanot

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

Marlin
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

GRBL
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: