İçindekiler:
- Adım 1: Kullanılan Kaynaklar
- Adım 2: İğler Hakkında - Bunlar Nelerdir?
- 3. Adım: Mil Hakkında - Tekli ve Bilyalı Dişler
- 4. Adım: Mil Hakkında - Uygulamalar
- Adım 5: Mil Hakkında - Parametreler
- Adım 6: Mil Hakkında - Adım (yer değiştirme ve Hız)
- Adım 7: Montaj
- Adım 8: Montaj - Malzemeler
- Adım 9: Montaj - Adım 01
- Adım 10: Montaj - Adım 02
- Adım 11: Montaj - Adım 03
- Adım 12: Montaj - Adım 04
- Adım 13: Montaj - Elektronik
- Adım 14: Elektrik Şeması
- Adım 15: Kaynak Kodu
- Adım 16: Mil Hakkında - Makine Konfigürasyonları
- Adım 17: Marlin
- Adım 18: GRBL
- 19. Adım: Çalışmamın Daha Fazlasını Gör:
Video: Mil ve Adım Motorlu Arduino Uno: 19 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bugün mekanik ve mekatronikte çok önemli bir konudan bahsedeceğiz: makinelerin elemanları. Bu yazıda, bazı ilginç özellikler ve uygulamalar içeren iğleri özel olarak ele alacağız. Yine de, bir milin neden olduğu hareketi hesaplamanın bazı yollarını göstereceğiz ve bir test düzeneği sunacağız.
Aşağıdaki montajı yaptım, bu nedenle 2mm ve 8mm'lik bir milin ilerlemesini ortaya koyuyor. Kullandığım bu TR8 iğleri, özellikle Z ekseninde küçük yönlendiricilerde ve 3D yazıcılarda yaygın olarak kullanılmaktadır. Burada üzerinde çalışacağımız bazı kavramlara hakim olarak her türlü makineyi tasarlayabileceğinizi unutmayın.
Adım 1: Kullanılan Kaynaklar
- 8 mm çapında ve 2 mm hatveli trapez mil
- 8 mm çapında ve 8 mm hatveli trapez mil
- 8x2 milli flanşlı kestane
- 8x8 milli flanşlı kestane
- 8 mm çaplı miller için rulmanlar
- 10 mm çapında lineer silindirik kılavuz
- 10 mm kılavuzlar için silindirik makaralı rulmanlar
- 10 mm silindirik kılavuzlar için braketler
- NEMA 17 Motorlar
- Mil kaplinleri
- Arduino Uno
- Sürücü DRV8825
- 4x4 matris klavye
- Nokia 5110'u göster
- Çeşitli plastik parçalar
- Cıvata ve somun
- Ahşap taban
- Harici 12V güç kaynağı
Adım 2: İğler Hakkında - Bunlar Nelerdir?
Miller, vidalar gibi makinelerin elemanlarıdır. Yani, sürekli adımlardan oluşan düz çubuklardır. Doğrusal hareket ve konumlandırma gerektiren mekanizmalarda kullanılırlar. Yüksek çekme ve basma kuvvetleri uygulayabilir ve torku iletebilirler. Otomatik kilitleme ile harekete izin verirler. En yaygın alüminyum ve çelik olmak üzere farklı malzemelerden yapılabilirler.
Çinli firmalar trapez milleri ürettiği için bilinen somun cıvata yerine bu tür bir ürünü almanızı öneririm. Bunun nedeni, daha cazip fiyat ve iğrenç olduğunu düşündüğüm sürtünme.
Fotoğrafa en iyi mili koydum, bence bu döner bilyeli mil. Genellikle çok sert bir çelikten yapılır ve toplar kestanenin içinde onun etrafında döner. Mükemmel hassasiyetin yanı sıra, bu tür bir iş mili mekanizmaya zarar vermeden milyarlarca hareketi yeniden üretebildiğinden, dayanıklılığı da vurguluyorum. Burada kullandığımız daha ucuz bir seçenek trapez mildir.
3. Adım: Mil Hakkında - Tekli ve Bilyalı Dişler
Soldaki fotoğraftaki bilyalı miller, bilyelerin yuvarlandığı yarım daire biçimli kanallara sahiptir. Tek vidalı millere kıyasla nispeten daha pahalıdırlar ve düşük sürtünmeye sahiptirler, bu da çok daha yüksek bir verim (yuvarlanma sürtünmesi) sağlar.
Görüntünün sağ tarafındaki tek dişli miller genellikle yamuk profillere sahiptir, çünkü bu geometri eksenel yönde kuvvet uygulamak ve hareketin düzgün iletimi için daha uygundur. Nispeten ucuzdurlar ve devridaim yapan bilyalı iğlere kıyasla yüksek sürtünmeye sahiptirler, bu da düşük bir verime, yani kayma sürtünmesine yol açar.
4. Adım: Mil Hakkında - Uygulamalar
İğler, doğrusal hareketin gerekli olduğu herhangi bir mekanizmaya uygulanabilir. Endüstride makine ve proseslerde yaygın olarak kullanılmaktadırlar.
Bazı uygulamalar şunları içerir:
- Kargo asansörleri
- Presler
- Çilek ve torna tezgahları
- CNC Ekipmanları
- Sarma Makinaları
- 3D Yazıcılar
- Lazer Kesim ve Kesim Ekipmanları
- Endüstriyel işlemler
- Konumlandırma ve doğrusal hareket sistemleri
Adım 5: Mil Hakkında - Parametreler
Bir mekanizma tasarlanırken dikkate alınması gereken bir iş milinin birkaç özelliği vardır. Çapına ve adımına ek olarak, basınç dayanımını, atalet momentini (dönme durumundaki değişime direnç), yapıcı malzemeyi, maruz kalacağı dönme hızını, çalışma yönünü (yatay) tanımak gerekir. veya dikey), uygulanan yük, diğerleri arasında.
Ancak, önceden oluşturulmuş mekanizmalara dayanarak, bu parametrelerin birçoğunu sezebiliriz.
Bazı ortak yararları tanıyalım. STEP ile başlayalım.
Adım 6: Mil Hakkında - Adım (yer değiştirme ve Hız)
Somunun her devirde kat ettiği uzunluğu belirler. Bu genellikle mm/devir cinsindendir.
Devir başına 2 mm'lik bir iş mili, iş milinin gerçekleştirdiği her dönüşte 2 mm'lik bir yer değiştirmeye neden olacaktır. Somunun lineer hızını etkileyecektir, çünkü dönme hızının artmasıyla birim zaman başına devir sayısı ve dolayısıyla kat edilen mesafe de artacaktır.
Devir başına 2 mm'lik bir dönüş 60 RPM'de (saniyede bir devir) dönüyorsa, somun saniyede 2 mm hareket edecektir.
Adım 7: Montaj
Montajımızda iki motorum var ve ekranlı klavyemiz hesap makinesine benziyor çünkü 3D yazıcıda onlar için bir kapak yaptım. Nokia ekranında aşağıdaki seçeneklere sahibiz:
F1: Hilal - Fuso mevcut konumdan belirlediğim konuma gider
F2: Azalan - Dönüş
F3: Hız - Darbe genişliğini değiştirebilir miyim
F4: ESC
Adım 8: Montaj - Malzemeler
A - 10mm Lineer Kılavuzlar
B - Adım 2 ve 8 mm'lik trapez miller
C - Sondaj Tabanı
D - Mil yatakları
E - Kılavuz tutucular
F - Kestane
G - Rulmanlar
H - Kaplinler
I - Motorlar
J - Çeşitli plastik parçalar (imleçler, motor braketleri, takozlar, klavye desteği ve ekran
Adım 9: Montaj - Adım 01
Tabanın (C) delinmesinin ardından iki motoru (I) monte ediyoruz. Onları sabitlemek için 3D yazıcıda (J) yapılan braketleri kullanıyoruz. Bu konumlandırma adımında vidaların hiçbirini sıkmayın. Bu, hizalama adımında gerekli ayarlamalara izin verecektir.
Adım 10: Montaj - Adım 02
Hala tabanın (C) delinmesini takiben, kılavuz rayları (E) ve yatakları (D) konumlandırın. Yatakların yüksekliklerini ayarlamak için kullanılan plastik şimin (J) detayı.
Adım 11: Montaj - Adım 03
Yatağı (G) somuna (F) bağlamak için basılı bir parça kullanarak bir imleç oluşturuyoruz. Biri sağ diğeri sol olmak üzere iki imleç kullandık. İşlevi, iş milinin neden olduğu yer değiştirmeyi belirlemek istediğimizde bir ölçekte konumu belirtmektir.
Adım 12: Montaj - Adım 04
Kılavuzu (A) ve mili (B) ilgili yataklarına (D) ve desteğine (E) motorun karşısına yerleştirin, ardından kılavuzu ve mili yatağa (G) ve kestanenin (F) içine ve milin ucuna da kuplörü (H) yerleştiriyoruz. Her ikisini de son noktalarına (karşı destek ve motor) ulaşana kadar alıyoruz.
Daha sonra ayarlamaya izin vermek için vidaları hafifçe sıkın. Kalan kılavuzu ve mili kullanarak prosedürü tekrarlayın. Tüm bileşenlerin konumlandırılması ile parçaların hizalanmasını gerçekleştirerek mekanik montaj aşamasını tamamlıyoruz.
Adım 13: Montaj - Elektronik
Basılı bir plastik tutucu kullanarak Nokia 5110 ekranını ve 4x4 matris tuş takımını sabitledik. Standın alt kısmında DRV8825 sürücüsü Arduino Uno bulunacak.
Tabandaki mevcut deliği kullanarak montajı sabitleriz.
Adım 14: Elektrik Şeması
Bağlantı şeması basittir. DRV8825 ve aynı iki 17 aynamız var, yani birine gönderdiğimiz aynı adım diğerine gidiyor. Değişen şu ki, motorlardan birinde 8 mm iğ ve diğerinde 2 mm iğ olması. O halde, 8 mm iğ ile ilkinin daha hızlı gittiği açıktır. Yine şemada ekran ve matris olması gereken 4x4 klavye var.
Adım 15: Kaynak Kodu
Kütüphanelerin dahil edilmesi ve nesnelerin oluşturulması
Burada benim yaptığım, StepDriver.h olan bir Lib var. 8825, 4988 ve ayrıca TB6600 sürücüleri için hazırlanmıştır. Bu adımda DRV8825 nesnesini, d1'i oluşturuyorum.
//Biblioteca yanıtları ve tecla que foi pressionada no teclado#include //Biblioteca yanıtları ve pelos graficos gösterimi #include //Biblioteca yanıtları gösterimi #include // Pino saatini yapılandırma // Ekran çıkışını yapılandırma // Serial (SCLK) // pin 5 - Seri veri çıkışı (DIN) // pin 4 - Veri/Komut seçimi (D/C) // pin 3 - LCD çip seçimi (CS/CE) // pin 2 - LCD sıfırlama (RST)) Adafruit_PCD8544 ekranı = Adafruit_PCD8544(6, 5, 4, 3, 2); //Biblioteca de motor de passo #include //Instancia veya DRV8825 DRV8825 d1 sürücüsü;
Sabitler ve global değişkenler
Kodun bu bölümünde, başka bir video derste (LINK KLAVYE) öğrettiğim matrisi ele alıyorum. Yine de, mesafe ve hızın yanı sıra Keypad nesnesinden bahsediyorum.
const bayt LINHAS = 4; // número de linhas, tecladoconst byte COLUNAS = 4; // teclado'daki tek sütun sayısı // 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 '} }; bayt PINOS_LINHA[LINHAS] = {A2, A3, A4, A5}; //pinos que indicam as linhas do teclado byte PINOS_COLUNA[COLUNAS] = {0, 1, A0, A1}; //Teclado olarak pinos que indicam // Tuş Takımı, yanıtlama ve yakalama özelliği Tuş Takımı özelKeypad = Tuş takımı(makeKeymap(SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); //değişkenler, armazenar veya valor digitado char customKey'e göre değişir; işaretsiz uzun mesafe = 0; işaretsiz uzun hız = 2000;
Klavye okuma işlevi
Bu adımda, artan ve azalan baskıyı yapan ekrana atıfta bulunan kodumuz var.
//Funcao'nun yanıtları, u usuario pelo teclado do valor do valor ------------------------------------ ---unsigned uzun lerValor() { //Altmenüye girme, coleta os değer görüntüleme yok display.clearDisplay(); display.fillRect(0, 0, 84, 11, 2); display.setCursor(27, 2); display.setTextColor(BEYAZ); display.print("VALOR"); display.setTextColor(SİYAH); display.fillRect(0, 24, 21, 11, 2); display.setCursor(2, 26); display.setTextColor(BEYAZ); display.print("CLR"); display.setTextColor(SİYAH); display.setCursor(23, 26); display.print("LİMPAR"); display.fillRect(0, 36, 21, 11, 2); display.setCursor(5, 38); display.setTextColor(BEYAZ); display.print("F4"); display.setTextColor(SİYAH); display.setCursor(23, 38); display.print("VOLTAR"); display.setCursor(2, 14); display.display(); dize değeri = ""; char tecla = yanlış;
basılan tuşu bekleyen döngü
Burada Döngü programlamayı, yani değerleri girdiğiniz yeri açıklıyoruz.
//döngü sonsuz enquanto nao chamar o dönüş while (1) { tecla = customKeypad.getKey(); if (tecla) { switch (tecla) { //se teclas de 0 a 9 forem pressionadas durum '1': durum '2': durum '3': durum '4': durum '5': durum '6': durum '7': durum '8': durum '9': durum '0': değer += tecla; display.print(tecla); display.display(); kırmak; //Tecla CLR foi pressionada case 'c': //Limpa a string valor valor = ""; //Apaga veya valor do display.fillRect(2, 14, 84, 8, 0); display.setCursor(2, 14); display.display(); kırmak; //Tecla ENT foi pressionada case 'e': //Retorna veya valor return valor.toInt(); kırmak; //Se tecla F4 (ESC) foi pressionada case 'D': return -1; varsayılan: ara; } } //Limpa o char tecla tecla = yanlış; } }
Motor sürücü işlevi
Bu adımda "hareket" işlevi üzerinde çalışılır. Darbelerin sayısını ve yönünü alıyorum ve sonra bir "için" yapıyorum.
//Motor veya motora yanıt veren işlevler --------------------------------------void mover(imzasız) long pulsos, bool direcao) { for (unsigned long i = 0; i < pulsos; i++) { d1.motorMove(direcao); } }
kurmak ()
Şimdi ekranı ve sürücü yapılandırmasını hareket ettiriyorum ve hatta bunu kolaylaştırmak için sabitlemeyi kaynak kodun içine yerleştirdim. Belirli değerleri başlatırım ve ayarları oluşturan yöntemlerle ilgilenirim.
void setup() { //Konfigürasyon yapılandırması ---------------------------------------- -------- display.begin(); display.setContrast(50); display.clearDisplay(); display.setTextSize(1); display.setTextColor(SİYAH); // Sürücü DRV8825'i Yapılandırma ----------------------------------------- // pin GND - Etkinleştir (ENA) // pin 13 - M0 // pin 12 - M1 // pin 11 - M2 // pin 10 - Reset (RST) // pin 9 - Uyku (SLP) // pin 8 - Adım (STP)) // pin 7 - Yön (DIR) d1.pinConfig(99, 13, 12, 11, 10, 9, 8, 7); d1.uyku(DÜŞÜK); d1.sıfırla(); d1.stepPerMm(100); d1.stepPerRound(200); d1.stepConfig(1); d1.motionConfig(50, hızlanma, 5000); }
loop () - 1. kısım - Çizim menüsü
void loop() { //Escreve o Menu do Programa görüntüleme yok ----------------------------------- göster.clearDisplay(); display.fillRect(0, 0, 15, 11, 2); display.setCursor(2, 2); display.setTextColor(BEYAZ); display.print("F1"); display.setTextColor(SİYAH); display.setCursor(17, 2); display.print("HİLAL"); display.fillRect(0, 12, 15, 11, 2); display.setCursor(2, 14); display.setTextColor(BEYAZ); display.print("F2"); display.setTextColor(SİYAH); display.setCursor(17, 14); display.print("AZALMA"); display.fillRect(0, 24, 15, 11, 2); display.setCursor(2, 26); display.setTextColor(BEYAZ); display.print("F3"); display.setTextColor(SİYAH); display.setCursor(17, 26); display.print("VELOCIDADE");
loop () - Bölüm 2 - Çizim menüsü
display.fillRect(0, 36, 15, 11, 2); display.setCursor(2, 38); display.setTextColor(BEYAZ); display.print("F4"); display.setTextColor(SİYAH); display.setCursor(17, 38); display.print("ESC"); display.display(); bool esc = yanlış;
döngü () - Bölüm 3 - Koşu
// pressionada için enquanto a tecla F4 (ESC) nao while (!esc) { // teclado do tecla pressionada captura 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(); //Se tecla ESC foi pressionada if (distancia == -1) { esc = true; } else { //Escreve a tela "Movendo" görüntü yok display.clearDisplay(); display.fillRect(0, 0, 84, 11, 2); display.setCursor(21, 2); display.setTextColor(BEYAZ); display.print("MOVENDO"); display.setTextColor(SİYAH); display.setCursor(2, 14); display.print(uzaklık); display.print("Pass"); display.display();
döngü () - Bölüm 4 - Koşu
//Motor taşıyıcısını hareket ettirin(mesafe, LOW); //Volta ao menüsü esc = doğru; } kırmak; //Se tecla F2 foi pressionada case 'B': distancia = lerValor(); //Se tecla ESC foi pressionada if (distancia == -1) { esc = true; } else { //Escreve a tela "Movendo" görüntü yok display.clearDisplay(); display.fillRect(0, 0, 84, 11, 2); display.setCursor(21, 2); display.setTextColor(BEYAZ); display.print("MOVENDO"); display.setTextColor(SİYAH); display.setCursor(2, 14); display.print(uzaklık); display.print("Pass"); display.display();
döngü () - Bölüm 5 - Koşu
//Motor hareket ettiricisini hareket ettir(mesafe, YÜKSEK); //Volta ao menüsü esc = doğru; } kırmak; //Se tecla F3 foi pressionada case 'C': velocidade = lerValor(); if (velocidade == -1) { esc = true; } else { //Escreve a tela "Velocidade" görüntü yok display.clearDisplay(); display.fillRect(0, 0, 84, 11, 2); display.setCursor(12, 2); display.setTextColor(BEYAZ); display.print("VELOCIDADE"); display.setTextColor(SİYAH); display.setCursor(2, 14); display.print(velocidade); display.print(char(229)); display.print("s");
döngü () - Bölüm 6 - Koşu
display.fillRect(31, 24, 21, 11, 2); display.setCursor(33, 26); display.setTextColor(BEYAZ); display.println("Tamam!"); display.setTextColor(SİYAH); display.display(); //Motor için nova velocidade yapılandırması d1.motionConfig(50, velocidade, 5000); gecikme(2000); //Volta ao menüsü esc = doğru; } kırmak; //Tecla F4 (ESC) foi pressionada case 'D': //CLR foi pressionada case 'c': //Se tecla ENT foi pressionada case 'e': //Volta ao menu esc = true; varsayılan: ara; } } //Limpa o char customKey customKey = false; } }
Adım 16: Mil Hakkında - Makine Konfigürasyonları
Örneğin 3D yazıcılar ve yönlendiriciler gibi CNC makinelerinde, konumlandırma kontrolünden sorumlu programın, step motora verilen darbe sayısının bir fonksiyonu olarak hareketlerin nasıl gerçekleşeceğini bilmesi gerekir.
Adım motor sürücüsü mikro adımların uygulanmasına izin veriyorsa, üretilen yer değiştirmenin hesaplanmasında bu konfigürasyon dikkate alınmalıdır.
Örneğin, devir başına 200 adımlı bir motor 1/16'ya ayarlanmış bir sürücüye bağlıysa, iş milinin tek bir devri için 16 x 200 darbe, yani her devir için 3200 darbe gerekecektir. Bu iş mili devir başına 2 mm'lik bir adıma sahipse, somunun 2 mm hareket etmesi için sürücüde 3200 darbe alacaktır.
Aslında, yazılım denetleyicileri genellikle bu oranı belirtmek için "milimetre başına darbe sayısı" veya "adım / mm" gibi bir neden kullanır.
Adım 17: Marlin
Örneğin Marlin'de @section hareket bölümünde görüyoruz:
/ **
* Birim Başına Varsayılan Eksen Adımları (adım / mm)
* M92 ile geçersiz kıl
* X, Y, Z, E0 [, E1 [, E2 [, E3 [, E4]
* /
#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 3200, 100}
Bu örnekte, X ve Y eksenlerinin 1 mm hareket etmek için 80 darbe doğruluğuna sahip olduğu, Z'nin 3200 darbeye ve ekstrüder E0'ın 100 darbeye ihtiyacı olduğu sonucuna varabiliriz.
Adım 18: GRBL
Aşağıda GRBL yapılandırma komutlarını görüyoruz. 100 $ komutu ile X ekseninde bir milimetrelik ofset oluşturmak için gereken darbe sayısını ayarlayabiliriz.
Aşağıdaki örnekte mevcut değerin mm başına 250 darbe olduğunu görebiliriz.
Y ve Z eksenleri sırasıyla 101$ ve 102$ olarak ayarlanabilir.
Önerilen:
GRBL Step Motorlu Mecanum Omni Wheels Robot Arduino Shield: 4 Adım
GRBL Step Motorlu Mecanum Omni Wheels Robot Arduino Shield: Mecanum Robot - Dejan'ın büyük mekatronik blogunda gördüğümden beri inşa etmek istediğim bir proje: howtomechatronics.com Dejan, donanımdan, 3D baskıdan tüm yönleri kapsayan gerçekten iyi bir iş çıkardı , elektronik, kod ve bir Android uygulaması (MIT
Motorlu Arabadan Kaçınan Arduino Engeli: 7 Adım
Motorlu Arabadan Kaçınan Arduino Engeli: Merhaba! ve arabadan kaçınan bir Arduino engelinin nasıl oluşturulacağına ilişkin eğitime hoş geldiniz. Bu proje için gerekli malzemeleri temin ederek başlayabiliriz ve eğleneceğinizden emin olabilirsiniz!MALZEMELER: Dişi-Erkek Teller Teller Mesafe Sensörü
Arduino Motorlu Stor Perde: 8 Adım
Arduino Motorlu Stor Perde: Proje detayları: Projemin amacı her gün kullanabileceğim pratik bir motorlu stor perde yapmaktır. Plan, bir arduino uno bo ile kontrol edeceğim bipolar step motor aracılığıyla kontrol edilen bir stor perde yapmaktır
Arduino Kontrollü Motorlu Kamera Kaydırıcısı Yapın!: 13 Adım (Resimlerle)
Arduino Kontrollü Motorlu Kamera Kaydırıcısı Yapın!: Bu proje, herhangi bir sıradan kaydırıcıyı Arduino kontrollü motorlu bir kaydırıcıya nasıl dönüştüreceğinizi gösterir. Kaydırıcı 6m/dk'da çok hızlı hareket edebilir, ancak aynı zamanda inanılmaz derecede yavaştır.İyi bir giriş için videoyu izlemenizi tavsiye ederim. İhtiyacınız olan şeyler: Herhangi
4 KM veya 2,5 Mil Uzakta Wifi Nasıl Gidilir !!! DAHA HIZLI HIZLAR İÇİN GÜNCELLENDİ!!!!: 5 Adım
4 KM veya 2,5 Mil Uzakta Wifi Nasıl Gidilir !!! DAHA HIZLI HIZLAR İÇİN GÜNCELLENDİ!!!!: Bu gönderiyi yazalı yıllar oldu ve hepinizin bu projeye olan katkılarını ve ilginizi gerçekten takdir ediyorum! Araştırma ve geliştirmeden sonra bu işi DAHA İYİ hale getirmenin yollarını bulduk. Neye ihtiyacımız var biliyor musun? DAHA FAZLA GÜÇ