Satura rādītājs:

Arduino Uno ar vārpstu un piķa motoru: 19 soļi
Arduino Uno ar vārpstu un piķa motoru: 19 soļi

Video: Arduino Uno ar vārpstu un piķa motoru: 19 soļi

Video: Arduino Uno ar vārpstu un piķa motoru: 19 soļi
Video: Как управлять приводом с помощью Arduino - Robojax 2024, Jūlijs
Anonim
Image
Image
Izmantotie resursi
Izmantotie resursi

Šodien mēs runāsim par ļoti svarīgu priekšmetu mehānikā un mehatronikā: mašīnu elementi. Šajā rakstā mēs īpaši pievērsīsimies vārpstām, piedāvājot dažas interesantas funkcijas un lietojumus. Tomēr mēs parādīsim dažus veidus, kā aprēķināt vārpstas radīto kustību un parādīt testa komplektu.

Tāpēc es veicu montāžu zemāk, kas atklāj 2 mm un 8 mm vārpstas virzienu. Šīs manis izmantotās TR8 vārpstas parasti tiek izmantotas mazos maršrutētājos un 3D printeros, it īpaši uz Z ass. Atceroties, ka, apgūstot dažus jēdzienus, pie kuriem mēs šeit strādāsim, jūs varēsit izstrādāt jebkura veida mašīnas.

1. darbība. Izmantotie resursi

  • Trapecveida vārpsta 8 mm diametrā un 2 mm solī
  • Trapecveida vārpsta 8 mm diametrā un 8 mm solī
  • 8x2 vārpstas atloku kastanis
  • 8x8 vārpstas atloku kastanis
  • Gultņi 8 mm diametra vārpstām
  • Lineāra cilindriska vadotne 10 mm diametrā
  • Cilindriskie rullīšu gultņi 10 mm vadotnēm
  • Kronšteini 10 mm cilindriskām vadotnēm
  • NEMA 17 Motors
  • Vārpstas sakabes
  • Arduino Uno
  • Vadītājs DRV8825
  • 4x4 matricas tastatūra
  • Displejs Nokia 5110
  • Dažādas plastmasas detaļas
  • Skrūves un uzgriežņi
  • Koka pamatne
  • Ārējais 12V barošanas avots

2. darbība. Par vārpstām - kas tās ir?

Par vārpstām - kas tās ir?
Par vārpstām - kas tās ir?

Vārpstas ir mašīnu elementi, piemēram, skrūves. Tas ir, tie ir taisni stieņi, ko veido nepārtrauktu pakāpienu pavedieni. Tos izmanto mehānismos, kuriem nepieciešama lineāra kustība un pozicionēšana. Tie var izdarīt lielu stiepes un spiedes spēku un pārnest griezes momentu. Tie ļauj kustēties ar automātisku bloķēšanu. Tos var izgatavot no dažādiem materiāliem, kas ir visizplatītākais alumīnijs un tērauds.

Tā kā Ķīnas uzņēmumi ražo trapecveida vārpstas, es ieteiktu jums iegūt šāda veida izstrādājumus, nevis labi zināmo uzgriežņu skrūvi. Tas ir saistīts ar pievilcīgāku cenu un vilcienu, kas, manuprāt, ir pretīgs.

Fotogrāfijā es ievietoju labāko vārpstu, kurai, manuprāt, ir recirkulācijas lodīšu vārpsta. Tas parasti ir izgatavots no ļoti cieta tērauda, un bumbiņas griežas ap to, kastaņa iekšpusē. Papildus lieliskajai precizitātei es uzsveru arī izturību, jo šāda veida vārpsta var reproducēt miljardiem kustību, nesabojājot mehānismu. Lētāka iespēja, kuru mēs šeit izmantojam, ir trapecveida vārpsta.

3. solis: Par vārpstām - vienas un lodīšu pavedieni

Par vārpstām - viena un lodveida diegi
Par vārpstām - viena un lodveida diegi

Lodīšu vārpstām, fotoattēlā pa kreisi, ir pusapaļi kanāli, kur bumbiņas ripo. Tie ir salīdzinoši dārgāki, un tiem ir zema berze, salīdzinot ar vienas skrūves vārpstām, tādējādi iegūstot daudz lielāku ražu (rites berze).

Vienvītņotajām vārpstām attēla labajā pusē parasti ir trapecveida profili, jo šī ģeometrija ir piemērotāka spēku pielietošanai aksiālā virzienā un vienmērīgai kustībai. Tie ir salīdzinoši lēti un tiem ir augsta berze, salīdzinot ar recirkulējošiem lodīšu vārpstām, kas noved pie zemas ražas, ti, slīdēšanas berzes.

4. solis: Par vārpstām - lietojumprogrammas

Par vārpstām - lietojumprogrammas
Par vārpstām - lietojumprogrammas

Vārpstas var pielietot jebkuram mehānismam, kur nepieciešama lineāra kustība. Tos plaši izmanto rūpniecībā mašīnās un procesos.

Dažas lietojumprogrammas ietver:

  • Kravas pacēlāji
  • Preses
  • Zemenes un virpas
  • CNC aprīkojums
  • Iesaiņošanas mašīnas
  • 3D printeri
  • Lāzera griešanas un griešanas iekārtas
  • Rūpnieciskie procesi
  • Pozicionēšanas un lineārās kustības sistēmas

5. solis: Par vārpstām - parametri

Par vārpstām - parametri
Par vārpstām - parametri

Veidojot mehānismu, jāņem vērā vairākas vārpstas īpašības. Papildus diametram un slīpumam ir jāatzīst tā spiedes stiprība, inerces moments (izturība pret rotācijas stāvokļa izmaiņām), konstruktīvs materiāls, rotācijas ātrums, kuram tas tiks pakļauts, darbības virziens (horizontāli) vai vertikāli), cita starpā, pielietotā slodze.

Bet, pamatojoties uz jau izveidotiem mehānismiem, mēs varam intuitēt vairākus no šiem parametriem.

Atzīsim kādu kopīgu labumu. Sāksim ar STEP.

6. darbība. Par vārpstām - solis (pārvietojums un ātrums)

Par vārpstām - solis (pārvietojums un ātrums)
Par vārpstām - solis (pārvietojums un ātrums)

Nosaka uzgriezņa nobraukto garumu katrā apgriezienā. Tas parasti ir mm / apgrieziens.

2 mm vārpsta vienā apgriezienā izraisīs 2 mm pārvietojumu katrā vārpstas pagriezienā. Tas ietekmēs uzgriežņa lineāro ātrumu, jo, palielinoties griešanās ātrumam, palielināsies apgriezienu skaits laika vienībā un līdz ar to arī nobrauktais attālums.

Ja 2 mm griešanās vienā apgriezienā griežas ar ātrumu 60 RPM (viens apgrieziens sekundē), uzgrieznis kustēsies ar ātrumu 2 mm sekundē.

7. solis: montāža

Montāža
Montāža
Montāža
Montāža

Mūsu montāžā man ir divi motori un mūsu tastatūra ar displeju, kas izskatījās pēc kalkulatora, jo es tiem izveidoju vāku 3D printerī. Nokia displejā mums ir šādas iespējas:

F1: Pusmēness - Fuso pāriet no pašreizējās pozīcijas uz manu noteikto pozīciju

F2: lejupejošs - pagrieziens

F3: Ātrums - vai es varu mainīt impulsa platumu

F4: ESC

8. solis: montāža - materiāli

Montāža - materiāli
Montāža - materiāli

A - 10 mm lineārās vadotnes

B - 2. un 8. mm soļu trapecveida vārpstas

C - urbšanas bāze

D - vārpstas gultņi

E - Vadotņu turētāji

F - Kastaņi

G - Gultņi

H - uzmavas

I - Dzinēji

J - dažādas plastmasas detaļas (kursori, motora kronšteini, ķīļi, tastatūras atbalsts un displejs

9. darbība: montāža - 01. darbība

Montāža - 01. darbība
Montāža - 01. darbība

Pēc pamatnes (C) urbšanas mēs saliekam divus motorus (I). Lai tos piestiprinātu, mēs izmantojam 3D printerī izgatavotus kronšteinus (J). Nepievelciet nevienu skrūvi šajā pozicionēšanas solī. Tas ļaus veikt nepieciešamos pielāgojumus izlīdzināšanas posmā.

10. darbība: montāža - 02. darbība

Montāža - 02. darbība
Montāža - 02. darbība

Joprojām pēc pamatnes (C) urbšanas novietojiet vadotnes (E) un gultņus (D). Sīkāka informācija par plastmasas starpliku (J), ko izmanto, lai pielāgotu gultņu augstumus.

11. darbība: montāža - 03. darbība

Montāža - 03 solis
Montāža - 03 solis

Mēs izveidojam kursoru, izmantojot drukātu daļu, lai savienotu gultni (G) ar uzgriezni (F). Mēs izmantojām divus kursorus, vienu pa labi, otru pa kreisi. Tās funkcija ir norādīt pozīciju uz skalas ikreiz, kad vēlamies noteikt vārpstas izraisīto pārvietojumu.

12. darbība: montāža - 04. darbība

Montāža - 04 solis
Montāža - 04 solis
Montāža - 04 solis
Montāža - 04 solis

Ievietojiet vadotni (A) un vārpstu (B) attiecīgajā gultnē (D) un balstā (E) pretī motoram, pēc tam ievietojiet vadotni un vārpstu gultnē (G) un kastaņā (F) un pie vārpstas galā mēs ievietojam arī savienotāju (H). Mēs ņemam tos abus, līdz tie sasniedz savus pēdējos punktus (pretējais balsts un motors).

Viegli pievelciet skrūves, lai vēlāk varētu veikt regulēšanu. Atkārtojiet procedūru, izmantojot atlikušo vadotni un vārpstu. Kad visas sastāvdaļas ir novietotas, mēs veicam detaļu izlīdzināšanu, pabeidzot mehāniskās montāžas posmu.

13. solis: montāža - elektronika

Montāža - elektronika
Montāža - elektronika
Montāža - elektronika
Montāža - elektronika
Montāža - elektronika
Montāža - elektronika

Izmantojot drukātu plastmasas turētāju, mēs nostiprinājām Nokia 5110 displeju un 4x4 matricas tastatūru. Stenda apakšējā telpā atradīsies Arduino Uno, draiveris DRV8825.

Izmantojot pieejamo urbšanu pamatnē, mēs nostiprinām mezglu.

14. solis: elektriskā shēma

Elektriskā shēma
Elektriskā shēma

Elektroinstalācijas shēma ir vienkārša. Mums ir DRV8825 un tie paši divi 17 spoguļi, tas ir, tas pats solis, ko mēs nosūtām vienam, iet uz citu. Mainās tas, ka vienā no motoriem man ir 8 mm vārpstas un otrā 2 mm vārpsta. Tātad skaidrs, ka pirmais ar 8 mm vārpstu iet ātrāk. Diagrammā joprojām ir displejs un 4x4 tastatūra, kurai jābūt matricai.

15. darbība: avota kods

Bibliotēku iekļaušana un objektu izveide

Mums šeit ir Lib, ko es darīju, kas ir StepDriver.h. Tas ir sagatavots 8825, 4988 un arī TB6600 draiveriem. Šajā solī es izveidoju objektu DRV8825, d1.

// Biblioteca responseável 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 // pin 6 - Serial clock out [SCLK] // pin 5 - sērijas datu izeja (DIN) // pin 4 - datu/komandu atlase (D/C) // pin 3 - LCD mikroshēmas izvēle (CS/CE) // pin 2 - LCD reset (RST) Adafruit_PCD8544 displejs = Adafruit_PCD8544 (6, 5, 4, 3, 2); // Biblioteca de motor de passo #include // Instancia o driver DRV8825 DRV8825 d1;

Konstantes un globālie mainīgie

Šajā koda daļā es aplūkoju matricu, kuru es iemācīju citā video stundā (LINK KEYBOARD). Tomēr es runāju par tastatūras objektu, bez attāluma un ātruma.

const baits LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // definēt 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" '}}; baits 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 tovel capturer 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; neparakstīta garā distancija = 0; neparakstīta garā velocidāde = 2000;

Tastatūras lasīšanas funkcija

Šajā solī mums ir kods, kas attiecas uz displeju, kas darbojas, palielinoties un samazinot drukāšanu.

// Funcao responseavel 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 (BALTS); display.print ("VALOR"); display.setTextColor (BLACK); display.fillRect (0, 24, 21, 11, 2); display.setCursor (2, 26); display.setTextColor (BALTS); display.print ("CLR"); display.setTextColor (BLACK); display.setCursor (23, 26); display.print ("LIMPAR"); display.fillRect (0, 36, 21, 11, 2); display.setCursor (5, 38); display.setTextColor (BALTS); display.print ("F4"); display.setTextColor (BLACK); display.setCursor (23, 38); display.print ("VOLTAR"); display.setCursor (2, 14); display.display (); Stīgu valor = ""; char tecla = nepatiess;

cilpas gaida, kad tiek nospiesta taustiņa

Šeit mēs izskaidrojam cilpas programmēšanu, tas ir, kur ievadāt vērtības.

// 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': gadījums '7': gadījums '8': gadījums '9': gadījums '0': valor += tecla; displejs.druka (tecla); display.display (); pārtraukums; // Skatiet 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ārtraukums; // Skatiet ENT foi pressionada case 'e': // Retorna o valor return valor.toInt (); pārtraukums; // Skatīt F4 (ESC) foi pressionada case 'D': return -1; noklusējums: pārtraukums; }} // Limpa o char tecla tecla = false; }}

Motora piedziņas funkcija

Šajā posmā tiek strādāta ar funkciju "pārvietot". Es saņemu impulsu skaitu un virzienu, un tad es izveidoju "par".

// Funcao responseavel por mover o motor -------------------------------------- void mover (neparakstīts) gari pulsos, bool direcao) {for (unsigned long i = 0; i <pulsos; i ++) {d1.motorMove (directcao); }}

uzstādīt ()

Tagad es pārvietoju displeju un draivera konfigurāciju, un pat ievietoju piespraušanu avota kodā, lai būtu vieglāk. Es inicializēju noteiktas vērtības un nodarbojos ar metodēm, kas ģenerē iestatījumus.

void setup () {// Configuracao do display ---------------------------------------- -------- display.begin (); display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (BLACK); // Configuração do Driver DRV8825 ---------------------------------------- // pin GND - Iespējot (ENA) // 13. tapa - M0 // 12. tapa - M1 // 11. tapa - M2 // 10. tapa - Atiestatīt (RST) // 9. tapa - Miega režīms (SLP) // 8. tapa - Solis (STP) // 7. tapa - virziens (DIR) d1.pinConfig (99, 13, 12, 11, 10, 9, 8, 7); d1.miegs (LOW); d1.reset (); d1.solisPerMm (100); d1.stepPerRound (200); d1.stepConfig (1); d1.motionConfig (50, velocidade, 5000); }

cilpa () - 1. daļa - Zīmēšanas izvēlne

void loop () {// Escreve o Menu do Programa no display ----------------------------------- display.clearDisplay (); display.fillRect (0, 0, 15, 11, 2); display.setCursor (2, 2); display.setTextColor (BALTS); display.print ("F1"); display.setTextColor (BLACK); display.setCursor (17, 2); display.print ("CRESCENTE"); display.fillRect (0, 12, 15, 11, 2); display.setCursor (2, 14); display.setTextColor (BALTS); display.print ("F2"); display.setTextColor (BLACK); display.setCursor (17, 14); display.print ("DECRESCENTE"); display.fillRect (0, 24, 15, 11, 2); display.setCursor (2, 26); display.setTextColor (BALTS); display.print ("F3"); display.setTextColor (BLACK); display.setCursor (17, 26); display.print ("VELOCIDADE");

cilpa () - 2. daļa - Zīmēšanas izvēlne

display.fillRect (0, 36, 15, 11, 2); display.setCursor (2, 38); display.setTextColor (BALTS); display.print ("F4"); display.setTextColor (BLACK); display.setCursor (17, 38); display.print ("ESC"); display.display (); bool esc = nepatiess;

cilpa () - 3. daļa - Skriešana

// 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 (); // Skatiet ESC foi pressionada if (distancia == -1) {esc = true; } cits {// Escreve tela "Movendo" bez displeja displeja.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (BALTS); display.print ("MOVENDO"); display.setTextColor (BLACK); display.setCursor (2, 14); displejs.druka (distancia); display.print ("Passos"); display.display ();

cilpa () - 4. daļa - Skriešana

// Move o motor mover (distancia, LOW); // Volta ao menu esc = true; } pārtraukums; // Se tecla F2 foi pressionada case 'B': distancia = lerValor (); // Skatīt ESC foi pressionada if (distancia == -1) {esc = true; } cits {// Escreve tela "Movendo" bez displeja displeja.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (BALTS); display.print ("MOVENDO"); display.setTextColor (BLACK); display.setCursor (2, 14); displejs.druka (distancia); display.print ("Passos"); display.display ();

cilpa () - 5. daļa - Skriešana

// Move o motor mover (distancia, HIGH); // Volta ao menu esc = true; } pārtraukums; // Skatiet F3 foi pressionada case 'C': velocidade = lerValor (); ja (velocidade == -1) {esc = true; } cits {// Escreve a tela "Velocidade" nav displeja displeja.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (12, 2); display.setTextColor (BALTS); display.print ("VELOCIDADE"); display.setTextColor (BLACK); display.setCursor (2, 14); displejs.druka (velocidāde); display.print (char (229)); display.print ("s");

cilpa () - 6. daļa - Skriešana

display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor (BALTS); display.println ("Labi!"); display.setTextColor (BLACK); display.display (); // Configura nova velocidade ao motor d1.motionConfig (50, velocidade, 5000); kavēšanās (2000); // Volta ao menu esc = true; } pārtraukums; // 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; noklusējums: pārtraukums; }} // Limpa vai char customKey customKey = false; }}

16. darbība. Par vārpstām - mašīnas konfigurācija

Par vārpstām - mašīnu konfigurācijas
Par vārpstām - mašīnu konfigurācijas

Piemēram, CNC mašīnās, piemēram, 3D printeros un maršrutētājos, programmai, kas ir atbildīga par pozicionēšanas kontroli, ir jāzina, kā kustības notiks, atkarībā no soļu motoram doto impulsu skaita.

Ja pakāpienu motora draiveris pieļauj mikropakāpju izmantošanu, šī konfigurācija jāņem vērā, aprēķinot iegūto pārvietojumu.

Piemēram, ja 200 pakāpju motors vienā apgriezienā ir pievienots vadītājam, kas iestatīts uz 1/16, tad vienam vārpstas apgriezienam būs nepieciešami 16 x 200 impulsi, tas ir, 3200 impulsi katram apgriezienam. Ja šīs vārpstas solis ir 2 mm vienā apgriezienā, tad uzgriežņa kustībā būs nepieciešami 3200 impulsi, lai uzgrieznis pārvietotos par 2 mm.

Faktiski programmatūras kontrolieri bieži izmanto iemeslu, lai norādītu šo attiecību, "impulsu skaitu uz milimetru" vai "soļus / mm".

17. solis: Marlin

Mārlina
Mārlina

Piemēram, Marlinā sadaļā @section motion mēs redzam:

/ **

* Noklusējuma ass soļi vienībā (soļi / mm)

* Aizstāt ar M92

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

* /

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

Šajā piemērā mēs varam secināt, ka X un Y asu precizitāte ir 80 impulsi, lai pārvietotos 1 mm, savukārt Z ir nepieciešami 3200 impulsi, bet ekstrūderim E0 - 100.

18. darbība: GRBL

GRBL
GRBL

Zemāk mēs redzam GRBL konfigurācijas komandas. Izmantojot komandu $ 100, mēs varam pielāgot nepieciešamo impulsu skaitu, lai radītu viena milimetra nobīdi uz X ass.

Zemāk redzamajā piemērā mēs redzam, ka pašreizējā vērtība ir 250 impulsi uz mm.

Y un Z asis var iestatīt attiecīgi $ 101 un $ 102.

Ieteicams: