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

כיצד להכין מכשול DIY Arduino להימנע מרובוט בבית: 4 שלבים
כיצד להכין מכשול DIY Arduino להימנע מרובוט בבית: 4 שלבים

וִידֵאוֹ: כיצד להכין מכשול DIY Arduino להימנע מרובוט בבית: 4 שלבים

וִידֵאוֹ: כיצד להכין מכשול DIY Arduino להימנע מרובוט בבית: 4 שלבים
וִידֵאוֹ: Простой способ сделать дома робота на ардуино 2024, נוֹבֶמבֶּר
Anonim
Image
Image

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

אז בלי להתבטא יותר, בואו נתחיל!

שלב 1: מה שאתה צריך בפרויקט זה:

מה שאתה צריך בפרויקט הזה
מה שאתה צריך בפרויקט הזה
מה שאתה צריך בפרויקט הזה
מה שאתה צריך בפרויקט הזה

להלן רשימת החלקים:

1) ארדואינו אונו

2) מגן נהג מוטורי

3) סט מנוע, מסגרת וגלגלים

4) מנוע סרוו

5) חיישן קולי

6) סוללת ליתיום (2x)

7) מחזיק סוללות

8) חוט מגשר זכר ונקבה

9) מלחם

10) מטען

שלב 2: תרשים מעגלים

תרשים מעגלים
תרשים מעגלים

עובד:

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

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

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

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

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

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

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

שלב 3: תכנות UNO Arduino

#לִכלוֹל

#לִכלוֹל

#לִכלוֹל

# הגדר TRIG_PIN A1

# הגדר ECHO_PIN A0

# הגדר MAX_DISTANCE 200

# הגדר MAX_SPEED 255 // קובע את מהירות מנועי DC

# הגדר MAX_SPEED_OFFSET 20

סונאר NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DC מנוע מנוע 3 (3, MOTOR34_1KHZ);

AF_DC מנוע מנוע 4 (4, MOTOR34_1KHZ); סרוו מיסרבו;

בוליאני goesForward = false;

מרחק int = 100; int speedSet = 0;

הגדרת בטל () {

myservo.attach (10);

myservo.write (115); עיכוב (2000); distance = readPing (); עיכוב (100); distance = readPing (); עיכוב (100); distance = readPing (); עיכוב (100); distance = readPing (); עיכוב (100); }

לולאת חלל () {

int distanceR = 0; int distanceL = 0; עיכוב (40);

if (מרחק <= 15) {moveStop (); עיכוב (100); moveBackward (); עיכוב (300); moveStop (); עיכוב (200); distanceR = lookRight (); עיכוב (200); distanceL = lookLeft (); עיכוב (200);

if (distanceR> = distanceL) {

פנה ימינה(); moveStop (); } אחר {turnLeft (); moveStop (); }} else {moveForward (); } distance = readPing (); }

int lookRight () {

myservo.write (50); עיכוב (500); int distance = readPing (); עיכוב (100); myservo.write (115); מרחק החזרה; }

int lookLeft () {

myservo.write (170); עיכוב (500); int distance = readPing (); עיכוב (100); myservo.write (115); מרחק החזרה; עיכוב (100); }

int readPing () {

עיכוב (70); int cm = sonar.ping_cm (); אם (cm == 0) {cm = 250; } ס מ להחזיר; }

void moveStop () {

motor3.run (שחרור);

motor4.run (שחרור); }

void moveForward () {

אם (! goesForward) {

goesForward = true;

motor3.run (קדימה);

motor4.run (קדימה); עבור (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // העלו לאט את המהירות כדי להימנע מהורדת הסוללות מהר מדי {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); עיכוב (5); }}}

void moveBackward () {

goesForward = false;

מנוע 3. ריצה (אחורה);

motor4.run (אחורה); עבור (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // העלו לאט את המהירות כדי להימנע מהורדת הסוללות מהר מדי {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); עיכוב (5); }}

void turnRight () {

motor3.run (קדימה);

motor4.run (אחורה); עיכוב (500);

motor3.run (קדימה);

motor4.run (קדימה); }

void turnLeft () {

מנוע 3. ריצה (אחורה);

motor4.run (קדימה); עיכוב (500);

motor3.run (קדימה);

motor4.run (קדימה); }

1) הורד והתקן את Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • לינוקס -

2) הורד והדבק את קובץ ספריית NewPing (ספריית פונקציות חיישן קולי) לתיקיה ספריות Arduino.

  1. הורד את NewPing.rar למטה
  2. חלץ אותו לנתיב - C: / Arduino / libraries

3) העלה את הקוד ללוח Arduino באמצעות כבל USB

קוד הורדה:

שלב 4: מעולה

כעת הרובוט שלך מוכן להימנע מכל מכשול …

אשמח לענות על כל שאלה שיש לך

מייל לי: [email protected]

אתר אינטרנט:

הירשם לערוץ היוטיוב שלי:

אינסטגרם:

פייסבוק:

תודה:)

מוּמלָץ: