תוכן עניינים:

רובוט גלגלי Mecanum Omni עם מנועי צעד GRBL מגן ארדואינו: 4 שלבים
רובוט גלגלי Mecanum Omni עם מנועי צעד GRBL מגן ארדואינו: 4 שלבים

וִידֵאוֹ: רובוט גלגלי Mecanum Omni עם מנועי צעד GRBL מגן ארדואינו: 4 שלבים

וִידֵאוֹ: רובוט גלגלי Mecanum Omni עם מנועי צעד GRBL מגן ארדואינו: 4 שלבים
וִידֵאוֹ: Three-wheeled Omni wheel holonomic drive test all drivetrain test/demo using a REV Robotics #robot 2024, דֵצֶמבֶּר
Anonim
רובוט גלגלי Mecanum Omni עם מנוע צעדים מסוג GRBL Arduino Shield
רובוט גלגלי Mecanum Omni עם מנוע צעדים מסוג GRBL Arduino Shield
רובוט גלגלי Mecanum Omni עם מנוע צעדים מסוג GRBL Arduino Shield
רובוט גלגלי Mecanum Omni עם מנוע צעדים מסוג GRBL Arduino Shield
רובוט גלגלי Mecanum Omni עם מנוע צעדים מסוג GRBL Arduino Shield
רובוט גלגלי Mecanum Omni עם מנוע צעדים מסוג GRBL Arduino Shield

Mecanum Robot - פרויקט שרציתי לבנות מאז שראיתי אותו בבלוג המכטרוניקה של דג'אן: howtomechatronics.com

דג'אן באמת עשה עבודה טובה המכסה את כל ההיבטים מחומרה, הדפסה תלת מימדית, אלקטרוניקה, קוד ואפליקציית אנדרואיד (ממציא האפליקציות של MIT)

זהו פרויקט גדול של יתר על המידה שמרענן את כל הכישורים של יוצר.

היו לי מעט שינויים לעשות בפרויקטים

לא רציתי להשתמש במחשב הלוח המותאם אישית שהשתמש בו, אלא במגן GRBL ישן שהיה לי בבית.

רציתי להשתמש ב- BlueTooth

לכן:

אספקה

מגן Arduino Uno + GRBL

מנועי צעד

מודול BlueTooth HC-06

סוללת ליפו 12V

שלב 1: חומרה

חוּמרָה
חוּמרָה
חוּמרָה
חוּמרָה

הדפס את הגלגלים והרכב אותם כמו כאן:

חיברו 4 מנועי צעד למארז (במקרה שלי מגירה שאינה בשימוש כלפי מטה)

ניתב את הכבלים לראש הרובוט.

שלב 2: אלקטרוניקה

מכשירי חשמל
מכשירי חשמל
מכשירי חשמל
מכשירי חשמל
מכשירי חשמל
מכשירי חשמל

השתמשתי במודול HC-06 BT שלי, החלק הקשה ביותר היה להגדיר את מגן GRBL לעבודה עם 4 מנועי צעד מכיוון שאין לזה מדריך טוב, יש צורך לשים מגשרים כפי שניתן לראות בתמונה המצורפת, על מנת לגרום לפלט "כלי" של המגן לשלוט גם במנוע צעד. צריך גם לשים מגשר "אפשר"

חיווט ארבעת הצעדים וזהו.

הספקתי גם את הכוח מסוללות 12V - שתי מערכות - אחת עבור Arduino ואחת עבור מגן GRBl

שלב 3: קוד ארדואינו

/* === רובוט גלגלי Arduino Mecanum === שליטה בסמארטפון באמצעות Bluetooth על ידי Dejan, www. HowToMechatronics.com ספריות: RF24, www. HowToMechatronics.com AccelStepper מאת Mike McCauley: www. HowToMechatronics.com

*//* 2019-11-12 גלעד מלר (https://www.keerbot.com - שנה את הקוד לעבודה עם מגן מנוע ארדואינו GRBL מנועי צעד במגן ממופים כ (צעד/כיוון): 2/5 3 /6 4/7 12/13 באמצעות נהג A4988 12V

הקוד של דג'אן משתמש ב- SoftwareSerial ושלי ישתמשו בסיכות RX, TX הסטנדרטיות (0, 1) של ה- Arduino Uno הערה: הקפד לשנות את סיכות ה- RX TX בעת העלאת סקיצה לארדואינו או שההעלאה תיכשל.

*/ #כולל

// הגדר את מנועי הצעד ואת הסיכות שבהן ישתמשו AccelStepper LeftBackWheel (1, 2, 5); // (סוג: דרייבר, STEP, DIR) - Stepper1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper2 AccelStepper RightBackWheel (1, 4, 7); // Stepper3 AccelStepper RightFrontWheel (1, 12, 13); // צעד 4

int incomingByte = 0, c; // לנתונים טוריים נכנסים int wheelSpeed = 100;

הגדרת void () {Serial.begin (9600); // פותח יציאה טורית, מגדיר את קצב הנתונים ל 9600 bps // קבע ערכי זרע ראשוניים עבור הצעדים LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

לולאת void () {if (Serial.available ()> 0) {// קרא את הבית הנכנס: incomingByte = Serial.read ();

c = incomingByte; מתג (ג) {מקרה 71: Serial.println ("קיבלתי סובב ימינה W"); לסובב ימינה(); לשבור; מקרה 65: Serial.println ("קיבלתי סובב שמאלה Q"); rotateLeft (); לשבור; מקרה 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"); תפסיק לזוז(); לשבור; מקרה 6: Serial.println ("קיבלתי RT"); moveSidewaysRight (); לשבור; מקרה 7: Serial.println ("קיבלתי FWD/LFT"); moveLeftForward (); לשבור; מקרה 8: Serial.println ("קיבלתי FWD"); להתקדם(); לשבור; מקרה 9: Serial.println ("קיבלתי FWD/RT"); moveRightForward (); לשבור; ברירת מחדל: Serial.print ("לא פקודה"); Serial.println (incomingByte, 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); } חלל 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 חדשה עם פונקציונליות שונה ופשוטה יותר (ללא הקלטות)

אנא שלח הודעה ואני שולח לך - ההעלאות נכשלות.

שמור על עצמך.

מוּמלָץ: