GRBL Step Motorlu Mecanum Omni Wheels Robot Arduino Shield: 4 Adım
GRBL Step Motorlu Mecanum Omni Wheels Robot Arduino Shield: 4 Adım
Anonim
GRBL Step Motorlu Arduino Shield Mecanum Omni Wheels Robot
GRBL Step Motorlu Arduino Shield Mecanum Omni Wheels Robot
GRBL Step Motorlu Arduino Shield Mecanum Omni Wheels Robot
GRBL Step Motorlu Arduino Shield Mecanum Omni Wheels Robot
GRBL Step Motorlu Arduino Shield Mecanum Omni Wheels Robot
GRBL Step Motorlu Arduino Shield Mecanum Omni Wheels Robot

Mecanum Robot - Dejan'ın büyük mekatronik blogunda gördüğümden beri inşa etmek istediğim bir proje: howtomechatronics.com

Dejan, donanım, 3D baskı, elektronik, kod ve bir Android uygulamasından (MIT'nin Uygulama mucidi) tüm yönleri kapsayan gerçekten iyi bir iş çıkardı.

Bu, bir yapımcının tüm becerilerini tazeleyen harika bir revizyon projesidir.

Projelerde yapmam gereken birkaç değişiklik vardı

Kullandığı özel yapım PCB'yi kullanmak istemedim, ama evde sahip olduğum eski bir GRBL kalkanı.

BlueTooth'u kullanmak istedim

Yani:

Gereçler

Arduino Uno + GRBL Kalkanı

step motorlar

HC-06 BlueTooth modülü

12V Lipo Pil

Adım 1: Donanım

Donanım
Donanım
Donanım
Donanım

Tekerlekleri yazdırdı ve buradaki gibi birleştirdi:

Kasaya bağlı 4 Step motor (benim durumumda kullanılmayan bir çekmece yukarı bakacak şekilde)

Kabloları robotun üst kısmına yönlendirdi.

2. Adım: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

HC-06 BT modülümü kullandım, En zor kısım, bunun için iyi bir kılavuz olmadığı için GRBL kalkanını 4 Step motorla çalışacak şekilde ayarlamaktı.

Kalkanın "Alet" çıkışının bir step motoru da kontrol etmesini sağlamak için ekteki resimde görüldüğü gibi Jumper'ların yerleştirilmesine ihtiyaç vardır. ayrıca "Etkinleştir" Jumper'ını da koymanız gerekir

4 stepper kablolama ve bu kadar.

Ayrıca 12V pillerden güç sağladım - iki stes - biri Arduino için ve diğeri GRBl Shield için

Adım 3: Arduino Kodu

/* === Arduino Mecanum Wheels Robot === Bluetooth aracılığıyla akıllı telefon kontrolü, Dejan, www. HowToMechatronics.com Kitaplıklar: RF24, www. HowToMechatronics.com AccelStepper, Mike McCauley: www. HowToMechatronics.com

*/ /* 2019-11-12 Gilad Meller (https://www.keerbot.com - kodu GRBL arduino motor kalkanıyla çalışacak şekilde değiştirin Ekrandaki step motorlar şu şekilde eşlenir (adım/yön): 2/5 3 /6 4/7 12/13 A4988 sürücüsü 12V kullanılarak

Dejan'ın kodu SoftwareSerial'ı kullanır ve benimki Arduino Uno'nun standart RX, TX pinlerini (0, 1) kullanacak Not: Çizimi arduinoya yüklerken RX TX pinlerini değiştirdiğinizden emin olun, aksi takdirde yükleme başarısız olur.

*/ #Dahil etmek

// AccelStepper LeftBackWheel(1, 2, 5); // (Type:driver, STEP, DIR) - Step1 AccelStepper LeftFrontWheel(1, 3, 6); // Stepper2 AccelStepper RightBackWheel(1, 4, 7); // Stepper3 AccelStepper RightFrontWheel(1, 12, 13); // Stepper4

int gelenByte = 0, c; // gelen seri veriler için int tekerlekHızı = 100;

geçersiz kurulum() { Serial.begin(9600); // seri portu açar, veri hızını 9600 bps'ye ayarlar // Stepperler için başlangıç tohum değerlerini ayarlar LeftFrontWheel.setMaxSpeed(600); LeftBackWheel.setMaxSpeed(600); RightFrontWheel.setMaxSpeed(600); RightBackWheel.setMaxSpeed(600);

}

void loop() { if (Serial.available() > 0) { // gelen baytı oku: incomingByte = Serial.read();

c = gelenByte; switch (c) { case 71: Serial.println("Sağa Döndürmeyi Aldım"); döndürmeSağ(); kırmak; case 65: Serial.println("Sola Döndür Q'yu aldım"); sola dön(); kırmak; durum 1: Serial.println("BK/LFT aldım"); moveRightBackward(); kırmak; durum 2: Serial.println("BK aldım"); Geriye doğru hareket(); kırmak; durum 3: Serial.println("BK/RT aldım"); moveRightBackward(); kırmak; durum 4: Serial.println("SOL aldım"); moveSidewaysLeft();

kırmak; durum 5: Serial.println("STOP aldım"); hareket etmeyi kes(); kırmak; durum 6: Serial.println("RT aldım"); moveSidewaysRight(); kırmak; durum 7: Serial.println("FWD/LFT aldım"); moveLeftForward(); kırmak; durum 8: Serial.println("FWD aldım"); ileri hareket(); kırmak; durum 9: Serial.println("FWD/RT aldım"); moveRightForward(); kırmak; varsayılan: Serial.print("Komut değil"); Serial.println(gelenByte, DEC); kırmak; } } //moveBackward(); hareketRobot();

}

void moveRobot() { LeftBackWheel.runSpeed(); LeftFrontWheel.runSpeed(); RightFrontWheel.runSpeed(); RightBackWheel.runSpeed(); }

void moveForward() { LeftFrontWheel.setSpeed(wheelSpeed); LeftBackWheel.setSpeed(tekerlekHızı); RightFrontWheel.setSpeed(tekerlekHızı); RightBackWheel.setSpeed(tekerlekHızı); } void moveBackward() { LeftFrontWheel.setSpeed(-wheelSpeed); LeftBackWheel.setSpeed(-wheelSpeed); RightFrontWheel.setSpeed(-wheelSpeed); RightBackWheel.setSpeed(-wheelSpeed); } void moveSidewaysRight() { LeftFrontWheel.setSpeed(wheelSpeed); LeftBackWheel.setSpeed(-wheelSpeed); RightFrontWheel.setSpeed(-wheelSpeed); RightBackWheel.setSpeed(tekerlekHızı); } void moveSidewaysLeft() { LeftFrontWheel.setSpeed(-wheelSpeed); LeftBackWheel.setSpeed(tekerlekHızı); RightFrontWheel.setSpeed(tekerlekHızı); RightBackWheel.setSpeed(-wheelSpeed); } void döndürmeLeft() { LeftFrontWheel.setSpeed(-wheelSpeed); LeftBackWheel.setSpeed(-wheelSpeed); RightFrontWheel.setSpeed(tekerlekHızı); RightBackWheel.setSpeed(tekerlekHızı); } void döndürmeRight() { LeftFrontWheel.setSpeed(tekerlek Hızı); LeftBackWheel.setSpeed(tekerlekHızı); RightFrontWheel.setSpeed(-wheelSpeed); RightBackWheel.setSpeed(-wheelSpeed); } void moveRightForward() { LeftFrontWheel.setSpeed(wheelSpeed); LeftBackWheel.setSpeed(0); RightFrontWheel.setSpeed(0); RightBackWheel.setSpeed(tekerlekHızı); } void moveRightBackward() { LeftFrontWheel.setSpeed(0); LeftBackWheel.setSpeed(-wheelSpeed); RightFrontWheel.setSpeed(-wheelSpeed); RightBackWheel.setSpeed(0); } void moveLeftForward() { LeftFrontWheel.setSpeed(0); LeftBackWheel.setSpeed(tekerlekHızı); RightFrontWheel.setSpeed(tekerlekHızı); RightBackWheel.setSpeed(0); } void moveLeftBackward() { LeftFrontWheel.setSpeed(-wheelSpeed); LeftBackWheel.setSpeed(0); RightFrontWheel.setSpeed(0); RightBackWheel.setSpeed(-wheelSpeed); } void stopMoving() { LeftFrontWheel.setSpeed(0); LeftBackWheel.setSpeed(0); RightFrontWheel.setSpeed(0); RightBackWheel.setSpeed(0); }

Adım 4: Uygulamacı

Farklı ve daha basit işlevselliğe sahip yeni bir appinventor uygulaması (Kayıt Yok)

Lütfen msj gönderin ve size göndereyim - yüklemeler başarısız olur.

Dikkatli ol.