Robot Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield: 4 Langkah
Robot Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield: 4 Langkah
Anonim
Robot Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield
Robot Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield
Robot Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield
Robot Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield
Robot Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield
Robot Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield

Mecanum Robot - Projek yang ingin saya bina sejak saya melihatnya di blog mekatronik ganjaran Dejan: howtomechatronics.com

Dejan benar-benar membuat pekerjaan yang baik merangkumi semua aspek dari perkakasan, percetakan 3D, elektronik, kod dan aplikasi Android (pencipta Aplikasi MIT)

Ini adalah projek baik pulih yang menyegarkan semua kemahiran pembuat.

Saya mempunyai sedikit perubahan yang perlu dilakukan pada projek-projek tersebut

Saya tidak mahu menggunakan PCB khas yang dia gunakan, tetapi perisai GRBL lama yang saya ada di rumah.

Saya mahu menggunakan BlueTooth

Jadi:

Bekalan

Arduino Uno + GRBL Shield

Motor stepper

Modul HC-06 BlueTooth

Bateri Lipo 12V

Langkah 1: Perkakasan

Perkakasan
Perkakasan
Perkakasan
Perkakasan

Mencetak roda dan memasangnya seperti di sini:

Menyambungkan 4 motor Stepper ke casis (dalam kes saya laci yang tidak digunakan ke atas)

Menghala kabel ke bahagian atas robot.

Langkah 2: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

Saya menggunakan modul HC-06 BT saya, Bahagian yang paling sukar adalah menetapkan pelindung GRBL untuk berfungsi dengan 4 motor Stepper kerana tidak ada panduan yang baik untuk itu, Ada keperluan untuk meletakkan Pelompat seperti yang dapat dilihat pada gambar yang dilampirkan, untuk membuat "Alat" keluaran perisai untuk juga mengendalikan motor stepper. juga perlu meletakkan Jumper "Enable"

pendawaian 4 stepper dan itu sahaja.

Saya juga membekalkan kuasa dari bateri 12V - dua stes - satu untuk Arduino dan satu untuk GRBl Shield

Langkah 3: Kod Arduino

/ * === Arduino Mecanum Wheels Robot === Kawalan telefon pintar melalui Bluetooth oleh Dejan, www. HowToMechatronics.com Perpustakaan: RF24, www. HowToMechatronics.com AccelStepper oleh Mike McCauley: www. HowToMechatronics.com

* / / * 2019-11-12 Gilad Meller (https://www.keerbot.com - ubah kod untuk berfungsi dengan pelindung motor GRBL arduino Motor stepper di pelindung dipetakan sebagai (langkah / arah): 2/5 3 / 6 4/7 12/13 menggunakan pemacu A4988 12V

Kod Dejan menggunakan SoftwareSerial dan saya akan menggunakan pin RX, TX standard (0, 1) dari Arduino Uno Catatan: Pastikan untuk memasang pin RX TX semasa menaikkan lakaran ke arduino atau muat naik akan gagal.

* / #sertakan

// Tentukan motor stepper dan pin yang akan digunakan AccelStepper LeftBackWheel (1, 2, 5); // (Jenis: pemandu, LANGKAH, DIR) - Stepper1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper2 AccelStepper RightBackWheel (1, 4, 7); // Stepper3 AccelStepper RightFrontWheel (1, 12, 13); // Stepper4

int masukByte = 0, c; // untuk data siri masuk int wheelSpeed = 100;

batal persediaan () {Serial.begin (9600); // membuka port bersiri, menetapkan kadar data hingga 9600 bps // Tetapkan nilai awal untuk stepper LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

gelung void () {if (Serial.available ()> 0) {// baca byte masuk: incomingByte = Serial.read ();

c = masukBait; suis (c) {kes 71: Serial.println ("Saya menerima Putar ke kanan W"); rotateRight (); rehat; kes 65: Serial.println ("Saya menerima Putar kiri Q"); pusing kiri(); rehat; kes 1: Serial.println ("Saya menerima BK / LFT"); moveRightBackward (); rehat; kes 2: Serial.println ("Saya menerima BK"); bergerak ke belakang(); rehat; kes 3: Serial.println ("Saya menerima BK / RT"); moveRightBackward (); rehat; kes 4: Serial.println ("Saya menerima KIRI"); moveSidewaysLeft ();

rehat; kes 5: Serial.println ("Saya menerima STOP"); stopMoving (); rehat; kes 6: Serial.println ("Saya menerima RT"); moveSidewaysRight (); rehat; kes 7: Serial.println ("Saya menerima FWD / LFT"); bergerakLeftForward (); rehat; kes 8: Serial.println ("Saya menerima FWD"); moveForward (); rehat; kes 9: Serial.println ("Saya menerima FWD / RT"); moveRightForward (); rehat; lalai: Serial.print ("Bukan arahan"); Serial.println (masukByte, DEC); rehat; } } //bergerak ke belakang(); bergerakRobot ();

}

kekosongan bergerakRobot () {LeftBackWheel.runSpeed (); LeftFrontWheel.runSpeed (); RightFrontWheel.runSpeed (); RightBackWheel.runSpeed (); }

batal moveForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } batal bergerakBackward () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } kekosongan bergerakSidewaysRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } batal moveSidewaysLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void rotateLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void rotateRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } kekosongan bergerakRightForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (wheelSpeed); } kekosongan bergerakRightBackward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (0); } batal moveLeftForward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (0); } kekosongan bergerakLeftBackward () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (-wheelSpeed); } batal stopMoving () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (0); }

Langkah 4: Appinventor

Aplikasi penemu baru dengan fungsi yang berbeza dan lebih sederhana (Tanpa Rakaman)

Sila hantarkan msg dan saya hantarkan kepada anda - muat naik gagal.

Jaga diri.

Disyorkan: