כיצד לבנות רובוט בבית (עם תמונות)

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

כיצד לבנות רובוט בבית (עם תמונות)
כיצד לבנות רובוט בבית (עם תמונות)

וִידֵאוֹ: כיצד לבנות רובוט בבית (עם תמונות)

וִידֵאוֹ: כיצד לבנות רובוט בבית (עם תמונות)
וִידֵאוֹ: סקצ'אפ - שיעור 8# - הוצאת תמונות 2024, מאי
Anonim

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

צעדים

חלק 1 מתוך 6: הרכבת הרובוט

1123333 1
1123333 1

שלב 1. אסוף את הרכיבים שלך

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

  • Arduino Uno (או מיקרו -בקר אחר)
  • 2 סרוו סיבובים רציפים
  • 2 גלגלים המתאימים לסרווס
  • 1 גלגלת גלגלים
  • 1 קרש לחם קטן ללא הלחמה (חפשו קרש עם שני קווים חיוביים ושליליים מכל צד)
  • חיישן מרחק אחד (עם כבל מחבר בעל ארבעה פינים)
  • מתג מיני ללחצן אחד
  • נגד 10kΩ
  • 1 כבל USB A ל- B
  • קבוצה אחת של כותרות מתפרקות
  • מחזיק סוללה AA 1 x 6 עם שקע מתח 9V DC
  • חבילה אחת של חוטי מגשר או חוט חיבור 22-מד
  • סרט דו צדדי חזק או דבק חם
1123333 2
1123333 2

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

אתה תבנה את גוף הרובוט באמצעות ערכת הסוללות כבסיס.

1123333 3
1123333 3

שלב 3. יישר את שני הסרוויים בקצה מארז הסוללות

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

1123333 4
1123333 4

שלב 4. הדבק את סרווס עם סרט או דבק

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

סרוווס אמור כעת לתפוס את החצי האחורי של מארז הסוללות

1123333 5
1123333 5

שלב 5. הדבק את לוח הלחם בניצב על השטח הפתוח על הסוללה

הוא אמור להיתלות מעט בחלק הקדמי של הסוללה וישתרע מעבר לכל צד. וודא שהוא מהודק היטב לפני שתמשיך. השורה "A" צריכה להיות הקרובה ביותר לשרווסים.

1123333 6
1123333 6

שלב 6. חבר את המיקרו -בקר Arduino לחלק העליון של הסרווואים

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

1123333 7
1123333 7

שלב 7. הניחו את הגלגלים על הסרווואים

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

1123333 8
1123333 8

שלב 8. חבר את הגליל לתחתית לוח הלחם

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

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

חלק 2 מתוך 6: חיווט הרובוט

1123333 9
1123333 9

שלב 1. מנתקים שתי כותרות בעלות 3 פינים

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

1123333 10
1123333 10

שלב 2. הכנס את שתי הכותרות לסיכות 1-3 ו-6-8 בשורה E בלוח הלחם

וודא שהם מוכנסים היטב.

1123333 11
1123333 11

שלב 3. חבר את כבלי הסרוו לכותרות, כשהכבל השחור בצד שמאל (סיכות 1 ו -6)

זה יחבר את סרווס ללוח הלחם. וודא שהסרוו השמאלי מחובר לכותרת השמאלית והסרוו הימני לכותרת הימנית.

1123333 12
1123333 12

שלב 4. חבר חוטי מגשר אדומים מסיכות C2 ו- C7 לסיכות מסילה אדומות (חיוביות)

הקפד להשתמש במעקה האדום בגב לוח הלחם (קרוב יותר לשאר המארז).

1123333 13
1123333 13

שלב 5. חבר את חוטי המגשר השחורים מהסיכות B1 ו- B6 לסיכות המסילה הכחולות (הקרקעיות)

הקפד להשתמש במעקה הכחול בחלק האחורי של לוח הלחם. אין לחבר אותם לסיכות המסילה האדומות.

1123333 14
1123333 14

שלב 6. חבר חוטי מגשר לבנים מהסיכות 12 ו -13 בארדואינו ל- A3 ו- A8

זה יאפשר לארדואינו לשלוט בסרווואים ולהפוך את הגלגלים.

1123333 15
1123333 15

שלב 7. חבר את החיישן לחזית לוח הלחם

הוא אינו מחובר למסילות החשמל החיצוניות בלוח הלחם, אלא לשורה הראשונה של סיכות עם אותיות (J). הקפד למקם אותו במרכז המדויק, עם מספר סיכות שווה בכל צד.

1123333 16
1123333 16

שלב 8. חבר חוט מגשר שחור מהפין I14 לפין המסילה הכחול הראשון הזמין בצד שמאל של החיישן

זה יקרקע את החיישן.

1123333 17
1123333 17

שלב 9. חבר חוט מגשר אדום מהפין I17 לפין המסילה האדום הראשון הזמין מימין לחיישן

זה יניע את החיישן.

1123333 18
1123333 18

שלב 10. חבר את חוטי המגשר הלבנים מהפין I15 לסיכה 9 בארדואינו, ומ- I16 לסיכה 8

זה יזין מידע מהחיישן אל המיקרו -בקר.

חלק 3 מתוך 6: חיווט החשמל

1123333 19
1123333 19

שלב 1. הפוך את הרובוט על צדו כך שתוכל לראות את הסוללות בחפיסה

כוון אותו כך שכבל הסוללה יוצא בצד שמאל בתחתית.

1123333 20
1123333 20

שלב 2. חבר חוט אדום למעיין השני מצד שמאל בתחתית

וודא כי ערכת הסוללות מכוונת נכון.

1123333 21
1123333 21

שלב 3. חבר חוט שחור למעיין האחרון בצד ימין למטה

שני הכבלים הללו יעזרו לספק את המתח הנכון ל- Arduino.

1123333 22
1123333 22

שלב 4. חבר את החוטים האדומים והשחורים לפינים הימניים-אדומים והכחולים בחלק האחורי של לוח הלחם

יש לחבר את הכבל השחור לסיכת המסילה הכחולה בסיכה 30. יש לחבר את הכבל האדום לסיכת המסילה האדומה בסיכה 30.

1123333 23
1123333 23

שלב 5. חבר חוט שחור מסיכת ה- GND שבארדואינו למעקה הכחול האחורי

חבר אותו לפין 28 במסילה הכחולה.

1123333 24
1123333 24

שלב 6. חבר חוט שחור מהמסילה הכחולה האחורית למעקה הכחול הקדמי בסיכה 29 לכל אחד

אין לחבר את המסילות האדומות, מכיוון שסביר להניח שתפגע בארדואינו.

1123333 25
1123333 25

שלב 7. חבר חוט אדום מהמסילה האדומה הקדמית בסיכה 30 לסיכה 5V בארדואינו

זה יספק כוח Arduino.

1123333 26
1123333 26

שלב 8. הכנס את מתג כפתור הלחיצה במרווח בין השורות בפינים 24-26

מתג זה יאפשר לך לכבות את הרובוט מבלי לנתק את החשמל.

1123333 27
1123333 27

שלב 9. חבר חוט אדום מ- H24 למסילה האדומה בסיכה הזמינה הבאה מימין לחיישן

זה יפעיל את הכפתור.

1123333 28
1123333 28

שלב 10. השתמש בנגד לחיבור H26 למעקה הכחול

חבר אותו לסיכה ישירות ליד החוט השחור שחיברת לפני מספר צעדים.

1123333 29
1123333 29

שלב 11. חבר חוט לבן מ- G26 לסיכה 2 על הארדואינו

זה יאפשר ל- Arduino לרשום את כפתור הלחיצה.

חלק 4 מתוך 6: התקנת תוכנת Arduino

1123333 30
1123333 30

שלב 1. הורד וחלץ את ה- Arduino IDE

זוהי סביבת הפיתוח של Arduino ומאפשרת לכם לתכנת הוראות שתוכלו להעלות למיקרו בקר Arduino שלכם. אתה יכול להוריד אותו בחינם מאת arduino.cc/en/main/software. פתח את הקובץ שהורדת על ידי לחיצה כפולה עליו והעבר את התיקייה פנימה למיקום נגיש. למעשה לא תתקין את התוכנית. במקום זאת, פשוט תפעיל אותו מהתיקיה שחולצה על ידי לחיצה כפולה על arduino.exe.

1123333 31
1123333 31

שלב 2. חבר את מארז הסוללות ל- Arduino

חבר את שקע גב הסוללה למחבר בארדואינו כדי לתת לו כוח.

1123333 32
1123333 32

שלב 3. חבר את ה- Arduino למחשב שלך באמצעות USB

סביר להניח ש- Windows לא יזהה את המכשיר.

1123333 33
1123333 33

שלב 4. הקש

⊞ Win+R וסוג devmgmt.msc.

פעולה זו תפעיל את מנהל ההתקנים.

1123333 34
1123333 34

שלב 5. לחץ באמצעות לחצן העכבר הימני על "התקן לא ידוע" בקטע "התקנים אחרים" ובחר "עדכן תוכנת מנהל התקן

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

1123333 35
1123333 35

שלב 6. בחר "דפדף במחשב שלי אחר תוכנת מנהל התקן

" זה יאפשר לך לבחור את מנהל ההתקן שהגיע עם ה- Arduino IDE.

1123333 36
1123333 36

שלב 7. לחץ על "עיון" ואז נווט לתיקיה שחילצת קודם לכן

בפנים תמצא תיקיית "מנהלי התקנים".

1123333 37
1123333 37

שלב 8. בחר את התיקייה "מנהלי התקנים" ולחץ על "אישור

" אשר אם ברצונך להמשיך אם אתה מוזהר מפני תוכנה לא ידועה.

חלק 5 מתוך 6: תכנות הרובוט

1123333 38
1123333 38

שלב 1. התחל את Arduino IDE על ידי לחיצה כפולה על הקובץ arduino.exe בתיקייה IDE

תתקבל בברכה בפרויקט ריק.

1123333 39
1123333 39

שלב 2. הדבק את הקוד הבא כדי לגרום לרובוט שלך ללכת ישר

הקוד להלן יגרום ל- Arduino שלך להתקדם ללא הרף.

#include // זה מוסיף את הספרייה "Servo" לתוכנית // הבא יוצר שני אובייקטים של סרוו Servo leftMotor; סרוו ימני מנוע; הגדרת חלל () {leftMotor.attach (12); // אם שינית בטעות את מספרי הסיכה עבור סרוווס שלך, תוכל להחליף את המספרים כאן rightMotor.attach (13); } לולאת חלל () {leftMotor.write (180); // בסיבוב רציף, 180 אומר לסרוו לנוע במלוא המהירות "קדימה". ימני מנוע. לכתוב (0); // אם שני אלה נמצאים ב -180, הרובוט יסתובב במעגל מכיוון שהסרווס מתהפכים. "0", אומר לו לזוז במהירות מלאה "אחורה". }

1123333 40
1123333 40

שלב 3. בנה והעלה את התוכנית

לחץ על לחצן החץ הימני בפינה השמאלית העליונה כדי לבנות ולהעלות את התוכנית ל- Arduino המחובר.

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

1123333 41
1123333 41

שלב 4. הוסף את פונקציונליות מתג ההרג

הוסף את הקוד הבא לקטע "לולאת void ()" בקוד שלך כדי לאפשר את מתג ההרג, מעל הפונקציות "write ()".

if (digitalRead (2) == HIGH) // זה רושם כאשר הכפתור נלחץ על סיכה 2 של הארדואינו {while (1) {leftMotor.write (90); // "90" הוא מיקום ניטרלי עבור הסרווואים, שאומר להם להפסיק לפנות ימינה Motor.write (90); }}

1123333 42
1123333 42

שלב 5. העלה ובדוק את הקוד שלך

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

#include // הדברים הבאים יוצרים שני אובייקטים של סרוו Servo leftMotor; סרוו ימני מנוע; הגדרת חלל () {leftMotor.attach (12); rightMotor.attach (13); } לולאת void () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }

חלק 6 מתוך 6: דוגמה

שלב 1. עקוב אחר דוגמה

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

#כלול סרוו leftMotor; סרוו ימני מנוע; const int serialPeriod = 250; // זה מגביל את הפלט לקונסולה לפעם אחת בכל 1/4 שנייה ללא סימן ארוך longSerialDelay = 0; const int loopPeriod = 20; // זה קובע את התדירות שבה החיישן לוקח קריאה ל -20 ms, שהיא תדירות של 50Hz ללא סימן זמן ארוך LoopDelay = 0; // זה מקצה את הפונקציות TRIG ו- ECHO לסיכות בארדואינו. בצעו התאמות למספרים כאן אם התחברת אחרת const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // זה מגדיר את שני המצבים האפשריים של הרובוט: נהיגה קדימה או פנייה שמאלה #הגדר DRIVE_FORWARD 0 #הגדר TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = נסיעה קדימה (DEFAULT), 1 = פנייה שמאלה להגדרת חלל () {Serial.begin (9600); // תצורות סיכות חיישן אלה pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // זה מקצה את המנועים לסיכות הארדואינו leftMotor.attach (12); rightMotor.attach (13); } לולאת void () {if (digitalRead (2) == HIGH) // מזהה את מתג ההרג {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // זה מדפיס הודעות באגים לקונסולה הטורית אם (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // זה מורה לחיישן לקרוא ולאחסן את המרחקים הנמדדים stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // אם לא זוהו מכשולים {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // אם אין דבר מול הרובוט. ultrasonicDistance יהיה שלילי עבור כמה אולטרסאונד אם אין מכשול {// סע קדימה rightMotor.write (180); leftMotor.write (0); } אחר // אם יש אובייקט לפנינו {state = TURN_LEFT; }} אחרת אם (state == TURN_LEFT) // אם מתגלה מכשול, פנה שמאלה {unsigned long timeToTurnLeft = 500; // זה לוקח בערך.5 שניות להסתובב 90 מעלות. ייתכן שיהיה עליך להתאים זאת אם הגלגלים שלך הם בגודל שונה מהדוגמה turnTartTime = millis (); // חסוך את הזמן שהתחלנו לפנות בעוד ((millis ()-turnStartTime) <timeToTurnLeft) // הישאר בלולאה זו עד שחלף timeToTurnLeft {// פנה שמאלה, זכור שכאשר שניהם יוגדרו ל- "180" הוא יפנה. rightMotor.write (180); leftMotor.write (180); } state = DRIVE_FORWARD; }} void readUltrasonicSensors () {// זה מיועד לקולי 2. ייתכן שיהיה עליך לשנות פקודות אלה אם אתה משתמש בחיישן אחר. DigitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // שומר את סיכת הטריג גבוהה לפחות במשך 10 מיקרו שניות דיגיטאליות (Ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // להלן שגיאות באגים במסוף. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("ס"מ"); Serial.println (); timeSerialDelay = millis (); }}

מוּמלָץ: