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

מכ"ם אינפרא אדום עם ארדואינו: 6 שלבים
מכ"ם אינפרא אדום עם ארדואינו: 6 שלבים

וִידֵאוֹ: מכ"ם אינפרא אדום עם ארדואינו: 6 שלבים

וִידֵאוֹ: מכ
וִידֵאוֹ: כיתות: ה', מדע וטכנולוגיה - אמצעים טכנולוגיים לחקר חלל 2024, נוֹבֶמבֶּר
Anonim
Image
Image

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

המטרה שלי היא ליצור בעזרתה מערכת LIDAR פשוטה וזולה מאוד וליישם מכשיר מיפוי.

אספקה

  • ארדואינו (השתמשתי במייפל מיני)
  • חיישן מרחק חד (השתמשתי ב- Sharp GP2Y0A02YK0F)
  • סרוו מיקרו (9 גרם)
  • לוח לחם, חוטים
  • אופציונלי: הנגד 4.7k, קבל 100nF

שלב 1: חיישן אינפרא אדום אולטרה סאונד

סכמטי
סכמטי

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

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

שלב 2: סכמטי

סכמטי
סכמטי
סכמטי
סכמטי

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

  • PA0: קלט אנלוגי לחיישן מרחק חד
  • PA9: פלט PWM עבור סרוו

לפעמים לחיישן ה- IR החד יכול להיות פלט רועש, לכן עליך לשים עליו מסנן Low Pass פשוט. השתמשתי בנגד 4.7k ובקבל 100nF כדי להפחית את הרעש מהסיכה האנלוגית. חוץ מזה סיננתי גם את הערך הנמדד בקוד על ידי קריאתו מספר פעמים וחישוב הממוצע.

שלב 3: מאפיין חיישן

חיישן מאפיין
חיישן מאפיין
חיישן מאפיין
חיישן מאפיין

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

למרות שגיליון הנתונים של החיישן מספק את המאפיין, אני מעדיף למדוד אותו בעצמי בפרויקט הספציפי (זה יכול להיות תלוי במתח המשומש). לשם כך הכנתי זוגות מערך ה- ADC והמרחק הנמדד על כל 10 ס"מ. (החיישן שלי הצליח למדוד את המרחק הנכון מ -12 ס"מ).

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

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

שלב 4: תקשורת סדרתית

תקשורת סדרתית
תקשורת סדרתית

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

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

  • פרמטרים: משמש לשליחת פרמטרים ליישום PC, המוגדר ב- Arduino כמו מרחק מרבי ומספר מכשולים בסיבוב.
  • מכשול: משמש לשליחת מכשול שזוהה. הוא מזוהה לפי זווית הסרוו והמרחק הנמדד. מיקום xy יחושב על ידי יישום מחשב.

שלב 5: יישום Qt

יישום Qt
יישום Qt

כדי לתקשר עם Arduino ולצייר את הנקודות הנמדדות כמו מכ ם הכנתי יישום PC ב- Qt (C ++). הוא מקבל כמה פרמטרים (המוגדרים ב- Arduino) ונקודות המרחק הנמדדות.

אתה יכול להוריד את היישום ואת קוד המקור שלו גם כן.

שלב 6: קוד המקור של Arduino

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

שים לב, שאם תשנה את המאפיין של חיישן המרחק החד, עליך לשנות את ערכי המערך distAdcMap !

  • InfraRadar.c: קוד המכ"ם. העתק והדבק אותו בפרויקט ה- Arduino שלך.
  • InfraRadarMeasurement.c: קוד למדידה אופיינית. העתק והדבק אותו בפרויקט Arduino שלך. השתמש במסוף סידורי כדי לבדוק ערכי ADC.

מוּמלָץ: