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

מערך מכ"ם נייח (LIDAR) עם ארדואינו: 10 שלבים (עם תמונות)
מערך מכ"ם נייח (LIDAR) עם ארדואינו: 10 שלבים (עם תמונות)

וִידֵאוֹ: מערך מכ"ם נייח (LIDAR) עם ארדואינו: 10 שלבים (עם תמונות)

וִידֵאוֹ: מערך מכ
וִידֵאוֹ: פעילות לילדים - איך עובד מכ"ם? הורה מעשיר 2024, נוֹבֶמבֶּר
Anonim
מערך מכ
מערך מכ
מערך מכ
מערך מכ
מערך מכ
מערך מכ

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

  • מודולי חיישן גל אולטראסוניים גדולים למדי. כל רובוט היה נראה כמו WALL-E.
  • כל פרויקט המכ"ם הנוכחי כולל חיישן (גלי קולי, IR, לייזר, …) ומנוע סרוו באמצע. סריקת הסביבה דורשת מהסרוו לנוע מצד לצד. הזזת דברים הלוך ושוב יוצרת שינויים במומנטום, דבר שפוגע באיזון דו -כיווני ובהליכה.
  • תדירות הסריקה מוגבלת במהירות סרוו. רק כמה הרץ יכולים להשיג, כנראה. גם אם תדר הסריקה יכול להיות מוגבר על ידי סרוו-על כלשהו, הדבר יגרום לרטט כבד.
  • סידור [מנוע סרוו מרכזי - חיישן] מגביל גם את מיקום ההרכבה והעיצוב. קשה להרכיב דבר כזה מלבד כראש. מה שגורם לכלפיי להיראות כמו WALL-E עם ראש רועד. לא מגניב!
  • ניתן לבנות את מערך [חיישן הסרוו] גם כסגנון [חיישן מנוע]. החיישן (או החיישנים) מסתובב לאורך ציר מנוע ברציפות. זה עשוי לבטל את טלטולי המומנטום ובעיות בתדירות הסריקה הנמוכה, אך לא את מגבלת עיצוב פלג גוף עליון. גם קושי החיווט יגדל באופן משמעותי.

לאחר חיפוש, החיישן הזעיר הזה VL53L0X מ- ST התזה בעיניי. על ידי טענה לחיישן ה"קטן בעולם "בזמן טיסה, הממד הוא 4.4 x 2.4 x 1.0 מ"מ בלבד. כולל

  • על שבב פולט לייזר וגלאי
  • טווח עד 2 מ '(1.2 מ' במצב מהיר)
  • כתובת I2C ניתנת לתכנות
  • סיכת פלט של GPIO להפריע
  • בטוח לעיניים

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

הסיבה לכך שכתובת I2C הניתנת לתכנות וסיכת פלט GPIO הם קריטיים לפרויקט זה מוסברת בהמשך.

שלב 1: כלים וחלקים

כלים וחלקים
כלים וחלקים
כלים וחלקים
כלים וחלקים

כלים

בפרויקט זה נדרשים הכלים הבאים:

  • מלחם
  • הלחמת ידיים עוזרות
  • כלי הדחיסה של דופונט
  • נהג משושה 1.5 מ"מ
  • כלי להסרת ציפוי חוט
  • קאטר
  • אקדח דבק חם
  • מַלְקֶטֶת
  • זכוכית מגדלת (פיזית או אפליקציות בטלפון שלך)
  • צבת אף שטוחה

חלקים

הפרקים הבאים משמשים בפרויקט זה:

  • 10x לוחות פריצה VL53L0X GY-530
  • ארדואינו (אונו, ננו, מגה, אפס, מיני, וכו ')
  • קרש לחם וכמה חוטי קרש
  • חוטי AWG #26 עם צבעים שונים
  • חוט ליבה אחת של AWG #30
  • מחברי זכר 5x Dupont
  • 5x מארזי Dupont סיכה אחת
  • מחזיקי לוח פריצה תלת -ממדיים מודפסים בתלת -ממד
  • 1x מסגרת עגולה מודפסת בתלת מימד
  • 10x ברגים ראש שטוח M2x10
  • 10x 0804 LED (כחול מומלץ)
  • 10x SOT-23 AO3400 N-Channel MOSFET
  • קבל קטן (10 ~ 100uF)

לוח פריצה

לוח הפריצה VL53L0X בו השתמשתי הוא GY-530. יש גם גרסת Adafruit וגרסת Pololu. אם הדבר אפשרי, אני ממליץ להשתמש במוצר של Adafruit או Pololu מכיוון שהם מייצרים מוצרים מעולים, הדרכות נהדרות וספריות תוכנה נהדרות. בדקתי בספריית VL53L0X של Adafruit והשתמשתי בגרסה שונה של ספריית VL53L0X של Pololu.

מחברי דופונט

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

ברגים וחלקים מודפסים בתלת מימד

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

שלב 2: פריצה ללוח Breadout

פריצת לוח Breadout
פריצת לוח Breadout
פריצת לוח Breadout
פריצת לוח Breadout
פריצת לוח Breadout
פריצת לוח Breadout
פריצת לוח Breadout
פריצת לוח Breadout

חרוט גילוי

השתמשתי במודול יחיד כדי לצייר את קונוס האיתור. שימוש ברובוט ברובו מודפס בתלת מימד כמטרה. המרחק מוצג בתצוגת הלדים, ונמדד בערך. הנתונים שנמדדו נרשמים לקובץ Microsoft Excel ומשתמשים בפונקציית התאמת העקומות. ההתאמה הטובה ביותר היא עקומת לוגריתם טבעית, עם מרחק אפקטיבי בין 3 ס"מ לכ -100 ס"מ.

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

כתובת I2C

בעוד שכתובת המכשיר VL53L0X I2C ניתנת לתכנות, נדרשת שליטה מלאה של סיכת ה- XSHUT על ידי בקר הבקרה. הרצף לעשות זאת הוא:

  1. כוח מופעל על AVDD.
  2. כל שבבי VL53L0X מובאים למצב המתנה (איפוס) של Hw על ידי הנעה של כל סיכות ה- XSHUT שלהם ל- LOW.
  3. כל שבב נלקח ממצב איפוס אחד בכל פעם. כתובת ברירת המחדל של I2C לאחר האתחול היא 0x52.
  4. כתובת השבב משתנה לכתובת חדשה באמצעות פקודה I2C. לדוגמה, 0x52 השתנה ל- 0x53.
  5. חזור על שלב 3 ו -4 עבור כל הצ'יפס.

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

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

כפי שצוין ב- STEP1, יש מזל שיש סיכת GPIO1 בשבב VL53L0X, המשמש במקור להפרעה, יכול לבצע את העבודה.

שרשרת דייזי GPIO-XSHUTN

פלט GPIO נמצא במצב עכבה גבוהה בעת אתחול וניקוז פתוח עד נמוך בזמן שהוא פעיל. סיכות GPIO ו- XSHUT נמשכות גבוה ל- AVDD בלוח הפריצה GY-530, כפי שמומלץ בגיליון הנתונים. כדי להכניס באופן אמין את כל שבבי VL53L0X למצב המתנה של Hw (נהיגה נמוכה ב- XSHUT), אנו זקוקים לשער לוגי NOT (מהפך) לכל סיכת XSHUT. לאחר מכן אנו מחברים את יציאת GPIO של שבב אחד (השבב ה- N), ל- XSHUTN (XSHUT-NOT) של השבב במורד הזרם (שבב N+1).

עם ההפעלה, כל סיכות ה- GPIO (לא פעולות) נמשכות כלפי מעלה, כל סיכות ה- XSHUT הבאות נסעות נמוך בשער NOT (למעט שבב האגרוף מאוד שבו פין ה- XSHUTN שלו מחובר לבקר המיקרו). שינוי כתובת I2C ושחרור XSHUT של השבב במורד הזרם מתבצע בתוכנה, אחד אחד.

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

הוספת LED

בשלב הבא תתווסף לוח קטן של 0805 SMD ללוח הפריצה המחובר ממשטח ה- XSHUT למסוף GND של קבל סמוך. למרות ש- LED עצמו אינו משפיע על פעולת המודול, הוא אכן נותן לנו אינדיקציה ויזואלית טובה ברמת ההיגיון של XSHUT.

חיבור ה- LED בסדרה עם הנגד הנמשך (10k במקרה שלי) על סיכת ה- XSHUT יביא לירידת מתח. במקום רמת לוגיקה גבוהה של 3.3 וולט, ירידת המתח קדימה של LED 0805 אדום נמדדת ב -1.6 וולט. למרות שמתח זה גבוה מרמת ההיגיון הגבוהה (1.12v) בגיליון הנתונים, LED כחול עדיף לפריצה זו. ירידת המתח קדימה עבור LED כחול נמדדת בערך 2.4v, שהיא בבטחה מעל רמת הלוגיקה של השבב.

הוספת ממיר N-MOS (שער לוגי לא NOT)

MOSFET קטן בערוץ SOT-23 מוערם על ה- LED שהוספנו. שני מסופים (D, S) צריכים להיות מולחמים על לוח הפריצה, והמסוף הנותר (G) מחובר לסיכת GPIO הלוח במעלה הזרם באמצעות חוט #26.

הערות לגבי הוספת רכיבי SMD

הלחמת רכיבי SMD על לוח פריצה שלא מיועד, אינה משימה קלה. אם עדיין לא שמעתם על 0805, SMD, SOT-23, רוב הסיכויים שלא הלחמתם את אותם רכיבים קטנים זעירים. בעת הטיפול ברכיבים זעירים אלה ביד, נפוץ מאוד כי:

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

אם אתה עדיין רוצה ליצור מכ ם זה, אתה יכול:

  • שנה את הרכיבים לאריזה גדולה יותר, כגון סגנון DIP.
  • קבל יותר רכיבים מהמינימום הנדרש, לצורך תרגול וצריכה.

שלב 3: הלחמת LED 0805

הלחמת LED 0805
הלחמת LED 0805
הלחמת LED 0805
הלחמת LED 0805
הלחמת LED 0805
הלחמת LED 0805
הלחמת LED 0805
הלחמת LED 0805

הלחמת LED 0805 SMD

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

  1. השתמש ביד העוזרת כדי להחזיק את לוח הפריצה שלך.
  2. שים קצת משחת הלחמה בקצה קבל ה- SMD ואת כרית "XSHUT".
  3. השתמש במגהץ כדי לשים הלחמה נוספת על קצה הקבל.
  4. שים קצת משחת הלחמה משני קצות LED 0805.
  5. השתמש במגהץ כדי לשים מעט פח משני קצות LED 0805.
  6. השתמש בפינצטה כדי למקם את הנורית כפי שמוצג בתמונה. בקצה הקתודה יש בדרך כלל קו מסומן. בדוגמה שלי, יש קו ירוק בקצה הקתודה. מקם את קצה הקתודה לקצה הקבל.
  7. השתמש בפינצטה כדי להוסיף לחץ קל על הנורית לעבר הקבל, והלחם את הנורית לקצה הקבל, על ידי הוספת חום לקצה הקבל במקביל. אל תלחץ חזק על הנורית. המכסה שלה עלול להישבר תחת חום ולחץ מוגזם. לאחר הלחמה, הוסף לחץ עדין על הנורית הצידה, כדי לבדוק אם הנורית הלחמה במקומה.
  8. כעת הלחם את הנורית על כרית הטבילה XSHUT. שלב זה צריך להיות קל יותר.

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

בדיקת ה- LED

הנורית אמורה להידלק כאשר אתה מפעיל חשמל (למשל 5V) וקרקע ללוח הפריצה.

שלב 4: הלחמת ה- MOSFET של ערוץ N

הלחמת ה- MOSFET של ערוץ N
הלחמת ה- MOSFET של ערוץ N
הלחמת ה- MOSFET של ערוץ N
הלחמת ה- MOSFET של ערוץ N
הלחמת ה- MOSFET של ערוץ N
הלחמת ה- MOSFET של ערוץ N
הלחמת ה- MOSFET של ערוץ N
הלחמת ה- MOSFET של ערוץ N

הלחמת ה- MOSFET N-Channel AO3400

ה- MOSFET הזה הוא בחבילת SOT-23. עלינו "לערום" אותו על הנורית, ולהוסיף גם חוט:

  1. שמים קצת משחת הלחמה וטוחנים את כל שלושת הטרמינלים.
  2. השתמש בפינצטה כדי למקם את ה- MOSFET על גבי הנורית 0805. מסוף S צריך לגעת בחלק העליון של הקבל
  3. הלחם את מסוף S עם קצה הקבל, כפי שמוצג בתמונה.
  4. חותכים חוט קטן של AWG #30 ליבה אחת, ומסירים את הציפוי בערך 1 ס"מ.
  5. השתמש במגהץ כדי להמיס את ההלחמה בחור XSHUT מלמטה, והכנס את חוט מס '30 מלמעלה, כפי שמוצג בתמונה.
  6. הלחמת הקצה העליון של החוט למסוף MOSFET D.
  7. מנתקים חוט נוסף.

הערה: מסוף MOSFET S מחובר לקצה הקבל כפי שמוצג בתמונה. קצה זה הוא מסוף הקרקע. מסוף MOSFET D מחובר לסיכה XSHUT המקורית.

טרמינל G אינו מחובר כרגע. מיקומו נמצא בדיוק מעל כמה נגדי משיכה. וודא שיש פער ביניהם (N-MOS ונגד) ואינם יוצרים קשר זה עם זה.

שלב 5: חיווט מערך החיישן

חיווט מערך החיישן
חיווט מערך החיישן
חיווט מערך החיישן
חיווט מערך החיישן
חיווט מערך החיישן
חיווט מערך החיישן

חיווט אוטובוס משותף

האוטובוס הנפוץ כולל:

  • כוח Vcc. אדום בתמונה. אני משתמש ב- arduino nano עם לוגיקה של 5v. ללוח הפריצה יש LDO ושינוי רמות. אז זה בטוח להשתמש 5v כמו Vin.
  • קרקע, אדמה. שחור בתמונה.
  • SDA. ירוק בתמונה.
  • SCL. צהוב בתמונה.

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

חיווט XSHUTN ו- GPIO

החוט הלבן בגודל 20 ס מ הוא מסיכת בקרה של ארדואינו, אל סיכת ה- XSHUTN של החיישן הראשון. זהו קו הבקרה הנדרש בכדי להוציא את שבב ה- VL53L0X הראשון מהאיפוס ולשנות את כתובת I2C.

החוט הלבן בגודל 5 ס מ בין כל מודול הוא קו השליטה בשרשרת דייזי. שבב במעלה הזרם (למשל שבב מס '3) GPIO, מחובר לרגל במורד הזרם (למשל שבב מס' 4) XSHUTN (מסוף M-MOSFET G של ערוץ N).

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

השתמש באקדח החום כדי להדביק את חוט הבקרה.

דבק חם

כפי שאתה יכול לראות בתמונה, יש כתם דבק חם על חוט הבקרה הלבן, ליד מסוף N-MOS G. שלב זה חשוב מאוד והכרחי בהחלט. הלחמה צפה ישירות לרגל רכיב ה- SMD חלשה מאוד. אפילו לחץ קטן על החוט עלול לשבור את הרגל. בצע את השלב הזה בעדינות.

בדיקת ה- LED

כאשר אתה מפעיל חשמל (למשל 3.3v-5v) וקרקע למערך החיישנים, נורית ה- LED במודול הראשון אמורה להגיב ברמת ההיגיון של חוט XSHUTN. אם תחבר את ה- XSHUTN להיגיון גבוה (למשל 3.3v-5v), הנורית צריכה להיות כבויה. אם אתה מחבר את חוט ה- XSHUTN לנמוך (קרקע), נורית ה- LED במודול הראשון צריכה להיות דולקת.

עבור כל המודולים הבאים, ה- LED צריך להיות כבוי.

בדיקה זו מתבצעת לפני חיבור לארדואינו.

שלב 6: השלמת מערך החיישן

Image
Image
השלמת מערך החיישנים
השלמת מערך החיישנים
השלמת מערך החיישנים
השלמת מערך החיישנים
השלמת מערך החיישנים
השלמת מערך החיישנים

בדיקת שרשרת דייזי

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

  1. הגדר את לוח הלחם. 5V ומעקה קרקע מחוברים ישירות מאדריאנו 5V וקרקע. הצריכה הנוכחית עבור כל חיישן מדורגת 19ma בגיליון הנתונים.
  2. הוסף קבל על מסילת הכוח כדי לסייע בייצוב היין.
  3. חבר את Vin ו- Ground ממערך החיישנים למסילת הכוח.
  4. חבר SDA ל- pin Aranoino Nano A4 (עשוי להיות שונה עבור מיקרו-בקרים אחרים).
  5. חבר SCL ל- pin Arduino Nano A5 (עשוי להיות שונה עבור בקרי מיקרו אחרים).
  6. חבר את חוט ה- XSHUTN לסיכת ננו Arduino D2. (ניתן לשנות זאת בסקיצה).
  7. עבור אל github https://github.com/FuzzyNoodle/Fuzzy-Radar והורד את הספרייה.
  8. פתח את הדוגמה "Daisy_Chain_Testing" והעלה את הסקיצה.

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

תוכל גם לפתוח את החלון הסידורי ולראות את התקדמות האתחול. הפלט יראה כך:

נמל פתיחה נמל פתוח סקיצה מתחילה. הגדר את השבב 0 למצב איפוס. כל נוריות הסטטוס צריכות להיות כבוי. כעת הגדרת החיישנים. LED צריך להאיר אחד אחד. הגדרת שבב 0 - אפס כתובת I2C ל- 83 - אתחל את החיישן. הגדרת שבב 1 - אפס כתובת I2C ל- 84 - אתחל את החיישן. הגדרת שבב 2 - אפס כתובת I2C ל- 85 - אתחל את החיישן. תצורת מערך המכ ם הושלמה.

הרכיבו את המחזיק והמסגרת

  1. הנח בזהירות כל מודול GY-530 על המחזיק בעזרת הבורג M2x10. אין ללחוץ על ה- MOSFET או למשוך בחוטי ה- XSHUTN.
  2. מניחים כל מחזיק בתוך המסגרת העגולה. השתמש בדבק חם כדי לחבר את החלקים.

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

הקבצים המודפסים בתלת -ממד בהם השתמשתי מסופקים להלן. המסגרת העגולה כוללת 9 מודולים, המופרדים ב -10 מעלות כל אחד. אם יש לך עין חדה, היו 10 מודולים בתמונות קודמות. הסיבה? מוסבר להלן…

הסר את המעטה המגן

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

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

לאחר זיהום, הטווח עשוי להיות מופחת, והקריאות עשויות להיות מושבתות במידה ברורה. אחד ממודול הבדיקה שלי מזוהם בטעות מחימר דבק, הטווח מצטמצם ל -40 ס מ, וקריאת המרחק מוגדלת בטעות ב -50%. אז היו זהירים!

שלב 7: קבלת נתונים

Image
Image
לייזר מעקב (הדגמה)
לייזר מעקב (הדגמה)

שימוש בדוגמה Raw_Data_Serial_Output

עכשיו אנחנו מאוד אוהבים לראות את הנתונים ממערך החיישנים שלנו. בספריית הארדואינו ב- GitHub:

https://github.com/FuzzyNoodle/Fuzzy-Radar

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

לאחר האתחול של החיישנים, אמור לראות דבר כזה בחלון הסדרתי כאשר אתה מניף את היד בחיישנים:

עיין בסרטון ההדגמה בשידור חי.

שימוש בדוגמה Fuzzy_Radar_Serial_Output

השלב הבא הוא להוציא נתונים שימושיים מתוך קריאות המרחק האלה. מה שרצינו מ- RADAR הם המרחק וזווית של אובייקט המטרה.

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

כמה אלגוריתם סינון מוחלים בספרייה:

  • הסרת רעש:

    • קריאות קצרות (מבחינת ספירת הדגימות) נחשבות לרעש והן מוסרות.
    • קריאות רחוקות מהערך הממוצע מוסרות.
  • חישוב זווית משקל (ראה איור למעלה)

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

    • אם יש יותר מקבוצת קריאות אחת, נשארת הקבוצה הרחבה ביותר (עם יותר קריאת חיישנים).
    • לדוגמה, אם אתה שם שתי ידיים מול מערך החיישנים, היד שנותרה על ידי חיישנים נוספים נשארת.
  • בחירת היעד הקרובה ביותר:

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

מרחק היציאה והזווית מוחלקים באמצעות מסנן מעבר נמוך

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

לא זוהה אובייקט. לא זוהה אובייקט.לא אובחן אובייקט. מרחק = 0056 זווית = 017 מרחק = 0066 זווית = 014 מרחק = 0077 זווית = 011 מרחק = 0083 זווית = 010 מרחק = 0081 זווית = 004 מרחק = 0082 זווית = 000 מרחק = 0092 זווית = 002 מרחק = 0097 זווית = 001 מרחק = 0096 זווית = 001 מרחק = 0099 זווית = 000 מרחק = 0101 זווית = -002 מרחק = 0092 זווית = -004 מרחק = 0095 זווית = -007 מרחק = 0101 זווית = -008 מרחק = 0112 זווית = -014 מרחק = 0118 זווית = -017 מרחק = 0122 זווית = -019 מרחק = 0125 זווית = -019 מרחק = 0126 זווית = -020 מרחק = 0125 זווית = -022 מרחק = 0124 זווית = -024 מרחק = 0133 זווית = -027 מרחק = 0138 זווית = - 031 מרחק = 0140 זווית = -033 מרחק = 0136 זווית = -033 מרחק = 0125 זווית = -037 מרחק = 0120 זווית = -038 מרחק = 0141 זווית = -039 לא אובחן אובייקט. לא אובחן אובייקט. לא אובחן אובייקט.

אז עכשיו, יש לך RADAR (LIDAR):

  • מודולים של חיישן קולי קטנים יותר
  • ללא חלקים נעים
  • סורק ב 40 הרץ.
  • מעוצב כמו חגורה, יכול להיות מותקן על מסגרת עגולה
  • השתמש רק בשלושה חוטי בקרה, בתוספת כוח ואדמה.
  • יש לו טווח שבין 30 מילימטרים לכ -1000 מילימטרים.

בשלבים הבאים, נראה לכם כמה הדגמות מגניבות!

שלב 8: לייזר מעקב (הדגמה)

Image
Image
לייזר מעקב (הדגמה)
לייזר מעקב (הדגמה)

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

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

ניתן להוריד את הקוד כאן.

אנא עיין בסרטון המצורף.

שלב 9: בוהה פופי (הפגנה)

Image
Image

הפגנה של שימוש ברדאר למעקב אחר מיקום ומרחק האובייקט.

מוּמלָץ: