Πίνακας περιεχομένων:

Ρομπότ Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield: 4 Βήματα
Ρομπότ Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield: 4 Βήματα

Βίντεο: Ρομπότ Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield: 4 Βήματα

Βίντεο: Ρομπότ Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield: 4 Βήματα
Βίντεο: Auto Industry AC Motor Heavy Duty Robot Wheels Servo Motor Direct Drive Wheel 2024, Νοέμβριος
Anonim
Ρομπότ Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield
Ρομπότ Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield
Ρομπότ Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield
Ρομπότ Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield
Ρομπότ Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield
Ρομπότ Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield

Mecanum Robot - Ένα έργο που ήθελα να φτιάξω από τότε που το είδα στο blog του Dejan's gread mechatronics: howtomechatronics.com

Ο Dejan έκανε πραγματικά καλή δουλειά καλύπτοντας όλες τις πτυχές από υλικό, τρισδιάστατη εκτύπωση, ηλεκτρονικά, κώδικα και μια εφαρμογή Android (εφευρέτης εφαρμογής του MIT)

Αυτό είναι ένα μεγάλο έργο overhoul που ανανεώνει όλες τις δεξιότητες ενός κατασκευαστή.

Είχα λίγες αλλαγές να κάνω στα έργα

Δεν ήθελα να χρησιμοποιήσω το προσαρμοσμένο PCB που χρησιμοποιούσε, αλλά μια παλιά ασπίδα GRBL που είχα στο σπίτι.

Wantedθελα να χρησιμοποιήσω το BlueTooth

Ετσι:

Προμήθειες

Arduino Uno + GRBL Shield

Βηματικοί κινητήρες

Ενότητα HC-06 BlueTooth

Μπαταρία Lipo 12V

Βήμα 1: Υλικό

Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα

Τύπωσε τους τροχούς και τους συναρμολόγησε όπως εδώ:

Συνδέθηκε 4 μοτέρ Stepper στο πλαίσιο (στην περίπτωσή μου ένα αχρησιμοποίητο συρτάρι προς τα κάτω)

Δρομολόγησε τα καλώδια στην κορυφή του ρομπότ.

Βήμα 2: Ηλεκτρονικά

ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ
ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ

Χρησιμοποίησα τη μονάδα HC-06 BT, Το πιο δύσκολο μέρος ήταν να ρυθμίσετε την ασπίδα GRBL να λειτουργεί με 4 κινητήρες Stepper, καθώς δεν υπάρχει καλός οδηγός για αυτό, Υπάρχει ανάγκη να τοποθετηθούν άλτες όπως φαίνεται στην επισυναπτόμενη εικόνα, προκειμένου η έξοδος "Tool" της ασπίδας να ελέγχει επίσης έναν βηματικό κινητήρα. πρέπει επίσης να τοποθετήσετε το "Enable" Jumper

καλωδίωση των 4 βημάτων και αυτό είναι.

Έδωσα επίσης ενέργεια από μπαταρίες 12V - δύο stes - μία για το Arduino και μία για το GRBl Shield

Βήμα 3: Κωδικός Arduino

/* === Ρομπότ Arduino Mecanum Wheels === Έλεγχος smartphone μέσω Bluetooth από τον Dejan, www. HowToMechatronics.com Βιβλιοθήκες: RF24, www. HowToMechatronics.com AccelStepper του Mike McCauley: www. HowToMechatronics.com

*//* 2019-11-12 Gilad Meller (https://www.keerbot.com - τροποποιήστε τον κώδικα για να εργαστείτε με ασπίδα κινητήρα GRBL arduino Οι βηματικοί κινητήρες στην ασπίδα αντιστοιχίζονται ως (βήμα/κατεύθυνση): 2/5 3 /6 4/7 12/13 χρησιμοποιώντας A4988 πρόγραμμα οδήγησης 12V

Ο κώδικας του Dejan χρησιμοποιεί το SoftwareSerial και ο δικός μου θα χρησιμοποιήσει τις τυπικές ακίδες RX, TX (0, 1) του Arduino Uno Σημείωση: Βεβαιωθείτε ότι έχετε επαναφέρει τις καρφίτσες RX TX όταν η αναβάθμιση του σκίτσου στο arduino θα αποτύχει.

*/ #περιλαμβάνω

// Ορίστε τους βηματικούς κινητήρες και τις ακίδες που θα χρησιμοποιήσουν το AccelStepper LeftBackWheel (1, 2, 5). // (Τύπος: οδηγός, ΒΗΜΑ, DIR) - Stepper1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper2 AccelStepper RightBackWheel (1, 4, 7); // Stepper3 AccelStepper RightFrontWheel (1, 12, 13); // Stepper4

int εισερχόμεναByte = 0, c; // για εισερχόμενα σειριακά δεδομένα int wheelSpeed = 100;

void setup () {Serial.begin (9600); // ανοίγει σειριακή θύρα, ορίζει το ρυθμό δεδομένων στα 9600 bps // Ορίζει τις αρχικές τιμές σπόρου για τα βήματα LeftFrontWheel.setMaxSpeed (600). LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {if (Serial.available ()> 0) {// διαβάστε το εισερχόμενο byte: incomingByte = Serial.read ();

c = incomingByte; διακόπτης (γ) {περίπτωση 71: Serial.println ("Έλαβα Περιστροφή δεξιά W"); περιστροφή δεξιά(); Διακοπή; περίπτωση 65: Serial.println ("Έλαβα Rotate left Q"); περιστροφή αριστερά(); Διακοπή; περίπτωση 1: Serial.println ("Έλαβα BK/LFT"); moveRightBackward (); Διακοπή; περίπτωση 2: Serial.println ("Έλαβα BK"); moveBackward (); Διακοπή; περίπτωση 3: Serial.println ("Έλαβα BK/RT"); moveRightBackward (); Διακοπή; περίπτωση 4: Serial.println ("Έλαβα ΑΡΙΣΤΕΡΑ"). moveSidewaysLeft ();

Διακοπή; περίπτωση 5: Serial.println ("Έλαβα STOP"); stopMoving (); Διακοπή; περίπτωση 6: Serial.println ("Έλαβα RT"); moveSidewaysRight (); Διακοπή; περίπτωση 7: Serial.println ("Έλαβα FWD/LFT"). moveLeftForward (); Διακοπή; περίπτωση 8: Serial.println ("Έλαβα FWD"). προχώρα μπροστά(); Διακοπή; περίπτωση 9: Serial.println ("Έλαβα FWD/RT"); moveRightForward (); Διακοπή; προεπιλογή: Serial.print ("Not a command"); Serial.println (εισερχόμενοByte, DEC); Διακοπή; }} // moveBackward (); moveRobot ();

}

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

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

Βήμα 4: Appinventor

Μια νέα εφαρμογή appinventor με διαφορετική και απλούστερη λειτουργικότητα (Χωρίς εγγραφή)

Παρακαλώ στείλτε μήνυμα και σας στέλνω - οι μεταφορτώσεις αποτυγχάνουν.

Να προσέχεις.

Συνιστάται: