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

מערכת מכ"ם פשוטה מ- Magicbit: 6 שלבים
מערכת מכ"ם פשוטה מ- Magicbit: 6 שלבים

וִידֵאוֹ: מערכת מכ"ם פשוטה מ- Magicbit: 6 שלבים

וִידֵאוֹ: מערכת מכ
וִידֵאוֹ: Кроссовер GAC GS3 2023. Самый дешёвый кроссовер GAC. 2024, יולי
Anonim

הדרכה זו מראה כיצד ליצור מערכת רדאר פשוטה באמצעות חיישן HC-SR04 ולוח מיקרוביט עם עיבוד ו- Arduino IDE.

אספקה:

  • מנוע מיקרו סרוו SG90
  • חוטי מגשר (כלליים)
  • לוח לחם (כללי)
  • מג'יקביט
  • כבל USB-A למיקרו USB
  • חיישן אולטרסאונד - HC -SR04 (כללי)

שלב 1: סיפור

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

שלב 2: תיאוריה ומתודולוגיה

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

שלב 3: התקנת חומרה

התקנת חומרה
התקנת חומרה
התקנת חומרה
התקנת חומרה

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

חיישן אולטרסאונד השתמש 3.3 וולט להפעלה. לכן השתמשנו ביציאה התחתונה הימנית של לוח ה- Magicbit לחיבור חיישן קולי ל- Magicbit. אבל מנוע סרוו משמש 5V לעבודה תקינה, לכן השתמשנו ביציאה התחתונה השמאלית לחיבור מנוע סרוו עם Magicbit. במקרה זה, אנו משתמשים במודול מחבר סרוו מג'יק ביט. אבל אם אין לך את המודול הזה אתה יכול להשתמש בשלושה חוטי מגשר לחיבור 5V ל 5V, Gnd ל- Gnd ואות סיכה ל- 26 פינים ב- magicbit.

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

שלב 4: התקנת תוכנה

התקנת תוכנה
התקנת תוכנה
התקנת תוכנה
התקנת תוכנה

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

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

בואו נסתכל על קוד Arduino IDE וכיצד קוד זה עובד.

לנהיגת סרוו אנו משתמשים בספריית סרוו ESP32. ספרייה זו כמעט כוללת במנהל הלוח של bit bit ב- Arduino IDE. כדי להתמודד עם חיישן קולי אנו משתמשים בספריית newPing. ניתן להוריד זאת מהקישור הבא.

bitbucket.org/teckel12/arduino-new-ping/do…

הורד את קובץ ה- zip והגש כלים> כלול ספרייה> הוסף ספריית Zip בארדואינו. כעת בחר את קובץ ה- zip שהורדת של ספריית הסיכות החדשה. לתקשורת עם עיבוד השתמשנו בתקשורת טורית עם קצב שידור של 115200. זו התדירות הנכונה ביותר עבור ESP32. בכל זווית אנו שולחים את הנתונים שלנו למחשב באמצעות פרוטוקול זה. המרחק לאובייקט הקדמי הקרוב ביותר מהחיישן, כיוון הסיבוב וזווית הסיבוב כלולים בנתונים אלה. בעזרת שתיים ללולאות אנו מסובבים את הסרוו לשני כיוונים. בעוד סיבוב של תואר אחד שלחנו נתונים סדרתיים פי 4. את הסיבה לכך תוכל להבין בעיבוד הסבר חלק.

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

במערכון העיבוד תחילה אנו מעצבים את ממשק תצוגת הנתונים שלנו באמצעות פונקציות גרפיות פשוטות. בתחילת הקוד אנו מבססים את התקשורת הטורית שלנו על ידי הכללת ספריות סדרתיות. בפונקציית ההתקנה עליך לבצע שינוי כלשהו בהתאם ליציאת ה- USB שבה השתמשת לחיבור Magicbit למחשב. אתה יכול לבדוק את הנמל שלך באמצעות Arduino IDE בעת הגדרת ה- Arduino IDE להעלאת הקוד. לאחר מכן שנה את שם יציאת ה- com בחלק ההתקנה בעיבוד הסקיצה. כאשר הנתונים הטוריים זמינים, הפונקציה Serialevent מופעלת אוטומטית. לכן ההיגיון העיקרי של הקוד הוא כלול באירוע סדרתי למניעת זוויות ונתונים חסרים. כאשר נתונים חדשים זמינים, אנו מציירים קו במסך בהתאם לזווית שלנו. באותו הזמן אם אין אובייקט זיהוי, הקו המלא הוא בצבע ירוק. אם לא אז חלק מהקו יהיה אדום בהתאם למרחק מחיישן לאובייקט. גם את כיוון הסיבוב בהתאם אנו מציירים עוד 200 קווים ליד אותו קו עם ירידה ברמת הצבע הירוק. בין כל ראשי יש לנו הבדל של 0.25 מעלות. לכן אנו מקבלים 4 קריאות בכל פעם מ- Magicbit בכל סיבוב תארים. בגלל זה אנו יכולים ליצור חיפוש יפהפה במסך.

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

אתה יכול להתאים אישית את הקודים כרצונך מה שאתה רוצה להציג.

שלב 5: פתרון בעיות

עיבוד סקיצה אינו פועל.

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

סרוו לא עובד.

  • בדוק שחיבור ה- USB תקין.
  • בדוק את החיווט.
  • בדוק שהסרוו במצב טוב.

שלב 6: קוד ארדואינו

#לִכלוֹל

#הגדר TRIGGER_PIN 21 #הגדר ECHO_PIN 22 #הגדר MAX_DISTANCE 200 סונאר NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // כלול מרחק int ספריית סרוו; סרוו רדאר סרבו; הגדרת חלל () {Serial.begin (115200); RadarServo.attach (26); // מגדיר על איזה סיכה הוא עיכוב המצורף של מנוע הסרוו (3000); } לולאת חלל () {// מסובבת את מנוע הסרוו מ -15 ל- 165 מעלות עבור (int i = 0; i <= 180; i ++) {RadarServo.write (i); עיכוב (50); distance = sonar.ping_cm (); // קורא פונקציה לחישוב המרחק הנמדד על ידי החיישן האולטרא סאונד עבור כל תואר עבור (int j = 0; j0) {הפסקה; } Serial.print (i); // שולח את התואר הנוכחי אל Port Serial.print (","); // שולח תו תוספת ממש ליד הערך הקודם הדרוש מאוחר יותר ב- IDE עיבוד לאינדקס של Serial.print (j); // שולח את התואר הנוכחי אל Port Serial.print ("*"); Serial.print (1); // שולח את ערך המרחק אל Port Serial.print ("/"); // שולח תו תוספת ממש ליד הערך הקודם הדרוש מאוחר יותר ב- IDE Processing לאינדקס של Serial.print (מרחק); // שולח את ערך המרחק אל Port Serial.print ("."); // שולח תו חיבור ממש ליד הערך הקודם הדרוש מאוחר יותר ב- IDE עיבוד לאינדקס}} // חוזר על השורות הקודמות מ- 165 עד 15 מעלות עבור (int i = 180; i> = 0; i-) {RadarServo.write (i); עיכוב (50); מרחק = sonar.ping_cm (); עבור (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {המשך; } Serial.print (i); // שולח את התואר הנוכחי אל Port Serial.print (","); // שולח תו תוספת ממש ליד הערך הקודם הדרוש מאוחר יותר ב- IDE עיבוד לאינדקס של Serial.print (j); // שולח את התואר הנוכחי אל Port Serial.print ("*"); Serial.print (-1); // שולח את ערך המרחק אל Port Serial.print ("/"); // שולח תו תוספת ממש ליד הערך הקודם הדרוש מאוחר יותר ב- IDE Processing לאינדקס Serial.print (מרחק); // שולח את ערך המרחק אל Port Serial.print ("."); // שולח תו תוספת ממש ליד הערך הקודם הדרוש בהמשך מזהה העיבוד לאינדקס}}

}

מוּמלָץ: