האם אתה רוצה ללמוד כיצד לבנות רובוט משלך? ישנם הרבה סוגים שונים של רובוטים שתוכלו ליצור בעצמכם. רוב האנשים רוצים לראות רובוט מבצע את המשימות הפשוטות של מעבר מנקודה A לנקודה B. אפשר לייצר רובוט לחלוטין מרכיבים אנלוגיים או לקנות ערכת התחלה מאפס! בניית רובוט משלך היא דרך מצוינת ללמד את עצמך הן אלקטרוניקה והן תכנות מחשבים.
צעדים
חלק 1 מתוך 6: הרכבת הרובוט
שלב 1. אסוף את הרכיבים שלך
כדי לבנות רובוט בסיסי, תזדקק למספר רכיבים פשוטים. את רוב הרכיבים הללו תוכל למצוא בחנות התחביב האלקטרוניקה המקומית שלך, או במספר קמעונאים מקוונים. כמה ערכות בסיסיות עשויות לכלול גם את כל המרכיבים הללו. רובוט זה אינו דורש הלחמה:
- Arduino Uno (או מיקרו -בקר אחר)
- 2 סרוו סיבובים רציפים
- 2 גלגלים המתאימים לסרווס
- 1 גלגלת גלגלים
- 1 קרש לחם קטן ללא הלחמה (חפשו קרש עם שני קווים חיוביים ושליליים מכל צד)
- חיישן מרחק אחד (עם כבל מחבר בעל ארבעה פינים)
- מתג מיני ללחצן אחד
- נגד 10kΩ
- 1 כבל USB A ל- B
- קבוצה אחת של כותרות מתפרקות
- מחזיק סוללה AA 1 x 6 עם שקע מתח 9V DC
- חבילה אחת של חוטי מגשר או חוט חיבור 22-מד
- סרט דו צדדי חזק או דבק חם
שלב 2. הפוך את מארז הסוללה כך שהגב השטוח כלפי מעלה
אתה תבנה את גוף הרובוט באמצעות ערכת הסוללות כבסיס.
שלב 3. יישר את שני הסרוויים בקצה מארז הסוללות
זה אמור להיות הסוף שחוט הסוללה יוצא משרתי ה- servos צריכים לגעת בתחתית, והמנגנונים המסתובבים של כל אחד מהם צריכים להיות פונים כלפי חוץ של צידי הסוללה. הסרוווס חייב להיות מיושר כראוי כך שהגלגלים יגיעו ישר. חוטי הסרוויס אמורים לרדת מהחלק האחורי של מארז הסוללות.
שלב 4. הדבק את סרווס עם סרט או דבק
ודא שהם מחוברים היטב לאריזה. גב היישומים של סרוו צריך להיות מיושר עם החלק האחורי של הסוללה.
סרוווס אמור כעת לתפוס את החצי האחורי של מארז הסוללות
שלב 5. הדבק את לוח הלחם בניצב על השטח הפתוח על הסוללה
הוא אמור להיתלות מעט בחלק הקדמי של הסוללה וישתרע מעבר לכל צד. וודא שהוא מהודק היטב לפני שתמשיך. השורה "A" צריכה להיות הקרובה ביותר לשרווסים.
שלב 6. חבר את המיקרו -בקר Arduino לחלק העליון של הסרווואים
אם חיברת את סרווס כראוי, צריך להיות שטח שטוח שנוצר על ידי שהם נוגעים בו. הדבק את לוח ה- Arduino על שטח שטוח זה כך שמחברי ה- USB והחשמל של הארדואינו יפנו לאחור (הרחק מלוח הלחם). החלק הקדמי של הארדואינו אמור להיות כמעט חופף את לוח הלחם.
שלב 7. הניחו את הגלגלים על הסרווואים
לחץ בחוזקה על הגלגלים על מנגנון הסיבוב של הסרוו. הדבר עשוי לדרוש כמות משמעותית של כוח, מכיוון שהגלגלים נועדו להתאים בצורה הדוקה ככל האפשר למשיכה הטובה ביותר.
שלב 8. חבר את הגליל לתחתית לוח הלחם
אם אתה הופך את המארז, אתה אמור לראות מעט לוח קרש המתפרש על פני סוללת הסוללה. חבר את הגלגלת ליצירה המורחבת הזו, בעזרת מגדלים במידת הצורך. הגלגלת משמשת כגלגל הקדמי, ומאפשרת לרובוט להסתובב בקלות לכל כיוון.
אם קנית ערכה, יתכן שהגלגול הגיע עם כמה מגביות שתוכל להשתמש בהן כדי להבטיח שהגלגלת תגיע לקרקע. אני
חלק 2 מתוך 6: חיווט הרובוט
שלב 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 מתוך 6: חיווט החשמל
שלב 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 מתוך 6: התקנת תוכנת Arduino
שלב 1. הורד וחלץ את ה- Arduino IDE
זוהי סביבת הפיתוח של Arduino ומאפשרת לכם לתכנת הוראות שתוכלו להעלות למיקרו בקר Arduino שלכם. אתה יכול להוריד אותו בחינם מאת arduino.cc/en/main/software. פתח את הקובץ שהורדת על ידי לחיצה כפולה עליו והעבר את התיקייה פנימה למיקום נגיש. למעשה לא תתקין את התוכנית. במקום זאת, פשוט תפעיל אותו מהתיקיה שחולצה על ידי לחיצה כפולה על arduino.exe.
שלב 2. חבר את מארז הסוללות ל- Arduino
חבר את שקע גב הסוללה למחבר בארדואינו כדי לתת לו כוח.
שלב 3. חבר את ה- Arduino למחשב שלך באמצעות USB
סביר להניח ש- Windows לא יזהה את המכשיר.
שלב 4. הקש
⊞ Win+R וסוג devmgmt.msc.
פעולה זו תפעיל את מנהל ההתקנים.
שלב 5. לחץ באמצעות לחצן העכבר הימני על "התקן לא ידוע" בקטע "התקנים אחרים" ובחר "עדכן תוכנת מנהל התקן
" אם אינך רואה אפשרות זו, לחץ על "מאפיינים" במקום זאת, בחר בכרטיסייה "מנהל התקן" ולאחר מכן לחץ על "עדכן מנהל התקן".
שלב 6. בחר "דפדף במחשב שלי אחר תוכנת מנהל התקן
" זה יאפשר לך לבחור את מנהל ההתקן שהגיע עם ה- Arduino IDE.
שלב 7. לחץ על "עיון" ואז נווט לתיקיה שחילצת קודם לכן
בפנים תמצא תיקיית "מנהלי התקנים".
שלב 8. בחר את התיקייה "מנהלי התקנים" ולחץ על "אישור
" אשר אם ברצונך להמשיך אם אתה מוזהר מפני תוכנה לא ידועה.
חלק 5 מתוך 6: תכנות הרובוט
שלב 1. התחל את Arduino IDE על ידי לחיצה כפולה על הקובץ arduino.exe בתיקייה IDE
תתקבל בברכה בפרויקט ריק.
שלב 2. הדבק את הקוד הבא כדי לגרום לרובוט שלך ללכת ישר
הקוד להלן יגרום ל- Arduino שלך להתקדם ללא הרף.
#include // זה מוסיף את הספרייה "Servo" לתוכנית // הבא יוצר שני אובייקטים של סרוו Servo leftMotor; סרוו ימני מנוע; הגדרת חלל () {leftMotor.attach (12); // אם שינית בטעות את מספרי הסיכה עבור סרוווס שלך, תוכל להחליף את המספרים כאן rightMotor.attach (13); } לולאת חלל () {leftMotor.write (180); // בסיבוב רציף, 180 אומר לסרוו לנוע במלוא המהירות "קדימה". ימני מנוע. לכתוב (0); // אם שני אלה נמצאים ב -180, הרובוט יסתובב במעגל מכיוון שהסרווס מתהפכים. "0", אומר לו לזוז במהירות מלאה "אחורה". }
שלב 3. בנה והעלה את התוכנית
לחץ על לחצן החץ הימני בפינה השמאלית העליונה כדי לבנות ולהעלות את התוכנית ל- Arduino המחובר.
ייתכן שתרצה להרים את הרובוט מהמשטח, מכיוון שהוא פשוט ימשיך להתקדם לאחר העלאת התוכנית
שלב 4. הוסף את פונקציונליות מתג ההרג
הוסף את הקוד הבא לקטע "לולאת void ()" בקוד שלך כדי לאפשר את מתג ההרג, מעל הפונקציות "write ()".
if (digitalRead (2) == HIGH) // זה רושם כאשר הכפתור נלחץ על סיכה 2 של הארדואינו {while (1) {leftMotor.write (90); // "90" הוא מיקום ניטרלי עבור הסרווואים, שאומר להם להפסיק לפנות ימינה Motor.write (90); }}
שלב 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 (); }}