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

פרויקט 3: SonarDuino: 9 שלבים
פרויקט 3: SonarDuino: 9 שלבים

וִידֵאוֹ: פרויקט 3: SonarDuino: 9 שלבים

וִידֵאוֹ: פרויקט 3: SonarDuino: 9 שלבים
וִידֵאוֹ: Возведение перегородок санузла из блоков. Все этапы. #4 2024, סֶפּטֶמבֶּר
Anonim
Image
Image

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

שלב 1: מה שאתה צריך

הכינו את תמיכת החיישן האולטרא סאונד
הכינו את תמיכת החיישן האולטרא סאונד

כדי ליצור את המבנה הזה תצטרך לקנות את הדברים הבאים:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZpOl0: rk: 2: pf: 0

לוחות אב טיפוס: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:g:cQ4AOS ~ Zbl232: rk: 13: pf: 0

סרוו מוטורס: https://www.ebay.com/itm/5pcs-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Control-Car-Boat/142931003420?hash=item21475a081c:rk: 16: pf: 0 & var

חיישנים אולטרא סאונד: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd: ~ IAAOSw-xbD5Fp: rk: 2: pf: 0

שלב 2: תיעוד

מכיוון שכמה מכם אולי כבר יודעים זאת, הפרויקט הזה הוא בהשראת פרויקט קוד פתוח אחר בשם "פרויקט מכ"ם ארדואינו" שנעשה על ידי דג'אן מתוך "איך למכטרוניקה" @ הקישור הבא: https://howtomechatronics.com/projects/arduino -radar-project/

נקודה נוספת הדורשת תיעוד היא הורדת שתי הספריות הבאות לסביבת הפיתוח שלך:

Adafruit-GFX-Library:

Adafruit_SSD1306:

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

שלב 3: הכינו את תמיכת החיישן האולטרא סאונד

הכינו את תמיכת החיישן האולטרא סאונד
הכינו את תמיכת החיישן האולטרא סאונד
הכינו את תמיכת החיישן האולטרא סאונד
הכינו את תמיכת החיישן האולטרא סאונד
הכינו את תמיכת החיישן האולטרא סאונד
הכינו את תמיכת החיישן האולטרא סאונד

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

שלב 4: הרכיב הכל בלוח אב טיפוס

הרכיבו הכל ללוח אב טיפוס
הרכיבו הכל ללוח אב טיפוס
הרכיבו הכל ללוח אב טיפוס
הרכיבו הכל ללוח אב טיפוס
הרכיבו הכל ללוח אב טיפוס
הרכיבו הכל ללוח אב טיפוס

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

שלב 5: יצירת החיבורים הסופיים

יצירת החיבורים הסופיים
יצירת החיבורים הסופיים
יצירת החיבורים הסופיים
יצירת החיבורים הסופיים
יצירת החיבורים הסופיים
יצירת החיבורים הסופיים

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

שלב 6: אתחול התוכנית

אתחול התוכנית
אתחול התוכנית

ישנם שני קודים שתצטרך לאתחל

Arduino (C):

עיבוד (java):

בעת הפעלת הקוד, יהיו לך שתי אפשרויות לבחירה:

אפשרות 1: באמצעות תצוגת OLED, לשם כך יהיה עליך להגדיר את המשתנה MODE בקוד C ל- 0.

אפשרות 2: שימוש במסך שלך, לשם כך יהיה עליך להגדיר את המשתנה MODE בקוד C ל- 1. בנוסף, יהיה עליך להוריד ולהתקין את סביבת הפיתוח של עיבוד ולהוריד את פונט הגראדאר מקישור זה: https:// github.com/lastralab/ArduinoRadar/blob/ma…

והוסף את הקובץ הזה לקובץ קוד העיבוד שלך כך שקוד ה- java שלך יזהה את הגופן כאשר קוראים לו.

שלב 7: הבנת קוד C

הבנת קוד C
הבנת קוד C

הקוד מורכב בעיקר משתי לולאות 'עבור'. אחד מתואם עם מעבר קדימה ואילו השני עם מעבר לאחור. בתוך שניהם, הפונקציה הראשית draw_scanner (), שתצייר את קווי המכ"ם על המסך, נקראת פעמים רבות. לאחר בדיקת מספר תצורות הגעתי למסקנה שעלינו להחליף את קווי המכ"ם הלבנים בזמן t עם אותם קווי מכ"ם בשחור בזמן t+1 על מנת למחוק אותם. אם אחרת, הבהוב יתרחש בכל פעם שאתה מנקה את המסך באמצעות הפונקציה "clearDisplay ()" לפני שתדחוף את רשת הפיקסלים החדשה. מכיוון שהתמודדתי עם 7 קווים- למטרות עיצוב- נאלצתי להמשיך ולשמור ולהעביר מערך שלם של 7 אלמנטים, כאשר כל אלמנט עומד לרדיוס בין מרכז הרדאר לאובייקט המזוהה, אם קיים. עם זאת בחשבון, שאר הקוד צריך להיות פשוט להבנה.

שלב 8: הבנת קוד ה- Java

בעיבוד, נאלצתי לעקוף את קריאת הפונקציות עבור serialEvent (), שעובדת רק עם יציאות טוריות בשם COM. בזמן שעבדתי על Mac, היציאות הטוריות שלי קיבלו שם אחר. עם זאת, פרקתי את הפונקציה הזו לפונקציה העיקרית בעיבוד "צייר ()". לגבי כל השאר, עדכנתי את האפליקציה כך שתתאים לעיצוב המהפכה המלא. לבסוף עדכנתי את כל הצורות והטקסטים המצוירים ביחס לרוחב המסך כך שהמוצר הסופי יתאים לרזולוציות מסך שונות. בדקתי אותו אישית ברזולוציות של 1000X1000 ו- 500X500, וזה עבד מצוין:).

שלב 9: מסקנה

ניתן לשדרג עבודה זו ל -3 חיישנים אולטראסוניים, שכל אחד מהם מכסה 120 זווית צפייה, או אפילו 4 חיישנים (90 מעלות*4) -> 360 מעלות מהר יותר. לִסְרוֹק.

ניתן גם להרחיב את טווח המכ"ם מ -40 ס"מ ל -60 ס"מ ואפילו 80 ס"מ. בדקתי אישית את פונקציית pulseIn והתאמתי את משתנה TIMEOUT ביחס ל -40 ס"מ. משתנה זה תלוי בגורמים רבים, כולל אורך שליחת הדופק ומשטח האובייקט שבו הדופק משתקף.

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

מוּמלָץ: