כיצד לגרום למכשול להימנע מרובוט באמצעות ארדואינו?

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



(תמונה באדיבות: עיכול מעגל)

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



כיצד להימנע ממכשולים באמצעות חיישן קולי?

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



שלב 1: איסוף הרכיבים

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



  • שלדת גלגלים לרכב
  • סוֹלְלָה

שלב 2: לימוד הרכיבים

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

Arduino nano הוא לוח מיקרו-בקר ידידותי ללוח-לחם המשמש לבקרה או לביצוע משימות שונות במעגל. אנחנו שורפים א קוד C ב- Arduino Nano כדי לספר ללוח המיקרו-בקר כיצד ואילו פעולות לבצע. ל- Arduino Nano יש בדיוק אותה פונקציונליות כמו ל- Arduino Uno אבל בגודל די קטן. המיקרו-בקר על לוח ה- Arduino Nano הוא ATmega328p.

ארדואינו ננו



ה- L298N הוא מעגל משולב זרם גבוה ומתח גבוה. זהו גשר מלא כפול שנועד לקבל היגיון TTL סטנדרטי. יש לו שתי כניסות מאפשרות המאפשרות למכשיר לפעול באופן עצמאי. ניתן לחבר ולהפעיל שני מנועים בו זמנית. מהירות המנועים משתנה באמצעות סיכות ה- PWM. אפנון רוחב הדופק (PWM) הוא טכניקה בה ניתן לשלוט על זרימת המתח בכל רכיב אלקטרוני. למודול זה יש גשר H האחראי על בקרת כיוון הסיבוב במנועים על ידי היפוך כיוון הזרם. פינים Enable Enable Enable B משמשים לשינוי המהירות של שני המנועים. מודול זה יכול לפעול בין 5 ל 35 וולט ולזרם שיא עד 2A. סיכת הכניסה 1 והכניסה Pin2 ועבור המנוע הראשון והכניסה Pin3 והכניסה Pin4 הם עבור המנוע השני.

נהג מנוע L298N

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

חיישן קולי

שלב 3: הרכבת הרכיבים

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

  1. קח מפגעי גלגלים לרכב והדבק קרש לחם על גביו. הרכיבו את החיישן האולטרסאוני בחלק הקדמי של המסלולים ומכסה הסוללה מאחורי המארזים.
  2. תקן את לוח הארדואינו ננו על לוח הלחם והצמד את נהג המנוע ממש מאחורי לוח הלחם, על המפלים. חבר את הסיכות האפשריות של המנועים ל Pin6 ו- Pin9 של Arduino nano. הפינים In1, In2, In3 ו- In4 של מודול מנהל ההתקן של המנוע מחוברים ל- pin2, pin3, pin4 ו- pin5 של הננו Arduino בהתאמה.
  3. הטריגר והסי של החיישן הקולי מחוברים ל pin11 ו- in10 של הננו Arduino בהתאמה. ה- Vcc וסיכה הקרקעית של החיישן הקולי מחוברים ל -5 V ולאדמה של ה- Arduino Nano.
  4. מודול בקר המנוע מופעל על ידי הסוללה. לוח ה- Arduino Nano מקבל את הכוח מיציאת 5V של מודול הנהג המנוע והחיישן הקולי יקבל את כוחו מלוח ה- Nano של Arduino. המשקל והאנרגיה של הסוללות עשויים להיות הגורם הקובע לביצועים שלהם.
  5. ודא שהחיבורים שלך זהים למוצג להלן בתרשים המעגל.

    תרשים מעגל

שלב 4: תחילת העבודה עם Arduino

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

  1. הורד את הגרסה האחרונה של Arduino IDE מ ארדואינו.
  2. חבר את לוח ה- Arduino Nano למחשב הנייד שלך ופתח את לוח הבקרה. בלוח הבקרה, לחץ על חומרה וסאונד . עכשיו לחץ על מכשירים ומדפסות. כאן מצא את היציאה שאליה מחובר לוח המיקרו שלך. במקרה שלי זה כן COM14 אבל זה שונה במחשבים שונים.

    מציאת נמל

  3. לחץ על תפריט הכלים. ולהגדיר את הלוח ל ארדואינו ננו מהתפריט הנפתח.

    לוח הגדרה

  4. באותו תפריט כלים, הגדר את היציאה למספר היציאה שצפית קודם ב- מכשירים ומדפסות .

    הגדרת נמל

  5. באותו תפריט כלים, הגדר את המעבד ל ATmega328P (Bootloader ישן).

    מעבד

  6. הורד את הקוד המצורף למטה והדבק אותו ב- ID Arduino שלך. הקלק על ה להעלות כפתור לצריבת הקוד בלוח המיקרו-בקר שלך.

    העלה

להורדת הקוד, לחץ כאן.

שלב 5: הבנת הקוד

הקוד מגיב היטב ומסביר את עצמו. אך עדיין, מוסבר להלן

1. בתחילת הקוד, מאותחלים כל הפינים של לוח ה- Arduino Nano המחוברים לחיישן הקולי ומודול כונן הנהג. Pin6 ו- Pin9 הם סיכות PWM שיכולות לשנות את זרימת המתח כדי לשנות את מהירות הרובוט. שני משתנים, מֶשֶׁך, ו מֶרְחָק מאותחל לאחסון נתונים שישמשו אחר כך לחישוב המרחק של החיישן הקולי והמכשול.

int enable1pin = 6; // סיכות למנוע המנוע הראשון int1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // סיכות למנוע השני int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // סיכת הדק של Sesnor Ultrasonic const int echoPin = 10; // Echo Pin Of Ultrasonic Sesnor משך זמן רב; // משתנים לחישוב המרחק לצוף המרחק;

2. התקנה בטלה () היא פונקציה המשמשת לקביעת כל הפינים המשמשים, כמו קֶלֶט ו תְפוּקָה. קצב שידור מוגדר בפונקציה זו. Baud Rate הוא מהירות התקשורת שבאמצעותה לוח המיקרו-בקר מתקשר עם החיישנים המשולבים בו.

הגדרת חלל () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. לולאה בטל () היא פונקציה הפועלת שוב ושוב במחזור. בפונקציה זו אנו אומרים ללוח המיקרו-בקר כיצד ואילו פעולות לבצע. כאן, ראשית, סיכת ההדק מוגדרת לשליחת אות אשר יתגלה על ידי סיכת ההד. ואז הזמן שלוקח האות הקולי לנוע וחזרה לחיישן מחושב ונשמר במשתנה מֶשֶׁך. ואז הזמן הזה משמש בנוסחה לחישוב מרחק המכשול וחיישן הקולי. לאחר מכן מוחל תנאי שאם המרחק הוא יותר מ -5 ס'מ, הרובוט יתקדם בקו ישר ואם המרחק קטן מ- 50 ס'מ, הרובוט יעבור סיבוב חד ימינה.

loop loop () {digitalWrite (trigPin, LOW); // שליחה ואיתור עיכוב האות הקולי מיקרו שניות (2); digitalWrite (trigPin, HIGH); עיכוב מיקרו-שניות (10); digitalWrite (trigPin, LOW); משך = pulseIn (echoPin, HIGH); // כוונון העץ שנלקח על ידי הגל הקולי כדי לשקף מרחק אחורי = 0.034 * (משך / 2); // בוחן את המרחק בין שבוע הרובוט והמכשול. אם (מרחק> 50) // העבר קדימה אם המרחק גדול מ- 50 ס'מ {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } אחר אם (מרחק<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

יישומים

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

  1. מערכת עקיבה.
  2. מטרות מדידת מרחק.
  3. ניתן להשתמש בזה ברובוטים אוטומטיים לניקוי אבק.
  4. ניתן להשתמש בזה במקלות לאנשים עיוורים.