Daftar Isi:

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

Video: Mecanum Omni Wheels Robot Dengan GRBL Stepper Motors Arduino Shield: 4 Langkah

Video: Mecanum Omni Wheels Robot Dengan GRBL Stepper Motors Arduino Shield: 4 Langkah
Video: Stepper Motors and Arduino - The Ultimate Guide 2024, November
Anonim
Mecanum Omni Wheels Robot Dengan GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot Dengan GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot Dengan GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot Dengan GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot Dengan GRBL Stepper Motors Arduino Shield
Mecanum Omni Wheels Robot Dengan GRBL Stepper Motors Arduino Shield

Robot Mecanum - Sebuah proyek yang ingin saya buat sejak saya melihatnya di blog mekatronik berat Dejan: howtomechatronics.com

Dejan benar-benar melakukan pekerjaan yang baik yang mencakup semua aspek dari perangkat keras, pencetakan 3D, elektronik, kode, dan aplikasi Android (Penemu Aplikasi MIT)

Ini adalah proyek perbaikan besar yang menyegarkan semua keterampilan pembuat.

Saya memiliki beberapa perubahan yang harus dilakukan pada proyek

Saya tidak ingin menggunakan PCB yang dibuat khusus yang dia gunakan, tetapi pelindung GRBL lama yang saya miliki di rumah.

Saya ingin menggunakan BlueTooth

Jadi:

Perlengkapan

Arduino Uno + Perisai GRBL

Motor stepper

Modul HC-06 BlueTooth

Baterai Lipo 12V

Langkah 1: Perangkat Keras

Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras

Mencetak roda dan merakitnya seperti di sini:

Menghubungkan 4 motor Stepper ke sasis (dalam kasus saya laci yang tidak digunakan menghadap ke bawah)

Mengarahkan kabel ke bagian atas robot.

Langkah 2: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

Saya menggunakan modul HC-06 BT saya, Bagian tersulit adalah mengatur pelindung GRBL agar bekerja dengan 4 motor Stepper karena tidak ada panduan yang baik untuk itu, Perlu memasang jumper seperti terlihat pada gambar terlampir, untuk membuat keluaran “Alat” pelindung sekaligus mengendalikan motor stepper. juga perlu menempatkan "Aktifkan" Jumper

kabel 4 steppers dan hanya itu.

Saya juga memasok daya dari baterai 12V - dua steker - satu untuk Arduino dan satu untuk GRBl Shield

Langkah 3: Kode Arduino

/* === Robot Roda Arduino Mecanum === Kontrol smartphone 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 - memodifikasi kode untuk bekerja dengan pelindung motor arduino GRBL Motor stepper di pelindung dipetakan sebagai (langkah/arah): 2/5 3 /6 4/7 12/13 menggunakan driver A4988 12V

Kode Dejan menggunakan SoftwareSerial dan kode saya akan menggunakan pin RX, TX standar (0, 1) dari Arduino Uno Catatan: Pastikan untuk menghapus pin RX TX saat mengunggah sketsa ke arduino atau unggahan akan gagal.

*/ #termasuk

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

int IncomingByte = 0, c; // untuk data serial yang masuk int wheelSpeed = 100;

void setup() { Serial.begin(9600); // membuka port serial, menyetel kecepatan data ke 9600 bps // Menyetel nilai benih awal untuk stepper LeftFrontWheel.setMaxSpeed(600); LeftBackWheel.setMaxSpeed(600); RightFrontWheel.setMaxSpeed(600); RightBackWheel.setMaxSpeed(600);

}

void loop() { if (Serial.available() > 0) { // membaca byte yang masuk: IncomingByte = Serial.read();

c = byte masuk; switch (c) { kasus 71: Serial.println("Saya menerima Putar ke kanan W"); Putar ke kanan(); merusak; case 65: Serial.println("Saya menerima Rotate left Q"); putarKiri(); merusak; case 1: Serial.println("Saya menerima BK/LFT "); pindahkanKananMundur(); merusak; case 2: Serial.println("Saya menerima BK "); bergerakMundur(); merusak; case 3: Serial.println("Saya menerima BK/RT"); pindahkanKananMundur(); merusak; case 4: Serial.println("Saya menerima KIRI "); moveSidewaysLeft();

merusak; case 5: Serial.println("Saya menerima STOP "); berhentiBergerak(); merusak; case 6: Serial.println("Saya menerima RT "); moveSidewaysRight(); merusak; case 7: Serial.println("Saya menerima FWD/LFT "); moveLeftForward(); merusak; kasus 8: Serial.println("Saya menerima FWD "); maju kedepan(); merusak; kasus 9: Serial.println("Saya menerima FWD/RT"); moveRightForward(); merusak; default: Serial.print("Bukan perintah"); Serial.println(Byte masuk, DEC); merusak; } } //moveMundur(); bergerakRobot();

}

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

void moveForward() { LeftFrontWheel.setSpeed(wheelSpeed); LeftBackWheel.setSpeed(kecepatan roda); RightFrontWheel.setSpeed(kecepatan roda); RightBackWheel.setSpeed(kecepatan roda); } 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(kecepatan roda); } void moveSidewaysLeft() { LeftFrontWheel.setSpeed(-wheelSpeed); LeftBackWheel.setSpeed(kecepatan roda); RightFrontWheel.setSpeed(kecepatan roda); RightBackWheel.setSpeed(-wheelSpeed); } void rotateLeft() { LeftFrontWheel.setSpeed(-wheelSpeed); LeftBackWheel.setSpeed(-wheelSpeed); RightFrontWheel.setSpeed(kecepatan roda); RightBackWheel.setSpeed(kecepatan roda); } void rotateRight() { LeftFrontWheel.setSpeed(wheelSpeed); LeftBackWheel.setSpeed(kecepatan roda); RightFrontWheel.setSpeed(-wheelSpeed); RightBackWheel.setSpeed(-wheelSpeed); } void moveRightForward() { LeftFrontWheel.setSpeed(wheelSpeed); LeftBackWheel.setSpeed(0); RightFrontWheel.setSpeed(0); RightBackWheel.setSpeed(kecepatan roda); } void moveRightBackward() { LeftFrontWheel.setSpeed(0); LeftBackWheel.setSpeed(-wheelSpeed); RightFrontWheel.setSpeed(-wheelSpeed); RightBackWheel.setSpeed(0); } void moveLeftForward() { LeftFrontWheel.setSpeed(0); LeftBackWheel.setSpeed(kecepatan roda); RightFrontWheel.setSpeed(kecepatan roda); 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); }

Langkah 4: Appinventor

Aplikasi appinventor baru dengan fungsionalitas berbeda dan lebih sederhana (Tanpa Rekaman)

Silakan kirim pesan dan saya kirimkan kepada Anda - unggahan gagal.

Hati-hati.

Direkomendasikan: