איך להכין רובוט בבית (עם תמונות)

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

איך להכין רובוט בבית (עם תמונות)
איך להכין רובוט בבית (עם תמונות)

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

וִידֵאוֹ: איך להכין רובוט בבית (עם תמונות)
וִידֵאוֹ: איך להכין מפה במיינקרפט 1.16! 2024, נוֹבֶמבֶּר
Anonim

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

שלב

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

1123333 1
1123333 1

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

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

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

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

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

1123333 3
1123333 3

שלב 3. מסדרים שני סרוויים הפונים לאותו כיוון בקצה תא הסוללות

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

1123333 4
1123333 4

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

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

כעת, סרוווס צריכים לתפוס מחצית מהשטח בחלק האחורי של תא הסוללות

1123333 5
1123333 5

שלב 5. הדבק את לוח הבדיקה בניצב לחלל הנותר בתא הסוללה

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

1123333 6
1123333 6

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

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

1123333 7
1123333 7

שלב 7. התקן את הגלגלים על הסרווואים

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

1123333 8
1123333 8

שלב 8. התקן את הגלגל החופשי בתחתית לוח הבדיקה

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

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

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

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 מתוך 5: התקנת כבל החשמל

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 מתוך 5: התקנת תוכנת Arduino

1123333 30
1123333 30

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

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

1123333 31
1123333 31

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

הכנס את השקע האחורי של הסוללה למחבר ב- 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 מתוך 5: תכנות רובוטים

1123333 38
1123333 38

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

תקבל את פניך בפרויקט ריק.

1123333 39
1123333 39

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

הקוד להלן ישמור על הארדואינו שלך.

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

1123333 40
1123333 40

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

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

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

1123333 41
1123333 41

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

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

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

1123333 42
1123333 42

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

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

#include // הפקודה הבאה יוצרת שני אובייקטים של סרוו 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); }

דוגמא

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

#כלול סרוו leftMotor; סרוו ימני מנוע; const int serialPeriod = 250; // קוד זה נותן להשהיית זמן הפלט של הקונסולה להיות כל 1/4 שנייה (250 אלפיות השנייה) unsigned long timeSerialDelay = 0; const int loopPeriod = 20; // קוד זה מגדיר את תדר קריאת החיישן ל -20 אלפיות השנייה, שהם 50 הרץ ללא סימן זמן ארוך LoopDelay = 0; // קוד זה מקצה את הפונקציות TRIG ו- ECHO לסיכות בארדואינו. התאם את המספרים כאן אם תחבר אותם בצורה שונה const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // קוד זה מגדיר שני מצבי רובוט אפשריים: המשך קדימה או פנה שמאלה #הגדר DRIVE_FORWARD 0 #הגדר TURN_LEFT מצב int int = 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 (); // קוד זה מורה לחיישן לקרוא ולאחסן נתונים אודות מצב המרחק הנמדדMachine (); 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; // לוקח בערך 0.5 שניות להסתובב 90 מעלות. ייתכן שיהיה עליך להתאים ערך זה אם הגלגלים שלך שונים בגודלם מהגודל בדוגמה turnTartTime = millis (); // שמור על המצב כשהרובוט מתחיל להסתובב בעוד ((millis ()-turnStartTime) <timeToTurnLeft) // שמור על מחזור זה עד שעבר TimeToTurnLeft (500) {// פנה שמאלה, זכור כי כאשר שניהם "180", הרובוט יסתובב. rightMotor.write (180); leftMotor.write (180); } state = DRIVE_FORWARD; }} void readUltrasonicSensors () {// זה מיועד לקולי 2. ייתכן שיהיה עליך לשנות פקודה זו אם אתה משתמש בחיישן אחר. DigitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // משוך את סיכת TRIG גבוה למשך 10 מיקרו שניות לפחות DigitalWrite (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 (); }}

מוּמלָץ: