האם אתה רוצה ללמוד כיצד לייצר רובוט משלך? ישנם סוגים רבים ושונים של רובוטים שתוכלו לבנות בעצמכם. רוב האנשים רוצים לראות רובוט שעושה את העבודה הקלה מנקודה א 'עד ב'. אתה יכול לבנות רובוט לחלוטין מרכיבים אנלוגיים או לקנות ערכת התחלה. יצירת רובוט משלך היא דרך מצוינת ללמוד אלקטרוניקה ותכנות מחשבים.
שלב
חלק 1 מתוך 5: הרכבת הרובוט
שלב 1. הרכיב את הרכיבים שלך
כדי לבנות רובוט בסיסי, תזדקק לכמה רכיבים פשוטים. את רוב הרכיבים הללו אתה יכול למצוא בחנות התחביב האלקטרוניקה המקומית שלך, או בכמה קמעונאים מקוונים. חלק מהערכות כוללות את כל המרכיבים הללו. רובוט זה אינו דורש הלחמה:
- Arduino Uno (או מיקרו -בקר אחר)
- 2 סרוו 360 מעלות
- 2 גלגלים תואמים סרוו
- גלגל אחד חינם
- לוח בדיקה אחד (קרש לחם או לוח פרוייקט) שלא מולחם (חפשו לוח בדיקה בעל שתי שורות חיוביות ושליליות מכל צד)
- חיישן קרבה אחד (עם כבל מחבר בעל ארבע פינים)
- מתג כפתור 1
- נגד אחד 10kΩ
- 1 כבל USB A ל- B
- סט כותרות שבירות
- מחזיק סוללה 1 x AA עם שקע חשמל 9V DC
- חבילה אחת של כבלי מגשר 22. או כבל יחיד
- בידוד הלוך ושוב (סרט כפול) או אקדח דבק
שלב 2. סובב את תא הסוללה כך שהגב השטוח שלו פונה כלפי מעלה
אתה תבנה את גוף הרובוט באמצעות תא הסוללות כבסיס.
שלב 3. מסדרים שני סרוויים הפונים לאותו כיוון בקצה תא הסוללות
קצה זה הוא הקצה שבו הכבל יוצא מהסוללה. סרוו צריך לגעת בתחתית, ומנגנון הסיבוב של כל סרוו צריך להיות כלפי חוץ מצדדי תא הסוללה. חשוב כי סרוויים אלה יהיו מסודרים כהלכה כך שהגלגלים ישרים. הכבלים לסרוו חייבים לצאת מהחלק האחורי של תא הסוללה.
שלב 4. הדבק את סרווס עם הבידוד או הדבק שלך
וודא שהשרוו מחובר היטב לתא הסוללה. החלק האחורי של הסרוו חייב להיות מיושר עם החלק האחורי של תא הסוללה.
כעת, סרוווס צריכים לתפוס מחצית מהשטח בחלק האחורי של תא הסוללות
שלב 5. הדבק את לוח הבדיקה בניצב לחלל הנותר בתא הסוללה
לוח בדיקה זה יתלה מעט מעל חזית תא הסוללה, וישתרע לשני הצדדים. וודא כי לוח הבדיקה צמוד לפני שתמשיך. השורה "A" צריכה להיות הקרובה ביותר לסרוו.
שלב 6. חבר את המיקרו -בקר Arduino לראש הסרוו
אם אתה מחבר את הסרוו בצורה נכונה, אמור להיות חלק שטוח משני הסרבים שנוגעים זה בזה. הדבק את לוח ה- Arduino לנקודה שטוחה זו כך שמחברי הכוח USB ו- Arduino יפנו כלפי מטה (הרחק מלוח הבדיקה). החלק הקדמי של הארדואינו יחפוף ללוח הבדיקה.
שלב 7. התקן את הגלגלים על הסרווואים
לחץ בחוזקה על הגלגלים על מנגנון הסרוו המסתובב. הדבר עשוי לדרוש כוח רב מכיוון שהגלגלים נועדו להיות בעלי חורים התואמים בדיוק את צורת קצה הסרווו.
שלב 8. התקן את הגלגל החופשי בתחתית לוח הבדיקה
אם אתה הופך את הרובוט הפוך, תראה לוח בדיקה קטן תלוי מתא הסוללה. חבר את הגלגל החופשי לחלק התלוי הזה. השתמש טריז במידת הצורך. הגלגל החופשי משמש כגלגל הקדמי המאפשר לרובוט להסתובב לכל כיוון בקלות.
אם רכשת ערכה, ייתכן שלגלגל החינמי יש כמה טריזים שתוכל להשתמש בהם כדי להבטיח שהגלגל יהיה חופשי לגעת בקרקע
חלק 2 מתוך 5: חיווט הרובוט
שלב 1. חותכים שתי כותרות בעלות 3 פינים
תוכל להשתמש בזה לחיבור הסרוו ללוח הבדיקה. דחוף את הסיכות כלפי מטה דרך הכותרות, כך שיצאו מרחק שווה משני הצדדים.
שלב 2. הכנס את שתי הכותרות לפינים 1-3 ו- 6-8 בשורה E בלוח הבדיקה
וודא שהם מוכנסים היטב או היטב.
שלב 3. חבר את חוטי הסרו עם הכותרת, כשהחוט השחור בצד שמאל (סיכות 1 ו -6)
זה יחבר את סרוו עם לוח הבדיקה. וודא שהסרוו השמאלי מחובר לכותרת השמאלית, והסרוו הימני מחובר לכותרת הימנית.
שלב 4. חבר את חוט המגשר האדום מהסיכות C2 ו- C7 לסיכת המסילה האדומה (חיובי)
הקפד להשתמש במעקה האדום בגב לוח הבדיקה (קרוב יותר לשאר גוף הרובוט).
שלב 5. חבר את חוט המגשר השחור מהסיכות B1 ו- B6 לסיכת המסילה הכחולה (קרקע)
הקפד להשתמש במעקה הכחול בגב לוח הבדיקה. אין לחבר את הכבל לסיכת המסילה האדומה.
שלב 6. חבר את חוטי המגשר הלבנים מהסיכות 12 ו -13 בארדואינו ל- A3 ו- A8
זה יאפשר לארדואינו לשלוט בסרוו ולסובב את הגלגל.
שלב 7. חבר את החיישן לחזית לוח הבדיקה
החיישן אינו מותקן למסילת הכוח החיצונית בלוח הבדיקה, אלא לשתי שורות הפינים הראשונות המסומנות באותיות (J). הקפד למקם אותו באמצע עם מספר שווה של סיכות ריקות מכל צד.
שלב 8. חבר את חוט המגשר השחור מהפין I14 לסיכת המסילה הכחולה הראשונה בצד שמאל של החיישן
זה יקרקע את החיישן.
שלב 9. חבר את חוט המגשר האדום מהפין I17 לסיכת המסילה האדומה הראשונה מימין לחיישן
זה יספק את החיישן.
שלב 10. חבר את חוטי המגשר הלבנים מהפין I15 לסיכה 9 בארדואינו, ומ- I16 לסיכה 8
זה יספק מידע מהחיישן אל המיקרו -בקר.
חלק 3 מתוך 5: התקנת כבל החשמל
שלב 1. הפוך את הרובוט כדי שתוכל לראות את תא הסוללה בפנים
סדר את תא הסוללה כך שהכבל יוצא דרך השמאלית התחתונה.
שלב 2. חבר את החוט האדום עם הקפיץ השני מצד שמאל בתחתיתו
וודא שתא הסוללה מיושר כראוי או פונה לכיוון הנכון.
שלב 3. חבר את החוט השחור עם הקפיץ האחרון בצד ימין למטה
שני החוטים הללו יעזרו לספק את המתח הנכון ל- Arduino.
שלב 4. חבר את החוטים האדומים והשחורים לסיכות האדומות והכחולות הנמצאות בצד ימין בחלקו האחורי של לוח הבדיקה
החוט השחור צריך לעבור לסיכת המסילה הכחולה בסיכה 30. החוט האדום צריך לעבור לסיכת המסילה האדומה בסיכה 30.
שלב 5. חבר את החוט השחור מסיכת ה- GND שבארדואינו לחלק האחורי של המעקה הכחול
חבר את החוט לסיכה 28 במסילה הכחולה.
שלב 6. חבר את החוט השחור מהחלק האחורי של המעקה הכחול לחזית המסילה הכחולה בסיכה 29 לשתי המסילות
אין לחבר את המסילה האדומה מכיוון שאתה עלול לפגוע בארדואינו.
שלב 7. חבר את החוט האדום מחזית המעקה האדום בסיכה 30 לסיכה 5V בארדואינו
זה יספק כוח Arduino.
שלב 8. הכנס את מתג הכפתור למרווח שבין הסיכות 24-26
מתג זה יאפשר לך לכבות את הרובוט מבלי לכבות את הכוח.
שלב 9. חבר את החוט האדום מה- H24 למעקה האדום בסיכה הריקה הבאה מימין לחיישן
זה יספק את הכפתור.
שלב 10. השתמש בנגד לחיבור H26 למעקה הכחול
חבר אותו לסיכה ישירות ליד החוט השחור שחיברת זה עתה בשלבים הקודמים.
שלב 11. חבר את החוט הלבן מ- G26 לסיכה 2 ב- Arduino
זה יאפשר לארדואינו לזהות לחצנים.
חלק 4 מתוך 5: התקנת תוכנת Arduino
שלב 1. הורד וחלץ את Arduino IDE
כאן מפותח Arduino ומאפשר לך לתכנת הוראות אותן תוכל להעלות למיקרו בקר Arduino שלך. אתה יכול להוריד אותו בחינם מאת arduino.cc/en/main/software. פתח את הקובץ שהורדת על ידי לחיצה כפולה על הקובץ והעברת התיקייה שהוא מכיל למיקום נגיש. למעשה לא תתקין את התוכנית, במקום זאת פשוט תפעיל אותה מתיקייה שחולצה על ידי לחיצה כפולה על arduino.exe.
שלב 2. חבר את תא הסוללה ל- Arduino
הכנס את השקע האחורי של הסוללה למחבר ב- Arduino כדי להפעיל אותו.
שלב 3. הכנס את Arduino למחשב שלך באמצעות USB
רוב הסיכויים ש- Windows לא תזהה את המכשיר.
שלב 4. הקש
Win+R. וסוג devmgmt.msc.
פקודה זו תפתח את מנהל ההתקנים.
שלב 5. לחץ באמצעות לחצן העכבר הימני על התקן לא ידוע תחת התקנים אחרים ובחר עדכן תוכנת מנהל התקן
אם אינך רואה אפשרות זו, לחץ על מאפיינים, בחר בכרטיסיה מנהל התקן ולאחר מכן לחץ על עדכן מנהל התקן.
שלב 6. בחר עיון במחשב אחר תוכנת מנהל התקן
זה יאפשר לך לבחור את מנהלי ההתקנים המובנים שהגיעו עם ה- Arduino IDE.
שלב 7. לחץ על עיון ולאחר מכן פתח את התיקיה שחילצת קודם לכן
תמצא בו את תיקיית הנהגים.
שלב 8. בחר את תיקיית מנהלי ההתקנים ולחץ על אישור
אשר אם ברצונך להמשיך אם אתה מוזהר מפני תוכנה לא ידועה.
חלק 5 מתוך 5: תכנות רובוטים
שלב 1. פתח את Arduino IDE על ידי לחיצה כפולה על הקובץ arduino.exe בתיקייה IDE
תקבל את פניך בפרויקט ריק.
שלב 2. הדבק או הדבק את הקוד הבא כדי להפוך את הרובוט שלך למתקדם
הקוד להלן ישמור על הארדואינו שלך.
#include // זה מוסיף את הספרייה "Servo" לתוכנית // הפקודה הבאה יוצרת שני אובייקטים של סרוו Servo leftMotor; סרוו ימני מנוע; הגדרת חלל () {leftMotor.attach (12); // אם החלפת בטעות את מספרי הסיכה בסרוו שלך, תוכל להחליף את המספרים כאן rightMotor.attach (13); } לולאת חלל () {leftMotor.write (180); // עם סיבוב 360 מעלות (סיבוב רציף), המספר 180 מורה לסרוו לנוע "קדימה" במהירות מלאה. rightMotor.write (0); // אם שני הערכים הם 180, הרובוט יסתובב במעגל מכיוון שהסרוו הפוך. "0" אומר לרובוט לנוע "אחורה" במהירות מלאה. }
שלב 3. צור והעלה את התוכנית
לחץ על לחצן החץ הימני בפינה השמאלית העליונה כדי ליצור ולהעלות תוכנית ל- Arduino המחובר.
ייתכן שתרצה להרים את הרובוט מפני השטח מכיוון שהרובוט ימשיך ללכת קדימה לאחר העלאת התוכנית
שלב 4. הוסף פונקציית מתג עצירה (מתג הרג)
הוסף את הקוד הבא לקטע "לולאת void ()" בקוד שלך כדי להוסיף פונקציית מתג עצירה על גבי הפונקציה "write ()".
if (digitalRead (2) == HIGH) // פקודה זו מופעלת כאשר הכפתור נלחץ על סיכה 2 Arduino {while (1) {leftMotor.write (90); // "90" היא המיקום הנייטרלי של הסרוו, שאומר לסרוו להפסיק לפנות ימינה Motor.write (90); }}
שלב 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 (); }}