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

הכנת מד טווח באמצעות לייזר ומצלמה: 6 שלבים
הכנת מד טווח באמצעות לייזר ומצלמה: 6 שלבים

וִידֵאוֹ: הכנת מד טווח באמצעות לייזר ומצלמה: 6 שלבים

וִידֵאוֹ: הכנת מד טווח באמצעות לייזר ומצלמה: 6 שלבים
וִידֵאוֹ: אנשים שנפלו לתוך כלובים של חיות מסוכנות | טופטן 2024, יוני
Anonim
ביצוע מד טווח באמצעות לייזר ומצלמה
ביצוע מד טווח באמצעות לייזר ומצלמה

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

הפרויקט מבוסס על מאמר זה:

ההבדל היחיד הוא שאני אבנה את מד הטווח באמצעות Raspberry Pi Zero W, LCD ומודול מצלמת Raspberry Pi. אני אשתמש גם ב- OpenCV כדי לעקוב אחר הלייזר.

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

בואו נתחיל!

שלב 1: רשימת חומרים

לפרויקט זה תזדקק ל:

  • לייזר בזול 6 מ"מ 5mW
  • נגד 220 Ω
  • טרנזיסטור 2N2222A או משהו שווה ערך
  • פטל פיי אפס W
  • מצלמת פטל פי 2
  • צג LCD 5110 של נוקיה או שווה ערך
  • כמה חוטי מגשר וקרש לחם קטן

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

שלב 2: בניית מכשיר לייזר ומצלמה

בניית מכשיר לייזר ומצלמה
בניית מכשיר לייזר ומצלמה
בניית מכשיר לייזר ומצלמה
בניית מכשיר לייזר ומצלמה
בניית מכשיר לייזר ומצלמה
בניית מכשיר לייזר ומצלמה

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

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

השתמשתי ב- Tinkercad לבנייה, אתה יכול למצוא את הדגם כאן:

יש מרחק של 3.75 ס מ בין מרכז עדשת הלייזר למרכז עדשת המצלמה.

שלב 3: נהיגה בלייזר ו- LCD

נהיגה בלייזר ו- LCD
נהיגה בלייזר ו- LCD
נהיגה בלייזר ו- LCD
נהיגה בלייזר ו- LCD

עקבתי אחר הדרכה זו https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi כדי להניע את צג ה- LCD עם ה- Raspberry Pi Zero. במקום לערוך את הקובץ /boot/config.txt תוכל להפעיל את ממשק SPI באמצעות sudo raspi-config באמצעות שורת הפקודה.

אני משתמש ב- Raspberry Pi Zero במצב נטול ראש באמצעות ה- Raspbian Stretch העדכני ביותר, עד כה. לא אכסה את ההתקנה במדריך זה אך תוכל לעקוב אחר המדריך הזה: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- שורת פקודה או שימוש ברשת 97f065af722e

כדי לקבל נקודת לייזר בהירה, אני משתמש במעקה 5V של הפי. לשם כך אשתמש בטרנזיסטור (2N2222a או שווה ערך) להנעת הלייזר באמצעות ה- GPIO. נגד 220 Ω בבסיס הטרנזיסטור מאפשר מספיק זרם דרך הלייזר. אני משתמש ב- RPi. GPIO כדי לתפעל את ה- GPIO של Pi. חיברתי את בסיס הטרנזיסטור לפין GPIO22 (הסיכה ה -15), הפולט לקרקע, והאספן אל דיודת הלייזר.

אל תשכח להפעיל את ממשק המצלמה באמצעות sudo raspi-config באמצעות שורת הפקודה.

תוכל להשתמש בקוד זה כדי לבדוק את ההתקנה שלך:

אם הכל הלך טוב צריך שיהיה לך קובץ dot-j.webp

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

בשלב זה יש להגדיר את החומרה שלך.

שלב 4: איתור הלייזר באמצעות OpenCV

ראשית, עלינו להתקין את OpenCV ב- Pi. בעצם יש לך שלוש דרכים לעשות את זה. אתה יכול להתקין את הגרסה הארוזה הישנה עם apt. אתה יכול לאסוף את הגירסה שאתה רוצה אבל במקרה זה זמן ההתקנה יכול להגיע עד 15 שעות ורובו עבור האוסף בפועל. או, הגישה המועדפת עלי, תוכל להשתמש בגרסה הידורית מראש ל- Pi Zero המסופקת על ידי צד שלישי.

מכיוון שהיא פשוטה ומהירה יותר, השתמשתי בחבילה של צד שלישי. תוכל למצוא את שלבי ההתקנה במאמר זה: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ ניסיתי מקורות רבים אחרים אך החבילות שלהם לא היו מעודכנות.

כדי לעקוב אחר מצביע לייזר, עדכנתי את הקוד מ- https://github.com/bradmontgomery/python-laser-tracker כדי להשתמש במודול המצלמה של Pi במקום בהתקן USB. אתה יכול להשתמש בקוד ישירות אם אין לך מודול מצלמת Pi וברצונך להשתמש במצלמת USB.

תוכל למצוא את הקוד המלא כאן:

כדי להריץ קוד זה יהיה עליך להתקין את חבילות ה- Python: כרית ו- picamera (sudo pip3 install pillow picamera).

שלב 5: כיול של מאתר הטווח

כיול של ה- Find Finder
כיול של ה- Find Finder
כיול של מאתר הטווח
כיול של מאתר הטווח
כיול של ה- Find Finder
כיול של ה- Find Finder

במאמר המקורי, המחבר תכנן הליך כיול כדי לקבל את הפרמטרים הנדרשים כדי להפוך את קואורדינטות y למרחק בפועל. השתמשתי בשולחן הסלון שלי לכיולים וחתיכת קראפט ישנה. כל 10 ס מ בערך רשמתי את קואורדינטות x ו- y לגיליון אלקטרוני: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… כדי לוודא שהכל עובד כמו שצריך, בכל שלב, בדקתי את התמונות שצולמו כדי לראות אם הלייזר היה במעקב נכון. אם אתה משתמש בלייזר ירוק או אם הלייזר שלך אינו במעקב נכון, יהיה עליך להתאים את גוון הרוויה וסף הערך של התוכנית בהתאם.

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

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

שלב 6: מדידת מרחקים

מדידת מרחקים
מדידת מרחקים

בקוד: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c עדכנתי את המשתנים HEIGHT, GAIN ו- OFFSET בהתאם למדידות הכיול. השתמשתי בנוסחת המרחק במאמר המקורי כדי להעריך את המרחק והדפסתי את המרחק באמצעות צג ה- LCD.

הקוד יגדיר תחילה את המצלמה ואת ה- GPIO, ולאחר מכן נרצה להאיר את התאורה האחורית של ה- LCD כדי לראות טוב יותר את המדידות. כניסת ה- LCD מחוברת ל- GPIO14. כל 5 שניות בערך, נבצע:

  1. לאפשר את דיודת הלייזר
  2. לצלם את התמונה בזיכרון
  3. להשבית את דיודת הלייזר
  4. עקוב אחר הלייזר באמצעות מסנני טווח HSV
  5. כתוב את התמונה שהתקבלה לדיסק לצורך איתור באגים
  6. לחשב את המרחק על בסיס קואורדינטת y
  7. כתוב את המרחק על צג ה- LCD.

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

אני יכול גם להגדיל את הרזולוציה של מד הטווח על ידי סיבוב המצלמה ב 90º באמצעות ה- full עם ולהגדיל את הרזולוציה למקסימום הנתמך על ידי המצלמה. עם היישום הנוכחי אנו מוגבלים לטווח של 0 עד 384 פיקסלים, נוכל להגדיל את הגבול העליון ל 1640, פי 4 מהרזולוציה הנוכחית. המרחק יהיה מדויק עוד יותר.

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

בסך הכל המערכת הנוכחית מספיקה לי ותחסוך לי כמה דולרים בהכנת תוכנית הבית שלי!

מוּמלָץ: