Мазмұны:

Arduino Uno шпиндельді және қадамдық қозғалтқышы бар: 19 қадам
Arduino Uno шпиндельді және қадамдық қозғалтқышы бар: 19 қадам

Бейне: Arduino Uno шпиндельді және қадамдық қозғалтқышы бар: 19 қадам

Бейне: Arduino Uno шпиндельді және қадамдық қозғалтқышы бар: 19 қадам
Бейне: RAMPS 1.6 - Basics 2024, Шілде
Anonim
Image
Image
Қолданылған ресурстар
Қолданылған ресурстар

Бүгін біз механика мен мехатрониканың өте маңызды пәні туралы сөйлесетін боламыз: машиналардың элементтері. Бұл мақалада біз кейбір қызықты ерекшеліктері мен қосымшалары бар шпиндельдерді арнайы қарастырамыз. Дегенмен, біз шпиндельдің әсерінен қозғалысты есептеудің кейбір әдістерін және сынақ жиынтығын көрсететін боламыз.

Мен төменде құрастыруды жасадым, ол 2 мм және 8 мм шпиндельдің ілгерілеуін көрсетеді. Мен қолданатын TR8 шпиндельдері әдетте кіші маршрутизаторларда және 3D принтерлерде, әсіресе Z осінде қолданылады. Бұл жерде жұмыс істейтін кейбір түсініктерді игере отырып, сіз кез -келген машинаның дизайнын жасай алатындығыңызды есте сақтаңыз.

1 -қадам: Қолданылған ресурстар

  • Трапеция тәрізді шпиндель диаметрі 8 мм және қадамы 2 мм
  • Трапеция тәрізді шпиндель диаметрі 8 мм және қадамы 8 мм
  • 8х2 шпиндельді фланецті каштан
  • 8х8 шпиндельді фланецті каштан
  • Диаметрі 8 мм шпиндельдерге арналған мойынтіректер
  • Сызықтық цилиндрлік бағыттаушы диаметрі 10 мм
  • 10 мм бағыттаушыларға арналған цилиндрлік роликті мойынтіректер
  • 10 мм цилиндрлік бағыттаушыларға арналған кронштейндер
  • NEMA 17 қозғалтқыштары
  • Білік муфталары
  • Ардуино Уно
  • DRV8825 драйвері
  • 4х4 матрицалық пернетақта
  • Nokia 5110 дисплейі
  • Әр түрлі пластикалық бөлшектер
  • Болттар мен жаңғақтар
  • Ағаш негізі
  • Сыртқы 12В қуат көзі

2 -қадам: Шпиндельдер туралы - олар не?

Шпиндельдер туралы - олар не?
Шпиндельдер туралы - олар не?

Шпиндельдер - бұрандалар сияқты машиналардың элементтері. Яғни, олар үздіксіз қадамдардың жіптерінен түзілген түзу жолақтар. Олар сызықтық қозғалыс пен орналасуды қажет ететін механизмдерде қолданылады. Олар жоғары созылу және қысу күштерін қолдана алады және момент жібере алады. Олар автоматты түрде құлыпталатын қозғалысқа мүмкіндік береді. Оларды алюминий мен болаттың ең кең тараған материалдары ретінде әр түрлі материалдардан жасауға болады.

Қытайлық компаниялар трапеция тәрізді шпиндельдерді шығаратындықтан, мен сізге белгілі гайкалы болттың орнына осындай өнім алуды ұсынар едім. Бұл неғұрлым тартымды баға мен тартымдылыққа байланысты, мен оны қорқынышты деп санаймын.

Фотосуретте мен ең жақсы шпиндельді қойдым, менің ойымша, бұл айналмалы шар тәрізді шпиндель. Ол әдетте өте қатты болаттан жасалған, ал шарлар каштанның ішінде айналады. Дәлдіктен басқа, мен төзімділікті бөліп көрсетемін, өйткені бұл шпиндель механизмге зақым келтірмей миллиардтаған қозғалысты жасай алады. Біз қолданатын арзан нұсқа - бұл трапеция тәрізді шпиндель.

3 -қадам: Шпиндельдер туралы - Жалғыз және шарлы жіптер

Шпиндельдер туралы - Жалғыз және шарлы жіптер
Шпиндельдер туралы - Жалғыз және шарлы жіптер

Доптың шпиндельдері, сол жақтағы суретте, шарлар домалайтын жартылай шеңберлі каналдар бар. Олар бір бұрандалы шпиндельдермен салыстырғанда салыстырмалы түрде қымбатырақ және үйкеліс күші төмен, бұл өнімділікті жоғарылатады (домалау үйкелісі).

Кескіннің оң жағындағы бір бұрандалы шпиндельдерде әдетте трапеция тәрізді профильдер болады, өйткені бұл геометрия осьтік бағытта күштерді қолдану мен қозғалыстың бірқалыпты берілуіне сәйкес келеді. Олар салыстырмалы түрде арзан және айналмалы шар тәрізді шпиндельдермен салыстырғанда үйкеліс күші жоғары, бұл өнімділіктің төмен болуына, яғни сырғанау үйкелісіне әкеледі.

4 -қадам: Шпиндельдер туралы - қосымшалар

Шпиндельдер туралы - қосымшалар
Шпиндельдер туралы - қосымшалар

Шпиндельді сызықты қозғалыс қажет кез келген механизмге қолдануға болады. Олар өнеркәсіпте машиналар мен процестерде кеңінен қолданылады.

Кейбір қосымшаларға мыналар жатады:

  • Жүк көтергіштер
  • Басады
  • Құлпынай мен токарь
  • CNC жабдықтары
  • Орау машиналары
  • 3D принтерлері
  • Лазерлік кесу және кесу жабдығы
  • Өндірістік процестер
  • Позициялау және сызықтық қозғалыс жүйелері

5 -қадам: Шпиндельдер туралы - Параметрлер

Шпиндельдер туралы - параметрлер
Шпиндельдер туралы - параметрлер

Шпиндельдің бірнеше сипаттамалары бар, оны механизмді жобалау кезінде ескеру қажет. Оның диаметрі мен қадамынан басқа, оның қысу беріктігін, инерция моментін (айналу күйінің өзгеруіне төзімділігі), конструктивті материалды, айналу жылдамдығын, жұмыс бағытын (көлденең) тану қажет. немесе тік), жүктелген жүктеме, басқалармен қатар.

Бірақ қазірдің өзінде құрастырылған механизмдерге сүйене отырып, біз осы параметрлердің бірнешеуін қабылдай аламыз.

Кейбір ортақ игілікті мойындайық. STEP -тен бастайық.

6 -қадам: Шпиндельдер туралы - қадам (орын ауыстыру және жылдамдық)

Шпиндельдер туралы - қадам (орын ауыстыру және жылдамдық)
Шпиндельдер туралы - қадам (орын ауыстыру және жылдамдық)

Жаңғақтың әр айналымда жүріп өткен ұзындығын анықтайды. Бұл әдетте мм / революцияда болады.

Айналу кезінде 2 мм шпиндель шпиндельдің әр бұрылысында 2 мм ығысуына әкеледі. Бұл гайканың сызықтық жылдамдығына әсер етеді, өйткені айналу жылдамдығының жоғарылауымен уақыт бірлігінде айналу саны артады, демек, жүріп өткен қашықтық.

Егер бір айналымға 2 мм айналу 60 айн / мин айналса (секундына бір айналым), гайка секундына 2 мм жылдамдықпен қозғалады.

7 -қадам: құрастыру

Ассамблея
Ассамблея
Ассамблея
Ассамблея

Біздің жиналыста менде екі қозғалтқыш пен дисплейі бар клавиатура бар, олар калькуляторға ұқсайды, себебі мен оларға 3D принтерде мұқаба жасадым. Nokia дисплейінде келесі опциялар бар:

F1: Жарты ай - Фусо ағымдағы орнынан мен анықтайтын орынға өтеді

F2: кему - бұрылу

F3: Жылдамдық - Импульстің енін өзгерте аламын ба?

F4: ESC

8 -қадам: монтаж - материалдар

Монтаж - материалдар
Монтаж - материалдар

A - 10 мм сызықтық бағыттағыштар

В - 2 және 8мм қадамдардың трапеция тәрізді шпиндельдері

C - бұрғылау негізі

D - шпиндельдерге арналған мойынтіректер

E - бағыттаушылар

F - каштан

G - мойынтіректер

H - муфталар

Мен - қозғалтқыштар

J - Әр түрлі пластикалық бөлшектер (курсорлар, қозғалтқыш кронштейндері, сыналар, пернетақта тірегі мен дисплей

9 -қадам: құрастыру - 01 -қадам

Жинау - 01 қадам
Жинау - 01 қадам

Негізді бұрғылаудан кейін (C) біз екі қозғалтқышты (I) жинаймыз. Оларды бекіту үшін біз 3D принтерде (J) жасалған жақшаларды қолданамыз. Орналастырудың бұл қадамында бұрандаларды қатайтпаңыз. Бұл туралау қадамында қажетті түзетулер жасауға мүмкіндік береді.

10 -қадам: Жинау - 02 -қадам

Жинау - 02 қадам
Жинау - 02 қадам

Негізді бұрғылауды (C) жалғастыра отырып, бағыттаушы рельстерді (E) және мойынтіректерді (D) орналастырыңыз. Подшипниктердің биіктігін реттеу үшін пайдаланылатын пластикалық шым (J) үшін бөлшектер.

11 -қадам: монтаждау - 03 -қадам

Монтаж - 03 қадам
Монтаж - 03 қадам

Біз мойынтіректі (G) гайкаға (F) қосу үшін басылған бөлікті пайдаланып курсор жасаймыз. Біз екі курсорды қолдандық, бір оң, екіншісі сол жақта. Оның функциясы - шпиндельдің әсерінен орын ауыстыруды анықтағымыз келген кезде шкала бойынша орынды көрсету.

12 -қадам: құрастыру - 04 -қадам

Жинау - 04 қадам
Жинау - 04 қадам
Жинау - 04 қадам
Жинау - 04 қадам

Бағыттаушыны (A) және шпиндельді (B) қозғалтқышқа қарама -қарсы подшипникке (D) және тірекке (E) салыңыз, содан кейін бағыттағыш пен шпиндельді мойынтірекке (G) және каштанға (F) және шпиндельдің ұшына біз қосқышты (H) енгіземіз. Біз олардың екеуін де соңғы нүктеге жеткенше қабылдаймыз (қарама -қарсы тірек пен қозғалтқыш).

Кейінірек реттеу үшін бұрандаларды аздап қатайтыңыз. Қалған бағыттағыш пен шпиндельді қолданып процедураны қайталаңыз. Барлық компоненттер орналастырылған кезде біз бөлшектерді туралауды орындаймыз, механикалық құрастыру кезеңін аяқтаймыз.

13 -қадам: монтаж - электроника

Монтаж - электроника
Монтаж - электроника
Монтаж - электроника
Монтаж - электроника
Монтаж - электроника
Монтаж - электроника

Басып шығарылған пластик ұстағышты қолдана отырып, біз Nokia 5110 дисплейі мен 4x4 матрицалық пернетақтаны бекіттік. Стендтің төменгі кеңістігінде DRV8825 жүргізушісі Arduino Uno орналасады.

Негізде бар бұрғылауды қолдана отырып, біз торапты бекітеміз.

14 -қадам: Электр схемасы

Электр схемасы
Электр схемасы

Қосылу схемасы қарапайым. Бізде DRV8825 және сол екі 17 айна бар, яғни біз бір қадамға жіберген қадам екіншісіне өтеді. Қандай өзгерістер - қозғалтқыштардың бірінде менде 8 мм, екіншісінде 2 мм. Біріншісі 8 мм шпиндельмен жылдамырақ жүретіні анық. Диаграммада дисплей мен 4x4 пернетақта бар, ол матрицалық болуы керек.

15 -қадам: бастапқы код

Кітапханаларды қосу және объектілерді құру

Бізде бұл жерде LibD бар, ол StepDriver.h. Ол 8825, 4988, сондай -ақ TB6600 драйверлері үшін дайындалған. Мен бұл қадамда DRV8825, d1 нысанын жасаймын.

// Библиотеканың жауаптары басылғаннан кейін басу керек емес #қосу // Библиотеканың жауаптары графикті көрсетеді #қосу // Библиотеканың жауаптары дисплейде #include // Дисплейде конфигурация // түйреуіш 6 - Сериялық сағат [SCLK] // pin 5 - Сериялық деректерді шығару (DIN) // түйреуіш 4 - Деректер/Команданы таңдау (D/C) // түйреуіш 3 - СКД чипін таңдау (CS/CE) // түйреуіш 2 - СКД қалпына келтіру (RST)) Adafruit_PCD8544 дисплейі = Adafruit_PCD8544 (6, 5, 4, 3, 2); // Biblioteca de motor de passo #include // Instancia немесе драйвер DRV8825 DRV8825 d1;

Тұрақтылар мен жаһандық айнымалылар

Кодтың бұл бөлігінде мен басқа видео сабақта (LINK KEYBOARD) үйреткен матрицаны өңдеймін. Дегенмен мен қашықтық пен жылдамдықтан басқа пернетақта объектісі туралы айтып отырмын.

const байт LINHAS = 4; // линолар байт COLUNAS = 4; // бір күндік тәжірибе // симболды анықтау SIMBOLOS [LINHAS] [COLUNAS] = {{'A', '1', '2', '3'}, { 'B', '4', '5', '6'}, {'C', '7', '8', '9'}, {'D', 'c', '0', 'e '}}; байт PINOS_LINHA [LINHAS] = {A2, A3, A4, A5}; // pinos que indicam ретінде байт PINOS_COLUNA [COLUNAS] = {0, 1, A0, A1}; // түйіндер бір -бірімен байланысқан кезде // пернелер тіркесімі, жауаптар мен пернелер тіркесімі пернетақта customKeypad = пернетақта (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); // әр түрлі тапсырмаларды орындау кезінде customKey; белгісіз ұзақ қашықтық = 0; қол қойылмаған ұзын жылдамдық = 2000;

Пернетақтаны оқу функциясы

Бұл қадамда бізде дисплейге қатысты код бар, ол көбейіп және азайып келе жатқан басып шығарумен жұмыс істейді.

// Funcao Responsavel for us lor o valor do usuario pelo teclado -------------------------------------- --- unsigned long lerValor () {// Escreve o submenu que coleta os valores display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (27, 2); display.setTextColor (АҚ); display.print («VALOR»); display.setTextColor (ҚАРА); display.fillRect (0, 24, 21, 11, 2); display.setCursor (2, 26); display.setTextColor (АҚ); display.print («CLR»); display.setTextColor (ҚАРА); display.setCursor (23, 26); display.print («LIMPAR»); display.fillRect (0, 36, 21, 11, 2); display.setCursor (5, 38); display.setTextColor (АҚ); display.print («F4»); display.setTextColor (ҚАРА); display.setCursor (23, 38); display.print («VOLTAR»); display.setCursor (2, 14); display.display (); Жолдық ерлік = «»; char tecla = жалған;

перне басылғанша күтеді

Мұнда біз Loop бағдарламалауын, яғни мәндерді енгізетін жерді түсіндіреміз.

// Loop infinito enquanto nao chamar o return (1) {tecla = customKeypad.getKey (); if (tecla) {коммутатор (tecla) {// Сыныпта 0 -ден 9 -ға дейін «1» жағдай: «2» жағдайы: «3» жағдайы: «4» жағдайы: «5» жағдайы: «6» жағдайы: жағдай '7': жағдай '8': жағдай '9': жағдай '0': ерлік += tecla; display.print (tecla); display.display (); үзіліс; // «c» әрпін басу арқылы CLR жазыңыз: // Ерлік мәні = «»; // Apaga o valor do display display.fillRect (2, 14, 84, 8, 0); display.setCursor (2, 14); display.display (); үзіліс; // «E» жағдайында ENT енгізіңіз: // Retorna or valor return valor.toInt (); үзіліс; // «D» жағдайында F4 (ESC) басылымы: қайтару -1; әдепкі: үзіліс; }} // Limpa o char tecla tecla = false; }}

Қозғалтқыштың функциясы

Бұл қадамда «жылжыту» функциясы жұмыс істейді. Мен импульс санын және бағытын аламын, содан кейін мен «for» жасаймын.

// Funcao Responsavel қозғалтқышы немесе қозғалтқышы ---------------------------------------- long pulsos, bool direcao) {for (белгісіз ұзақ i = 0; i <pulsos; i ++) {d1.motorMove (direcao); }}

орнату ()

Енді мен дисплей мен драйвер конфигурациясын жылжытамын, тіпті оны жеңілдету үшін бастапқы кодтың ішіне түйреуіш қойдым. Мен белгілі бір мәндерді инициализациялаймын және параметрлерді жасайтын әдістермен айналысамын.

void setup () {// Configuracao do display ---------------------------------------- -------- көрсету.begin (); display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (ҚАРА); // DRV8825 драйверін конфигурациялау ----------------------------------------- // пин GND - Қосу (ENA) // түйреуіш 13 - M0 // 12 түйреуіш - M1 // түйреуіш 11 - M2 // түйреуіш 10 - Қалпына келтіру (RST) // түйреуіш 9 - Ұйқы (SLP) // түйреуіш 8 - Қадам (STP)) // пин 7 - Бағыт (DIR) d1.pinConfig (99, 13, 12, 11, 10, 9, 8, 7); d1.ұйықтау (төмен); d1.reset (); d1.stepPerMm (100); d1.stepPerRound (200); d1.stepConfig (1); d1.motionConfig (50, velocidade, 5000); }

loop () - 1 -бөлім - Сурет мәзірі

void loop () {// Escreve o Menu do Programa Programa жоқ ----------------------------------- дисплей.clearDisplay (); display.fillRect (0, 0, 15, 11, 2); display.setCursor (2, 2); display.setTextColor (АҚ); display.print («F1»); display.setTextColor (ҚАРА); display.setCursor (17, 2); display.print («CRESCENTE»); display.fillRect (0, 12, 15, 11, 2); display.setCursor (2, 14); display.setTextColor (АҚ); display.print («F2»); display.setTextColor (ҚАРА); display.setCursor (17, 14); display.print («DECRESCENTE»); display.fillRect (0, 24, 15, 11, 2); display.setCursor (2, 26); display.setTextColor (АҚ); display.print («F3»); display.setTextColor (ҚАРА); display.setCursor (17, 26); display.print («VELOCIDADE»);

loop () - 2 -бөлім - Сурет мәзірі

display.fillRect (0, 36, 15, 11, 2); display.setCursor (2, 38); display.setTextColor (АҚ); display.print («F4»); display.setTextColor (ҚАРА); display.setCursor (17, 38); display.print («ESC»); display.display (); bool esc = жалған;

цикл () - 3 -бөлім - Жүгіру

// Loop enquanto a tecla F4 (ESC) nao for pressionada while (! Esc) {// басу және басу кезінде customKey = customKeypad.getKey (); // егер (customKey) {// акадада ауысу (customKey) {/трансляциялау кезінде «А» әрпін басу керек болса: distancia = lerValor (); // ESC батырмасын басыңыз, егер (distancia == -1) {esc = true; } else {// «Movendo» дисплейі жоқ экраннан шығыңыз.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (АҚ); display.print («MOVENDO»); display.setTextColor (ҚАРА); display.setCursor (2, 14); display.print (дистанция); display.print («Passos»); display.display ();

цикл () - 4 -бөлім - Жүгіру

// Қозғалтқыш немесе қозғалтқыш (distancia, LOW); // Volta ao мәзірі esc = true; } үзіліс; // «B» жағдайындағы F2 басылымы: distancia = lerValor (); // ESC батырмасын басыңыз, егер (distancia == -1) {esc = true; } else {// «Movendo» дисплейі жоқ экраннан шығыңыз.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (АҚ); display.print («MOVENDO»); display.setTextColor (ҚАРА); display.setCursor (2, 14); display.print (дистанция); display.print («Passos»); display.display ();

цикл () - 5 -бөлім - Жүгіру

// Қозғалтқыш қозғалтқышы (distancia, HIGH); // Volta ao мәзірі esc = true; } үзіліс; // «C» жағдайындағы F3 басылымы: velocidade = lerValor (); егер (velocidade == -1) {esc = true; } else {// «Velocidade» дисплейі жоқ. Escreve the display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (12, 2); display.setTextColor (АҚ); display.print («VELOCIDADE»); display.setTextColor (ҚАРА); display.setCursor (2, 14); display.print (velocidade); display.print (char (229)); display.print («s»);

цикл () - 6 -бөлім - Жүгіру

display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor (АҚ); display.println («Жарайды!»); display.setTextColor (ҚАРА); display.display (); // Configura nova velocidade ao motor d1.motionConfig (50, velocidade, 5000); кешіктіру (2000); // Volta ao мәзірі esc = true; } үзіліс; // «D» баспа жағдайындағы F4 (ESC) баспа нұсқасы: // «с» жағдайында CLR басылымы: // «e» жағдайында ENT басу: // Volta ao мәзірі esc = true; әдепкі: үзіліс; }} // Limpa o char customKey customKey = false; }}

16 -қадам: Шпиндельдер туралы - Машина конфигурациялары

Шпиндельдер туралы - Машина конфигурациялары
Шпиндельдер туралы - Машина конфигурациялары

Мысалы, 3D принтерлер мен маршрутизаторлар сияқты CNC машиналарында, орналасуды басқаруға жауапты бағдарлама қадамдық қозғалтқышқа берілетін импульстер санына байланысты қозғалыстардың қалай болатынын білуі қажет.

Егер қадамдық мотор драйвері микро қадамдарды қолдануға мүмкіндік берсе, онда бұл конфигурация өндірілген орын ауыстыруды есептеу кезінде ескерілуі керек.

Мысалы, егер бір айналымға 200 қадамдық қозғалтқыш 1/16 орнатылған драйверге қосылса, онда шпиндельдің бір айналымы үшін 16 х 200 импульс қажет болады, яғни әр айналым үшін 3200 импульс. Егер бұл шпиндельде бір айналымда 2 мм қадам болса, онда гайка 2 мм қозғалуы үшін драйверде 3200 импульс қажет болады.

Іс жүзінде, бағдарламалық қамтамасыз ету контроллері бұл коэффициентті «миллиметрге импульстар саны» немесе «қадамдар / мм» деп көрсету үшін жиі себептерді пайдаланады.

17 -қадам: Марлин

Марлин
Марлин

Мысалы, Марлинде @бөлімнің қозғалысын көреміз:

/ **

* Бірлікке сәйкес осьтік қадамдар (қадамдар / мм)

* M92 көмегімен ауыстыру

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

* /

#DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 3200, 100} анықтаңыз

Бұл мысалда біз X және Y осьтерінде 1 мм қозғалу үшін 80 импульстік дәлдік бар деп қорытынды жасауға болады, ал Z - 3200 импульсті қажет етеді, ал E0 экструдерінде - 100 қажет.

18 -қадам: GRBL

GRBL
GRBL

Төменде GRBL конфигурация командаларын көреміз. $ 100 командасымен біз X осінде бір миллиметрлік ығысуды тудыратын импульстар санын реттей аламыз.

Төмендегі мысалда біз ағымдағы мән мм -ге 250 импульс екенін көре аламыз.

Y және Z осьтерін сәйкесінше $ 101 және $ 102 деңгейінде орнатуға болады.

Ұсынылған: