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

מיקרו חינוכי DIY: רובוט סיביות: 8 שלבים (עם תמונות)
מיקרו חינוכי DIY: רובוט סיביות: 8 שלבים (עם תמונות)

וִידֵאוֹ: מיקרו חינוכי DIY: רובוט סיביות: 8 שלבים (עם תמונות)

וִידֵאוֹ: מיקרו חינוכי DIY: רובוט סיביות: 8 שלבים (עם תמונות)
וִידֵאוֹ: Serial מבוא למערכות משובצות מחשב (ארדואינו) | הנדסת אלקטרוניקה ומחשבים לכיתות י,יא,יב 2024, יולי
Anonim
DIY חינוכי מיקרו: רובוט קצת
DIY חינוכי מיקרו: רובוט קצת
DIY חינוכי מיקרו: רובוט קצת
DIY חינוכי מיקרו: רובוט קצת

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

לאחר שתבנה את הרובוט הזה תוכל ליהנות ממגוון החיישנים והמפעילים שלו לביצוע דברים בסיסיים אך גם מתקדמים למדי בהתאם לגרסה שאתה בונה (אני אספק שתי גרסאות). עם רובוט זה אתה נותן עיניים (180 ° מבט!) ורגליים (בתנועה מדויקת אפשרית!) למיקרו: ביט בעוד שהמיקרו: ביט מספק לך תכונות נהדרות כגון מטריצת ה- LED, תקשורת הרדיו, תקשורת בלוטות ', מד תאוצה., קומפאס, אבל גם גישה לכל הדברים האלה עם MicroPython או עם שפת תכנות חזותית הדומה לשריטה (למעשה גם ב- C ++ וב- javascript אבל אני מוצא את אלה פחות מתאימים לחינוך).

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

שלב 1: איסוף החלקים

איסוף החלקים
איסוף החלקים

עבור פרויקט זה המינימום הדוב שתזדקק לו הוא:

  • עץ MDF בעובי 5 מ"מ וחותך לייזר לשלד
  • סוללת ליתיום 1x18650, 1x מגן סוללה לאנרגיה ומפריע
  • 1xMicro: כרטיס ביט ולוח סיומת 1xMicro: bit למוח (אם כי ניתן להחליף בקלות את Arduino)
  • מנועי צעד 2x28BYJ-5V, נהגי מנוע צעד 2xA4988 ולוח פיתוח 2x להרכיב את הנהגים לרגליים
  • 1x TOF10120 ו 1x Mini 9g Servo Servo לעיניים כמה כבלים וברגים
  • 1x גלגל אוניברסלי, גובה = 15 מ"מ

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

באופן אידיאלי יהיה לך גם לרשותך:

  • מולטימטר
  • לוח לחם
  • מגהץ

לאלה כמו גם לחותך הלייזר, בדוק אם יש לך fablab מסביב למקום שלך! אלה מקומות מצוינים להכיר כמה יוצרים מעוררי השראה!

שלב 2: הכנת הרגליים

הכנת הרגליים
הכנת הרגליים
הכנת הרגליים
הכנת הרגליים
הכנת הרגליים
הכנת הרגליים
הכנת הרגליים
הכנת הרגליים

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

אז עכשיו, כיצד לשלוט על מנוע 28BYJ באמצעות נהג 4988? התשובה היא … קצת ארוכה. לא הצלחתי לגרום לזה להתאים בצורה מסודרת למדריך הזה, אז הכנתי עוד אחד בדיוק למטרה הזו שתמצא כאן. אני מזמין אותך לבצע את השלבים האלה עד הסוף עם יצירת לוח אב טיפוס קטן בגודל 26X22 מ"מ עם חורים 2x2 מ"מ באורך 17 מ"מ להרכבה בצדדים כפי שמוצג בתמונה למעלה (שים לב שכאמור במאמר שהוזכר החוט הצהוב בצד שמאל החוצה הוא רק שם כדי להזכיר לך להלחים SLP ו- RST יחד).

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

שלב 3: אני רואה את האור !! (אופציונאלי)

אני רואה את האור !! (אופציונאלי)
אני רואה את האור !! (אופציונאלי)
אני רואה את האור !! (אופציונאלי)
אני רואה את האור !! (אופציונאלי)
אני רואה את האור !! (אופציונאלי)
אני רואה את האור !! (אופציונאלי)

אם אתה רק רוצה לבנות ותו לא, קפץ לפסקה הקודמת של שלב זה כדי לראות כיצד לחבר TOF10120 למיקרו: bit. אם לא תעקוב.

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

מה שאנו מעוניינים בו כעת הוא לצייד את הרובוט שלנו בחיישנים, כדי שהרובוט שלנו ירכוש מידע על סביבתו. ישנם סוגים רבים של חיישנים זמינים, אך כאן נתמקד בחיישן קרבה. כשעיצבתי את הרובוט הזה, המטרה שלי הייתה בעיקר שהרובוט לא יקרוס לשום דבר, לכן רציתי שהוא יזהה מכשולים. בשביל זה יש גם כמה אפשרויות. דבר ראשון, פשוט מאוד, יכול להיות שימוש בפגושים, אבל אני מוצא את המידע על הסביבה מעט מוגבל. מצד שני, אתה יכול לחשוב על הוספת מצלמה (או לידר או קינקט!). אני אוהב מצלמות, ראיית מחשב וכל הדברים האלה, אך למרבה הצער Micro: bit אינו תומך באלה (נצטרך להשתמש ב- Pi פטל כדי לתמוך במכשירים כאלה, לא מיקרו: ביט או Arduino).

אז מה תומך ב- micro: bit שנמצא בין מצלמה לפגושים? ישנם חיישנים פעילים קטנים ששולחים אור לסביבה ובודקים מה מתקבל כדי לקבל מידע על העולם. זה שכבר ידעתי עליו הוא GP2Y0A41SK0F שמשתמש בשיטת טריאנגולציה להערכת המרחק למכשולים. עם זאת תהיתי אם אוכל למצוא משהו טוב יותר, אז עשיתי מחקר ובסופו של דבר גיליתי את TOF10120 (ואת ה- GY-VL53L0XV2 אבל עדיין לא קיבלתי אותו:(). להלן מאמר נחמד שתוכל לגלות אותו. בעצם חיישן זה פולט אות אינפרא אדום המשקף על מכשולים ואז הוא מקבל את האור המוחזר. בהתאם לזמן שהאור לקח הלוך ושוב, החיישן יכול לאמוד את מרחק המכשול (ומכאן השם TOF = זמן הטיסה בשל גודלו הקטן, טווח המרחקים ודרישת ההספק החלטתי להשתמש ב- TOF10120.

בעוד שהרעיון הראשון שלי היה לשים שלושה כאלה על הרובוט (אחד מלפנים ושניים בצדדים), ראש השנה הסיני ומגיפת COVID-19 לא רצו בכך כך מכיוון שנדמה היה שהם גורמים לבעיות במשלוחים. אז מכיוון שהייתי מוגבל ל- TOF10120 אחד, שרציתי לראות גם בצדדים ושיש לי כמה מנועי סרוו, החלטתי להרכיב את החיישן שלי על סרוו. אז שני דברים חסרים עכשיו: איך אני משתמש ב- TOF10120 עם המיקרו: ביט? ואותה שאלה עם הסרוו.

למרבה המזל המיקרו: ביט מצויד בפרוטוקול תקשורת I2C וזה הופך את החיים שלנו לקלים מאוד: חבר את החוט האדום ל -3.3V, שחור לקרקע, ירוק ל- SCL וכחול ל- SDA וזהו עבור החלק של החומרה. לגבי התוכנה, אני ממליץ לך לקרוא קצת על תקשורת I2C ולנסות את קוד הפיתון שצירפתי במיקרו: ביט. תוכנית זו אמורה להדפיס לך את המרחק הנמדד על ידי החיישן ב- REPL (Read Evaluate Print Loop). זהו זה. הרגע נתנו מראה למיקרו: ביט שלנו.

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

שלב 4: פריצת מגן הסוללות

פריצה למגן הסוללות
פריצה למגן הסוללות
פריצה למגן הסוללות
פריצה למגן הסוללות
פריצה למגן הסוללות
פריצה למגן הסוללות

כעת, לאחר שהכנו את המפעילים והחיישנים שלנו, הגיע הזמן להסתכל על מערכת ניהול הסוללות. על מנת שתלמד עוד על מגן הסוללות שבחרתי, הייתי ממליץ לך לקרוא מאמר זה. אני מוצא את זה מאוד ברור ונגיש. מתוך מאמר זה אנו יכולים לראות יתרונות רבים של מגן הסוללה הזה, אך יש חיסרון אחד חשוב שלא רציתי לקבל: מתג ON/OFF משפיע רק על יציאת ה- USB. המשמעות היא שאם תכבה את המתג, כל שאר הפינים של 3.3V ו- 5V יופעלו. כתוצאה מכך, כאשר אנו משתמשים בסיכות אלה עבור הרובוט שלנו, המתג לא יעשה דבר כלל …

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

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

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

שלב 5: עיצוב וחיתוך תלת מימד

עיצוב וחיתוך תלת מימד
עיצוב וחיתוך תלת מימד
עיצוב וחיתוך תלת מימד
עיצוב וחיתוך תלת מימד

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

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

מכאן התעוררו כמה גרסאות לחיים, מהן בחרתי שתיים:

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

כדי לבנות זאת, עבור אל Fablab המועדף עליך והשתמש בחותך הלייזר שתמצא כדי לחתוך את הדגם המועדף עליך: הראשון המתאים לקבצי design1_5mmMDF.svg ו- design1_3mmMDF התואמים בהתאמה לחלקים לחיתוך ב- 5 מ"מ MDF עץ ואלה לחיתוך מהאחד 3 מ"מ; השני מתאים לקובץ design2_5mmMDF.svg. הגדר את קווי המתאר השחורים לחיתוך ואת האדומים לחריטה.

הערה צדדית: הוספתי את התבנית האדומה רק כדי לסרס אותה. זוהי פונקציית מילוי של הילברט שיצרתי באמצעות קוד הפיתון המצורף.

שלב 6: הרכבת החיה

הרכבת החיה
הרכבת החיה
הרכבת החיה
הרכבת החיה
הרכבת החיה
הרכבת החיה

השלבים בהם פעלתי לצורך הרכבת הגרסה הראשונה של הרובוט הם הבאים (התמונות בדרך כלל צריכות להיות בסדר הנכון):

  1. הסר את המכסה הכחול של המנועים וחתך אותו מעט כדי שהכבל יבלוט מהחלק האחורי של המנוע.
  2. הרכבו את המנועים מכל צד באמצעות ברגים וברגים M2.
  3. הרכיבו את לוח האב -טיפוס בצדדים באמצעות חורי 2x2mm וכמה ברגים וברגים.
  4. שים את מנהלי ההתקנים של A4988 והדביקו את כבלי המנוע כדי לשמור על ניקיון.
  5. הרכבו את הגלגל האוניברסלי מתחת לחלק התחתון והוסיפו את הצדדים.
  6. הרכיבו את לוח הרחבה של המיקרו: ביט בחלק העליון.
  7. הרכיבו את החלק התחתון של המכסה הקדמי הגמיש.
  8. שים את מגן הבטריות וחבר הכל (לשם כך, כיוון שעדיין חיכיתי למשלוח לוח הרחבה שרציתי ושהייתי רק עם כותרות נשיות בולטות, מיחזרתי כבל IDE ממחשב ישן כדי להצליח אין הכבלים שלי תוקעים את הלוח על מנת לכסות את כל זה בכריכה הקדמית המתקפלת). למרות שהקוד שסיפקתי מאוד קל להתאמה, כדי להשתמש בו ישירות, עליך לחבר את STEP השמאלי לסיכה 2, STEP הימני לסיכה 8, שמאל DIR לסיכה 12, DIR הימני לסיכה 1.
  9. שים את המיקרו: ביט בתוסף.
  10. בדוק שהכל עובד עם MoveTest.py לפני שתמשיך הלאה.
  11. הרכיב את המתג על החלק העליון והנח את סיבי הפלסטיק ליד תא הליתיום.
  12. הברג את החלק העליון של הכריכה הקדמית.
  13. הרכיב את הגב וסיימת! וואו! לא ציפיתי לכל כך הרבה צעדים! הרבה יותר קל לחשוב על זה ולעשות את זה מאשר להסביר את זה במילים! (ואני בטוח שעדיין יחסר מידע!)

אם אתה בונה את הגרסה השנייה עם חיישן הקרבה, אז:

  1. בצע את ההוראות למעלה. ההבדל היחיד יהיה שתצטרך להוסיף כמה מרווחי M2 בשלב 7 (למרות שזה מה שעשיתי אבל זה לא נדרש), התעלם משלב 8 ושלב 13 (מכיוון שאין כריכה קדמית)
  2. התקן את מנוע הסרוו עם ברגי M2 וחבר את VCC ו- GND של הסרוו ישירות על 5V של מגן הסוללה, וחבר את כניסת השליטה לפין 0 של המיקרו: ביט.
  3. הרכיבו את שני חלקי העץ שיעלו על גבי הסרוו עם בורג, הברגו עליו את חיישן ה- TOF כמו גם את פיסת הפלסטיק הלבנה שמגיעה עם הסרוו.
  4. הרכבו את היחידה האחרונה הזו על הסרוו וחברו את החיישן באמצעות I2C של מיקרו: ביט כפי שמתואר בשלב 3.

שלב 7: תכנית

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

  • דוגמה 1: שים radioControl.py על המיקרו: סיביות של הרובוט ו- ReadAccelero.py על מיקרו אחר: כדי לשלוט ברובוט בעזרת הנטייה של המיקרו: ביט.
  • דוגמה 2: שים את Autonomous.py בגרסה 2 של הרובוט הוא יחקור את הסביבה.

אלה רק דוגמאות בסיסיות שבהן אתה יכול להשתמש כדי ללכת הרבה יותר רחוק. למשל אני די אוהב לוקליזציה ומיפוי בו זמנית, ובדרך כלל יש כל מה שאתה צריך בגרסה 2 של הרובוט הזה כדי לעשות זאת! למרות שחיסרון אחד גדול עבורי לפרויקט כזה הוא שדרייבר ה- PWM של micro: bit הוא מנהל התוכנה שמשתמש באותו טיימר לכל הערוצים, כלומר כל PWM שהגדרנו חייב להיות בעל תדר זהה (וזה משהו שעשיתי לא יודע מתי כתבתי את הקודים לדוגמה למרות שגיליתי משהו מוזר כשכתבתי Autonomous.py).

שלב 8: התקדמות נוספת

אל תהססו לשפר את העיצוב, פתרו כמה בעיות שלא ראיתי. למשל, אני רוצה בסופו של דבר:

  • הוסף חיישן IR בתחתית הרובוט כדי שיגלה אם הקרקע שחורה או לבנה או אם היא מגיעה לסוף השולחן שלי.
  • שנה את מערכת ניהול הסוללות מכיוון שאני עדיין לא מרוצה ממנה. ואכן, כרגע, כדי להטעין את הסוללה, יש צורך לפרק את הרובוט כדי להוציא את התא או את מגן הסוללה … לכן אני מתכנן: 1. להוסיף מחבר מיני USB בגב הרובוט שאני אני מתחבר למגן הסוללה, כך שאוכל לטעון אותו; 2. חותכים חור בתחתית כדי לראות את נוריות הלייד ממגן הסוללה כדי לראות מתי הטעינה הסתיימה.
  • בדוק אם יש דרך מקובלת להוציא PWM עם תדרים שונים.
  • נסה את VL53L0XV2 להחליף את TOF10120 מכיוון שהוא יכול להיות אופציה זולה יותר שתנגיש אותו לאנשים נוספים. למרות שקראתי יותר על החיישן הזה ונראה שהחברה שעשתה את זה בזול התקשתה בכוונה מאוד בכוונה …
  • בדוק עיצובים שונים של הגלגלים על מנת להפוך אותם לעמידים יותר (כרגע הייתי מצפה שאם אקח את הגלגלים החוצה והחוצה פעמים רבות, העץ ייפגע בהדרגה. אם אהפוך את העץ לגמיש יותר כשישנה את העיצוב תוכל לגרום לזה להימשך זמן רב יותר)

תודה רבה לאנשים מצוות הרובוטיקה הניידת (כיום חלק מהמעבדה לביוברוטוטיקה) של EPFL שעזרו לי רבות להרחיב את הידע שלי באלקטרוניקה ומכניקה!

מוּמלָץ: