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

OAREE - מודפס בתלת מימד - מכשול להימנעות מרובוט לחינוך הנדסי (OAREE) עם Arduino: 5 שלבים (עם תמונות)
OAREE - מודפס בתלת מימד - מכשול להימנעות מרובוט לחינוך הנדסי (OAREE) עם Arduino: 5 שלבים (עם תמונות)

וִידֵאוֹ: OAREE - מודפס בתלת מימד - מכשול להימנעות מרובוט לחינוך הנדסי (OAREE) עם Arduino: 5 שלבים (עם תמונות)

וִידֵאוֹ: OAREE - מודפס בתלת מימד - מכשול להימנעות מרובוט לחינוך הנדסי (OAREE) עם Arduino: 5 שלבים (עם תמונות)
וִידֵאוֹ: Part 1 - Triplanetary Audiobook by E. E. Smith (Chs 1-4) 2024, יוני
Anonim
Image
Image
OAREE - מודפס בתלת מימד - מכשול להימנעות מרובוט לחינוך הנדסי (OAREE) עם Arduino
OAREE - מודפס בתלת מימד - מכשול להימנעות מרובוט לחינוך הנדסי (OAREE) עם Arduino
OAREE - מודפס בתלת מימד - מכשול להימנעות מרובוט לחינוך הנדסי (OAREE) עם Arduino
OAREE - מודפס בתלת מימד - מכשול להימנעות מרובוט לחינוך הנדסי (OAREE) עם Arduino

OAREE (מכשול להימנעות מרובוט לחינוך הנדסי)

עיצוב: מטרתו של מדריך זה הייתה לעצב רובוט OAR (מכשול להימנעות מרובוט) שהיה פשוט/קומפקטי, ניתן להדפסה תלת מימדית, קל להרכבה, משתמש בסרווס סיבוב רציף לתנועה, ויש לו כמה שפחות חלקים שנרכשו. אני מאמין שהצלחתי ליצור את הרובוט המדהים הזה ושמתי אותו בשם OAREE (מכשול להימנעות מרובוט לחינוך הנדסי). הרובוט הזה ירגיש מכשולים, יעצור, יסתכל שמאלה וימינה, ואז יפנה לכיוון הבלתי מוגבל וימשיך קדימה.

רקע: לאינטרנט יש מכשולים רבים להימנע מרובוטים, אך רובם מגושמים, קשים להרכבה ויקרים. לרבים מהרובוטים הללו יש קוד Arduino מסופק, אך היה קשה למצוא דוגמא מחושבת, עובדת. רציתי גם להשתמש בסרווס סיבוב רציף לגלגלים (במקום מנועי DC), שעדיין לא בוצע. אז יצאתי למשימה לפתח רובוט OAR קומפקטי וממציא לחלוק עם העולם.

פיתוח נוסף: ניתן לפתח רובוט זה לדיוק ping טוב יותר, הוספת חיישני IR ליכולת לעקוב אחר קווים, מסך LCD להצגת מרחק מכשולים ועוד.

אספקה

  • 1x Arduino Uno -
  • 1x מגן חיישן V5 -
  • מחזיק סוללות 4xAA עם מתג הפעלה/הפעלה -
  • 1x סרוו SG90 -
  • 2x סרוו סיבובים רציפים -
  • 1x 9V כבל מתח סוללה עבור Arduino (אופציונלי) -
  • 1x חיישן אולטרסאונד HC -SR04 -
  • 4x חוטי מגשר נקבה-נקבה-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x רצועות גומי
  • סוללה אחת 9V (אופציונלי)
  • 4 סוללות AA
  • 4x ברגים קטנים (4 x 1/2 או משהו דומה)
  • מברג פיליפס
  • דבק לאבטחת גומיות לגלגלים

שלב 1: הדפסה תלת מימדית: גוף, גלגלים, גלגלת שיש, 6 מ"מ ברגים/אגוזים וחיישן חיישן קולי

הדפסה תלת -ממדית: גוף, גלגלים, גלגלת שיש, 6 מ
הדפסה תלת -ממדית: גוף, גלגלים, גלגלת שיש, 6 מ
הדפסה תלת -ממדית: גוף, גלגלים, גלגלת שיש, 6 מ
הדפסה תלת -ממדית: גוף, גלגלים, גלגלת שיש, 6 מ
הדפסה תלת -ממדית: גוף, גלגלים, גלגלת שיש, 6 מ
הדפסה תלת -ממדית: גוף, גלגלים, גלגלת שיש, 6 מ

ישנם 5 חלקים להדפסה תלת מימדית.

  1. גוּף
  2. גלגלים
  3. גלגל השיש
  4. ברג/אגוז 6 מ"מ (אופציונלי, ניתן להחליף אגוז מתכת/בורג)
  5. הר חיישן אולטרא סאונד

כל קבצי ה- STL הנדרשים כלולים בקובצי ההוראה, כמו גם בקבצי Sketchup. מומלץ מילוי של 40%.

שלב 2: תכנת את הארדואינו

Image
Image
הרכיב את הרובוט
הרכיב את הרובוט

שלח קוד ל- Arduino UNO: באמצעות מזהה Arduino, שלח את הקוד (בקובץ המצורף) למודול ה- Arduino שלך. יהיה עליך להוריד ולכלול את הספריות servo.h ו- newping.h עם הסקיצה הזו.

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

// מכשול להימנעות מרובוט // [email protected], [email protected], אוניברסיטת TN בצ'טנוגה, הנדסת חשמל, FALL 2019 // חומרים נדרשים: // 1) Arduiino UNO, 2) מגן חיישן סרוו v5.0, 3) חיישן אולטראסוני HCSR04, 4) סרוו FS90 (לחיישן אולטרא סאונד) 15) 1x (4xAA) מחזיק סוללה עם מתג הפעלה/כיבוי, 16 ו -17) סוללת 9V עם מחבר להפעלה Arduino UNO // 3D PRINT: // 18) Body Robot, 19 & 20) 2x גלגלים, 21) גלגל השיש, 22) חיישן אולטראסאונד הר וברג 6 מ"מ (ראו קבצים מצורפים) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #include // כלול ספריית סרוו #כלול // כלול ספריית Newping // ------------------------------------------- -------------------------------------------------- ------------------------------------ #הגדר TRIGGER_PIN 1 2 // טריגר אמריקאי לסיכה 12 ב- Arduino #define ECHO_PIN 13 // אקו ארה"ב לסיכה 13 ב- Arduino #define MAX_DISTANCE 250 // מרחק לפינג (מקסימום 250) מרחק int = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- סרוו US_Servo; // חיישן אולטרסאונד סרוו סרוו Left_Servo; // סרוו סרוו גלגל שמאלי Right_Servo; // סונאר סרוו NewPing סרוו (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // הגדרת NewPing של סיכות ומרחק מרבי. // ------------------------------------------------ -------------------------------------------------- ------------------------------- הגדרת בטל () // קלט/יציאות, היכן לצרף, הגדר עמדה/תנועה ראשונית {pinMode (12, OUTPUT); // סיכת ההדק מוגדרת כפלט pinMode (13, INPUT); // סיכת הד הוגדרה כקלט US_Servo.attach (11); // סרוו האמריקאי מוגדר להצמיד 11 US_Servo.write (90); // סרבו האמריקאי צופה קדימה

Left_Servo.attach (9); // סרוו הגלגל השמאלי לסיכה 9

Left_Servo.write (90); // SERVO WHEEL WHEEL מוגדר ל- STOP

Right_Servo.attach (10); // סרוו גלגל ימין מוגדר לפין 10

Right_Servo.write (90); // RIGHT WHEEL SERVO מוגדר לעיכוב STOP (2000); // המתן מרחק של 2 שניות = readPing (); // קבל מרחק פינג באיחור במיקום קדימה (100); // המתן ל- 100 ms moveForward (); // רובוט נע קדימה} // ------------------------------------------ -------------------------------------------------- ------------------------------------- לולאת void () {int distanceRight = 0; // ליזום מרחק אמריקאי ימינה ב- 0 int distanceLeft = 0; // ליזום מרחק אמריקאי לשמאל ב- 0 //US_Servo.write(90); // מרכז סרוו האמריקאי // עיכוב (50); // US_Servo.write (70); // תסתכל מעט ימינה // עיכוב (250); // US_Servo.write (110); // הסתכל מעט שמאלה // עיכוב (250); // US_Servo.write (90); // מרכז מבט

if (מרחק <= 20) // רובוט הוא MOVES FORWARD {moveStop (); // רובוט STOPS במרחק = distanceLeft) // החליטו לאיזה כיוון לפנות {turnRight (); // הצד הימני בעל המרחק הגדול ביותר, רובוט מסתובב ימינה לעיכוב של 0.3 שניות (500); // עיכוב זה קובע אורך סיבוב moveStop (); // Robot STOPS} else {turnLeft (); // המרחק הגדול ביותר בצד שמאל, רובוט מסתובב שמאלה לעיכוב של 0.3 שניות (500); // עיכוב זה קובע אורך סיבוב moveStop (); // רובוט STOPS}} else {moveForward (); // רובוט נע קדימה} distance = readPing (); // ארה"ב קוראת PING חדש לכיוון הנסיעה החדש} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // חיישן אולטרסאונד תראה פונקציה נכונה {US_Servo.write (30); // סרוו האמריקאי זז ימינה לעיכוב זווית (500); int distance = readPing (); // הגדר ערך פינג לעיכוב נכון (100); US_Servo.write (90); // סרוו האמריקאי עובר למרחק החזרה למרכז; // המרחק מוגדר} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int lookLeft () // חיישן אולטרסאונד LOOK LINK FUNCTION {US_Servo.write (150); // סרוו האמריקאי זז שמאלה לעיכוב זווית (500); int distance = readPing (); // הגדר ערך פינג לעיכוב שמאלי (100); US_Servo.write (90); // סרוו האמריקאי עובר למרחק החזרה למרכז; // המרחק מוגדר} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int readPing () // קריאת פונקציית פינג לחיישן אולטרא סאונד. {עיכוב (100); // 100ms בין פינגים (זמן פינג מינימלי = 0.29ms) int cm = sonar.ping_cm (); // מרחק PING נאסף ונקבע ב- cm אם (cm == 0) {cm = 250; } ס"מ להחזיר; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 קדימה, 0 אחורה Right_Servo.write (90); // RightServo 0 קדימה, 180 אחורה} // --------------------------------------- -------------------------------------------------- ---------------------------------------- מהלך חלל קדימה () // ROBOT FORWARD {Left_Servo.write (180); // LeftServo 180 קדימה, 0 אחורה Right_Servo.write (0); // RightServo 0 קדימה, 180 אחורה} // --------------------------------------- -------------------------------------------------- ---------------------------------------- מהלך בטל אחורה () // ROBOT BACKWARD {Left_Servo.write (0); // LeftServo 180 קדימה, 0 אחורה Right_Servo.write (180); // RightServo 0 קדימה, 180 אחורה} // --------------------------------------- -------------------------------------------------- ---------------------------------------- בטל turnRight () // רובוט ימינה {Left_Servo.write (180); // LeftServo 180 קדימה, 0 אחורה Right_Servo.write (90); // RightServo 0 קדימה, 180 אחורה} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LEFT {Left_Servo.write (90); // LeftServo 180 קדימה, 0 אחורה Right_Servo.write (0); // RightServo 0 קדימה, 180 אחורה} // --------------------------------------- -------------------------------------------------- ----------------------------------------

שלב 3: הרכבת הרובוט

Image
Image
הרכיב את הרובוט
הרכיב את הרובוט
הרכיב את הרובוט
הרכיב את הרובוט

עכשיו הגיע הזמן לחבר את הרובוט שלך. השלבים מפורטים להלן.

1) הצמד דיסק סרוו עגול ורצועות גומי לגלגלים: כל הסרוואות מגיעים עם חומרת הרכבה וברגים מפלסטיק. מצא את הדיסקים העגולים, והברג אותם לשני החורים בצד השטוח של הגלגלים. רצועות הגומי מתאימות סביב ההגה בכדי לספק אחיזה. מומלץ להוסיף מעט דבק כדי לשמור על הגומיות במקומן.

2) חיבור גלגל השיש: השתמש בשני ברגים קטנים כדי לחבר את גלגלת השיש לשני המשולשים מאחור. גלגלת השיש היא תחליף פשוט לגלגל אחורי ומספקת נקודת ציר אחורית.

3) הכנס סרוו לחריצים (אין צורך בברגים): הנח את סרוו FS90 (לחיישן האולטרסאונד) בחריץ הקדמי של הגוף. שני סרוו הסיבובים המתמשכים מחליקים לחריצים השמאליים והימניים. החריצים מיועדים להתאמה הדוקה, כך שאין צורך בברגים כדי להחזיק את סרווס במקומם. וודא שחוטי הסרוו עוברים בחריצים בחריצים כך שהם פונים לכיוון החלק האחורי של הגוף.

4) מיקום סוללה 9V (אופציונלי): הנח סוללה 9V + מחבר מתח Arduino מאחורי הסרוו הקדמי.

5) מכלול הרכבה של חיישן אולטרא סאונד: השתמש בשני ברגים קטנים כדי לחבר אחד מצרכי הסרוו מפלסטיק לבן המצורפים לתחתית צלחת הר החיישן האולטרא סאונד. לאחר מכן, השתמש בבורג/אגוז 6 מ מ המודפס בתלת -ממד (או החלף בורג/אגוז מתכת) כדי להצמיד את מארז החיישן האולטרא -סוני לצלחת ההר. לבסוף, הנח את החיישן בתוך המארז כשהסיכות כלפי מעלה והצמד בחלק האחורי של המארז.

6) מארז סוללות 4x AA: הנח את מארז סוללת ה- AA באזור המלבני הגדול, כאשר מתג ההפעלה/כיבוי פונה לכיוון האחורי.

7) מגן חיישן Arduino Uno + V5: חבר את המגן לארדואינו והנח על התושבים מעל מארז הסוללה. מחבר החשמל צריך להיות פונה שמאלה.

הרובוט שלך בנוי! מה שנשאר? תכנות חוטי המגשר של Arduino וחיבור: סרוווס, חיישן אולטרסאונד ואספקת חשמל.

שלב 4: צרף חוטי חיישן

Image
Image
גָמוּר!!! חבר את ספק הכוח Arduino 9V, הפעל את הסוללה והתחל להימנע ממכשולים באמצעות OAREE
גָמוּר!!! חבר את ספק הכוח Arduino 9V, הפעל את הסוללה והתחל להימנע ממכשולים באמצעות OAREE

חבר את חוטי סרוו למגן V5:

  1. סרוו סיבוב רציף שמאלי מתחבר ל- PIN 9
  2. סרוו סיבוב רציף ימינה מתחבר ל- PIN 10
  3. סרוו FS90 הקדמי מצורף ל- PIN 11

חבר סיכות חיישן אולטראסאונד (באמצעות חוטי מגשר נקבה 4x נקבה) למגן V5:

  1. הפעלה ל- PIN 12
  2. הד ל- PIN 13
  3. VCC לכל אחד מהסיכות המסומנות ב- 'V'
  4. טחון לכל אחד מהסיכות המסומנות ב- 'G'

חבר את מארז הסוללות AA למגן V5:

  1. חבר את החוט החיובי והאדום למחבר VCC
  2. חבר את החוט השלילי והשחור לחיבור הארקה

שלב 5: סיים !!! חבר את ספק הכוח Arduino 9V, הפעל את הסוללה והתחל להימנע ממכשולים באמצעות OAREE

Image
Image
גָמוּר!!! חבר את ספק הכוח Arduino 9V, הפעל את הסוללה והתחל להימנע ממכשולים באמצעות OAREE
גָמוּר!!! חבר את ספק הכוח Arduino 9V, הפעל את הסוללה והתחל להימנע ממכשולים באמצעות OAREE

גָמוּר!

1) חבר את ספק הכוח Arduino 9V (אופציונלי)

2) הפעל את סוללת הסוללה

3) התחל להימנע ממכשולים עם OAREE !!!

אני בטוח שתאהב את החבר החדש שלך, OAREE, לאחר שתראה את זה מרגיש מכשול, גבה ושנה כיוון. OAREE פועל בצורה הטובה ביותר עם אובייקטים גדולים שחיישן האולטרסאונד יכול להתנתק מהם (כמו קירות). הוא מתקשה לדפוק על חפצים קטנים כמו רגלי כיסא בגלל שטח הפנים הקטן והפינות שלהם. אנא שתף, התפתח יותר, וספר לי על כל ההתאמות או השגיאות הנדרשות. זו הייתה חוויית למידה נהדרת ואני מקווה שתהנו מהפרויקט הזה כמוני!

תחרות רובוטיקה
תחרות רובוטיקה
תחרות רובוטיקה
תחרות רובוטיקה

סגנית בתחרות הרובוטיקה

מוּמלָץ: