INHOUDSOPGAWE:
- Stap 1: Hulpbronne gebruik
- Stap 2: Oor spindels - wat is dit?
- Stap 3: Oor spindels - enkel- en baldrade
- Stap 4: Oor spindels - toepassings
- Stap 5: Oor spindels - parameters
- Stap 6: Oor spindels - stap (verplasing en snelheid)
- Stap 7: Montering
- Stap 8: Montering - materiaal
- Stap 9: Samestelling - Stap 01
- Stap 10: Samestelling - Stap 02
- Stap 11: Montering - Stap 03
- Stap 12: Samestelling - Stap 04
- Stap 13: Montering - Elektronika
- Stap 14: Elektriese skema
- Stap 15: Bronkode
- Stap 16: Oor spindels - masjienkonfigurasies
- Stap 17: Marlin
- Stap 18: GRBL
- Stap 19: Sien meer van my werk:
Video: Arduino Uno met spil en motor: 19 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Vandag gaan ons praat oor 'n baie belangrike onderwerp in meganika en megatronika: die elemente van masjiene. In hierdie artikel sal ons spesifiek aandag gee aan die spindels, met 'n paar interessante funksies en toepassings. Tog sal ons 'n paar maniere demonstreer om die beweging wat deur 'n spil veroorsaak word, te bereken en 'n toetseenheid voor te stel.
Ek het dus die onderstaande samestelling gemaak wat die vooruitgang van 'n as van 2 mm en 'n ander van 8 mm blootstel. Hierdie TR8 spindels wat ek gebruik, word algemeen gebruik in klein routers en 3D -drukkers, veral op die Z -as. Onthou dat u 'n paar masjiene kan ontwerp deur 'n paar konsepte waaraan ons hier gaan werk te bemeester.
Stap 1: Hulpbronne gebruik
- Trapeziumspindel 8 mm in deursnee en 2 mm steek
- Trapeziumspil 8 mm in deursnee en 8 mm in steek
- Kastanje met kastrol 8x2
- 8x8 spindel geflankeerde kastaiingbruin
- Laers vir spindels met 'n deursnee van 8 mm
- Lineêre silindriese gids 10 mm in deursnee
- Silindriese rollagers vir 10 mm geleide
- Hakies vir 10 mm silindriese gidse
- NEMA 17 Motors
- Askoppelinge
- Arduino Uno
- Bestuurder DRV8825
- 4x4 matriks sleutelbord
- Vertoon Nokia 5110
- Diverse plastiek dele
- Boute en moere
- Hout basis
- Eksterne 12V kragtoevoer
Stap 2: Oor spindels - wat is dit?
Spindels is elemente van masjiene, soos skroewe. Dit wil sê, dit is reguit stawe wat gevorm word deur drade van deurlopende stappe. Hulle word gebruik in meganismes wat lineêre beweging en posisionering vereis. Hulle kan hoë trek- en drukkragte uitoefen en wringkrag oordra. Hulle laat beweging toe met outomatiese sluiting. Hulle kan van verskillende materiale vervaardig word, aangesien dit die algemeenste aluminium en staal is.
Aangesien Chinese ondernemings die trapeziumvormige spindels vervaardig, stel ek voor dat u hierdie tipe produk in plaas van die bekende moerbout koop. Dit is te danke aan die meer aantreklike prys en die weerstand wat ek as afskuwelik beskou.
Op die foto sit ek die beste spil wat na my mening die sirkulêre balspil is. Dit is gewoonlik gemaak van 'n baie harde staal, en die balle draai om dit, binne -in die kastaiingbruin. Behalwe die groot presisie, beklemtoon ek ook die duursaamheid, aangesien hierdie tipe spil miljarde bewegings kan weergee sonder om die meganisme te beskadig. 'N Goedkoper opsie, wat ons hier gebruik, is die trapeziumspil.
Stap 3: Oor spindels - enkel- en baldrade
Die balspindels, op die foto links, het halfsirkelvormige kanale waar die balle rol. Hulle is relatief duurder en het lae wrywing in vergelyking met enkelskroefspindels, wat lei tot 'n baie hoër opbrengs (rolwrywing).
Die enkeldraadspindels aan die regterkant van die beeld het gewoonlik trapeziumprofiele, aangesien hierdie meetkunde meer geskik is om kragte in die aksiale rigting en gladde bewegingsoordrag uit te oefen. Hulle is relatief goedkoop en het 'n hoë wrywing in vergelyking met sirkulerende balspindels, wat lei tot 'n lae opbrengs, dws glywrywing.
Stap 4: Oor spindels - toepassings
Spindels kan toegepas word op enige meganisme waar lineêre beweging nodig is. Hulle word wyd in die industrie gebruik in masjinerie en prosesse.
Sommige toepassings sluit in:
- Vraghysers
- Perse
- Aarbeie en draaibanke
- CNC toerusting
- Inpakmasjiene
- 3D -drukkers
- Lasersny- en snytoerusting
- Industriële prosesse
- Posisionering en lineêre bewegingsisteme
Stap 5: Oor spindels - parameters
Daar is verskeie eienskappe van 'n spil wat in ag geneem moet word by die ontwerp van 'n meganisme. Benewens sy deursnee en toonhoogte, is dit ook nodig om sy druksterkte, traagheidsmoment (weerstand teen verandering in rotasietoestand), konstruktiewe materiaal, rotasiesnelheid waaraan dit sal onderwerp word, werkingsrigting (horisontaal) of vertikaal), onder meer die toegepaste vrag.
Maar, gebaseer op reeds gekonstrueerde meganismes, kan ons verskeie van hierdie parameters aanvoel.
Kom ons herken 'n paar algemene goed. Kom ons begin met STAP.
Stap 6: Oor spindels - stap (verplasing en snelheid)
Bepaal die lengte van die moer by elke omwenteling. Dit is gewoonlik in mm / omwenteling.
'N As van 2 mm per omwenteling sal 'n verplasing van 2 mm veroorsaak by elke draai wat die spil verrig. Dit sal die lineêre snelheid van die moer beïnvloed, aangesien met die toename van die rotasiesnelheid die aantal omwentelinge per tydseenheid toeneem en gevolglik ook die afgelegde afstand.
As 'n draai van 2 mm per omwenteling teen 60 RPM (een omwenteling per sekonde) draai, beweeg die moer teen 2 mm per sekonde.
Stap 7: Montering
In ons vergadering het ek twee motors en ons sleutelbord met die skerm, wat soos 'n sakrekenaar gelyk het, want ek het 'n omslag daarvoor in die 3D -drukker gemaak. Op die Nokia -skerm het ons die volgende opsies:
F1: Halfmaan - Fuso gaan van die huidige posisie na die posisie wat ek bepaal
F2: Afnemend - Draai
F3: Spoed - Kan ek die polswydte verander
F4: ESC
Stap 8: Montering - materiaal
A - 10 mm lineêre gidse
B - Trapeziumspindels van trappe 2 en 8 mm
C - Boorbasis
D - Laers vir spil
E - Gidshouers
F - Kastanjes
G - laers
H - Koppelings
Ek - enjins
J - Verskeie plastiekonderdele (wysers, enjinhakies, wiggies, sleutelbordondersteuning en vertoning
Stap 9: Samestelling - Stap 01
Na die boor van die basis (C), monteer ons die twee motors (I). Om dit vas te maak, gebruik ons hakies wat in die 3D -drukker (J) gemaak is. Draai nie een van die skroewe in hierdie posisioneringsstap vas nie. Dit sal die nodige aanpassings in die belyningstap moontlik maak.
Stap 10: Samestelling - Stap 02
Plaas steeds die geleidingsrails (E) en die laers (D) terwyl u die basis (C) geboor het. Detail vir die plastiekring (J) wat gebruik word om die hoogtes van die laers aan te pas.
Stap 11: Montering - Stap 03
Ons maak 'n wyser met 'n gedrukte deel om die laer (G) aan die moer (F) te koppel. Ons gebruik twee wysers, een regs en links. Die funksie daarvan is om die posisie op 'n skaal aan te dui wanneer ons die verplasing van die spil wil bepaal.
Stap 12: Samestelling - Stap 04
Steek die geleiding (A) en die spil (B) in hul onderskeie laers (D) en steun (E), oorkant die motor, en steek dan die geleiding en die spil in die laer (G) en kastanje (F) en by die punt van die spil steek ons ook die koppelaar (H) in. Ons neem hulle albei totdat hulle hul finale punte bereik (teenoorgestelde steun en motor).
Draai die skroewe liggies vas om later aan te pas. Herhaal die prosedure met die oorblywende gids en spil. Met al die komponente geposisioneer, voer ons die belyning van die dele uit en voltooi die meganiese samestelling.
Stap 13: Montering - Elektronika
Met 'n gedrukte plastiekhouer het ons die Nokia 5110 -skerm en 'n 4x4 -matriks -bedieningspaneel beveilig. In die onderste ruimte van die staander is die Arduino Uno, die bestuurder DRV8825.
Met behulp van die beskikbare boor in die basis, maak ons die samestelling vas.
Stap 14: Elektriese skema
Die bedradingsdiagram is eenvoudig. Ons het die DRV8825 en dieselfde twee 17 spieëls, dit wil sê dieselfde stap wat ons na die een stuur, gaan na die ander. Wat verander, is dat ek in een van die enjins 'n 8 mm -as het en in die ander een 'n 2 mm -as. Dit is dus duidelik dat die eerste, met 'n 8 mm -as, vinniger gaan. Nog steeds in die diagram is die skerm en die 4x4 -sleutelbord, wat 'n matriks moet wees.
Stap 15: Bronkode
Insluiting van biblioteke en die skep van voorwerpe
Ons het hier 'n Lib wat ek gedoen het, wat StepDriver.h is. Dit is voorberei vir die bestuurders 8825, 4988 en ook die TB6600 -bestuurders. Ek skep in hierdie stap die voorwerp DRV8825, die 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 - Serial clock out (SCLK) // pen 5 - Seriële data uit (DIN) // pen 4 - Data/Command select (D/C) // pin 3 - LCD chip select (CS/CE) // pin 2 - LCD reset (RST) Adafruit_PCD8544 vertoning = Adafruit_PCD8544 (6, 5, 4, 3, 2); // Biblioteca de motor de passo #include // Instansie van bestuurder DRV8825 DRV8825 d1;
Konstante en globale veranderlikes
In hierdie deel van die kode behandel ek die matriks wat ek in 'n ander videoles (LINK KEYBOARD) geleer het. Tog praat ek van die toetspaneelvoorwerp, behalwe afstand en spoed.
const byte LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // define 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 '}}; greep 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, responsável por capturar a tecla pressionada Keyboard customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); // variáveis resposnsáveis por armazenar o valor digitado char customKey; ongetekende lang afstand = 0; ongetekende lang velocidade = 2000;
Sleutelbordleesfunksie
In hierdie stap het ons die kode wat na die skerm verwys, wat die toenemende en afnemende druk laat werk.
// Funcao-antwoorde vir waardevolle gebruike -------------------------------------- --- ongetekende lang lerValor () {// Skep 'n submenu waarin ons geen waarde kan vertoon nie display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (27, 2); display.setTextColor (WIT); display.print ("VALOR"); display.setTextColor (SWART); display.fillRect (0, 24, 21, 11, 2); display.setCursor (2, 26); display.setTextColor (WIT); display.print ("CLR"); display.setTextColor (SWART); display.setCursor (23, 26); display.print ("LIMPAR"); display.fillRect (0, 36, 21, 11, 2); display.setCursor (5, 38); display.setTextColor (WIT); display.print ("F4"); display.setTextColor (SWART); display.setCursor (23, 38); display.print ("VOLTAR"); display.setCursor (2, 14); vertoon.display (); String dapperheid = ""; char tecla = vals;
loop en wag totdat die sleutel ingedruk word
Hier verduidelik ons lusprogrammering, dit wil sê waar u die waardes invoer.
// Lus 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': saak '7': saak '8': saak '9': saak '0': dapperheid = = tecla; display.print (tecla); vertoon.display (); breek; // Sien tecla CLR foi pressionada case 'c': // Limpa a string valor valor = ""; // Gee waarde om display.fillRect (2, 14, 84, 8, 0) te vertoon; display.setCursor (2, 14); vertoon.display (); breek; // Sien tecla ENT foi pressionada case 'e': // Retorna o valor return valor.toInt (); breek; // Se tecla F4 (ESC) foi pressionada case 'D': return -1; verstek: breek; }}} // Limpa o char tecla tecla = vals; }}
Motor ry funksie
In hierdie stap word aan die 'skuif' -funksie gewerk. Ek kry die aantal pulse en die rigting en dan maak ek 'n "vir".
// Funcao reageer deur die motor of die motor -------------------------------------- void mover (ongeteken long pulsos, bool direcao) {for (unsigned long i = 0; i <pulsos; i ++) {d1.motorMove (direcao); }}
stel op ()
Nou skuif ek die skerm en die bestuurderkonfigurasie, en ek sit selfs die pen vas in die bronkode om dit makliker te maak. Ek initialiseer sekere waardes en hanteer die metodes wat die instellings genereer.
ongeldige opstelling () {// Configuracao kan vertoon word ----------------------------------------- -------- display.begin (); display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (SWART); // Configuração do Driver DRV8825 ----------------------------------------- // pin GND - Aktiveer (ENA) // pen 13 - M0 // pen 12 - M1 // pen 11 - M2 // pen 10 - Herstel (RST) // pen 9 - Slaap (SLP) // pen 8 - Stap (STP) // pen 7 - Rigting (DIR) d1.pinConfig (99, 13, 12, 11, 10, 9, 8, 7); d1.slaap (LAAG); d1.reset (); d1.stepPerMm (100); d1.stepPerRound (200); d1.stepConfig (1); d1.motionConfig (50, velocidade, 5000); }
loop () - 1ste deel - Tekenmenu
leegte-lus () {// Skep na menu om programme te vertoon ----------------------------------- vertoon.clearDisplay (); display.fillRect (0, 0, 15, 11, 2); display.setCursor (2, 2); display.setTextColor (WIT); display.print ("F1"); display.setTextColor (SWART); display.setCursor (17, 2); display.print ("CRESCENTE"); display.fillRect (0, 12, 15, 11, 2); display.setCursor (2, 14); display.setTextColor (WIT); display.print ("F2"); display.setTextColor (SWART); display.setCursor (17, 14); display.print ("DECRESCENTE"); display.fillRect (0, 24, 15, 11, 2); display.setCursor (2, 26); display.setTextColor (WIT); display.print ("F3"); display.setTextColor (SWART); display.setCursor (17, 26); display.print ("VELOCIDADE");
loop () - Deel 2 - Tekening spyskaart
display.fillRect (0, 36, 15, 11, 2); display.setCursor (2, 38); display.setTextColor (WIT); display.print ("F4"); display.setTextColor (SWART); display.setCursor (17, 38); display.print ("ESC"); vertoon.display (); bool esc = vals;
loop () - Deel 3 - Hardloop
// Los 'n lus vir 'n tecla F4 (ESC) en druk dit op (terwyl!) // caso alguma tecla foi pressionada if (customKey) {// Trata a tecla apertada switch (customKey) {// Se tecla F1 foi pressionada case 'A': distancia = lerValor (); // Sien ESC foi pressionada if (distancia == -1) {esc = true; } anders {// Skakel na 'Movendo' sonder vertoning display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (WIT); display.print ("MOVENDO"); display.setTextColor (SWART); display.setCursor (2, 14); display.print (distancia); display.print ("Passos"); vertoon.display ();
loop () - Deel 4 - Hardloop
// Skuif na motorverhuizer (distancia, LOW); // Volta ao menu esc = true; } breek; // Se tecla F2 foi pressionada case 'B': distancia = lerValor (); // Sien ESC foi pressionada if (distancia == -1) {esc = true; } anders {// Skakel na 'Movendo' sonder vertoning display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (WIT); display.print ("MOVENDO"); display.setTextColor (SWART); display.setCursor (2, 14); display.print (distancia); display.print ("Passos"); vertoon.display ();
loop () - Deel 5 - Hardloop
// Skuif na motorverhuizer (distancia, HIGH); // Volta ao menu esc = true; } breek; // Sien tecla F3 foi pressionada case 'C': velocidade = lerValor (); as (velocidade == -1) {esc = waar; } anders {// Skakel na 'Velocidade' sonder vertoning display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (12, 2); display.setTextColor (WIT); display.print ("VELOCIDADE"); display.setTextColor (SWART); display.setCursor (2, 14); display.print (velocidade); display.print (char (229)); display.print ("s");
loop () - Deel 6 - Hardloop
display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor (WIT); display.println ("OK!"); display.setTextColor (SWART); vertoon.display (); // Configura nova velocidade ao motor d1.motionConfig (50, velocidade, 5000); vertraging (2000); // Volta ao menu esc = true; } breek; // 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; verstek: breek; }} // Limpa o char customKey customKey = false; }}
Stap 16: Oor spindels - masjienkonfigurasies
In CNC -masjiene soos 3D -drukkers en routers, byvoorbeeld, moet die program wat verantwoordelik is vir die posisionering van beheer, weet hoe die bewegings sal plaasvind as 'n funksie van die aantal pulse wat aan die stapmotor gegee word.
As die stapmotorbestuurder die toepassing van mikrostappe toelaat, moet hierdie konfigurasie in ag geneem word by die berekening van die geplaasde verplasing.
Byvoorbeeld, as 'n 200-stap motor per omwenteling gekoppel is aan 'n aandrywer wat op 1/16 gestel is, dan is 16 x 200 pulse nodig vir 'n enkele omwenteling van die spil, dit wil sê 3200 pulse vir elke omwenteling. As hierdie spil 'n helling van 2 mm per omwenteling het, sal dit 3200 pulse in die aandrywer neem voordat die moer 2 mm beweeg.
Trouens, sagteware -beheerders gebruik dikwels 'n rede om hierdie verhouding, die "aantal pulse per millimeter" of "stappe / mm", te spesifiseer.
Stap 17: Marlin
In Marlin sien ons byvoorbeeld in die afdeling @section motion:
/ **
* Standaard asstappe per eenheid (stappe / mm)
* Oorheers met M92
* X, Y, Z, E0 [, E1 [, E2 [, E3 [, E4]
* /
#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 3200, 100}
In hierdie voorbeeld kan ons tot die gevolgtrekking kom dat die X- en Y -as 'n akkuraatheid van 80 pulse het om 1 mm te beweeg, terwyl die Z 3200 pulse benodig en die ekstruder E0 100 benodig.
Stap 18: GRBL
Hieronder sien ons die GRBL -opsetopdragte. Met die $ 100-opdrag kan ons die aantal pulse aanpas wat nodig is om 'n een-millimeter-offset op die X-as te veroorsaak.
In die onderstaande voorbeeld kan ons sien dat die huidige waarde 250 pulse per mm is.
Die Y- en Z -as kan onderskeidelik $ 101 en $ 102 gestel word.
Aanbeveel:
Met 'n motor en 'n motor met 'n motor: 18 stappe
Hoe kan 'n motor 'n motor gebruik word? Met ander woorde: hoe kan ons 'n motor vir 'n motor gebruik, maar ook vir 'n motor of 'n motor of 'n ander komponent? ons kan dit ook gebruik om elemente te gebruik wat
Hoe om 'n hommeltuig te maak met Arduino UNO - Maak 'n quadcopter met behulp van mikrokontroller: 8 stappe (met foto's)
Hoe om 'n hommeltuig te maak met Arduino UNO | Maak 'n quadcopter met behulp van mikrobeheerder: inleiding Besoek my Youtube -kanaal 'n Drone is 'n baie duur apparaat (produk) om te koop. In hierdie pos gaan ek bespreek hoe ek dit goedkoop kan maak ?? En hoe kan u u eie goedkoop maak teen goedkoop pryse … In Indië is al die materiale (motors, ESC's
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons
Arduino Obstacle Vermy motor met motor: 7 stappe
Arduino Obstacle Vermy motor met motor: Hallo! en welkom by die tutoriaal oor hoe om 'n Arduino -hindernis te vermy. Ons kan begin met die verkryging van die nodige materiaal vir hierdie projek, en ons moet baie pret hê! MATERIAAL: Wire to Male Wires Wires Distance Sensor
Arduino vierwielaangedrewe Bluetooth RC-motor met UNO R3, HC-05 en L293D Motorshield met kodering en Android-app: 8 stappe
Arduino 4-wielaandrywing Bluetooth RC-motor met behulp van UNO R3, HC-05 en L293D Motorshield met kodering en Android-app: Vandag gaan ek u vertel hoe u 'n arduino 4-wiel-aangedrewe bluetooth RC-motor kan maak met behulp van HC 05, L293 motorskerm, 4 DC-motor, met kodering en app vir Android om die motor te bestuur. Gebruikte komponent: -1-Arduino UNO R32-Bluetooth HC-053-Motorshield L293