תוכן עניינים:
- שלב 1: רשימת חומרים
- שלב 2: בניית מכשיר לייזר ומצלמה
- שלב 3: נהיגה בלייזר ו- LCD
- שלב 4: איתור הלייזר באמצעות OpenCV
- שלב 5: כיול של מאתר הטווח
- שלב 6: מדידת מרחקים
וִידֵאוֹ: הכנת מד טווח באמצעות לייזר ומצלמה: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
כרגע אני מתכנן עבודות פנים לאביב הקרוב, אך מכיוון שרכשתי בית ישן אין לי תוכנית בית. התחלתי למדוד מרחקים מקיר לקיר באמצעות סרגל אך הוא איטי ונטייה לשגיאות. חשבתי לקנות מד טווח כדי להקל על התהליך אבל אז מצאתי מאמר ישן על בניית מד טווח משלו באמצעות לייזר ומצלמה. כפי שמתברר, יש לי את המרכיבים האלה בסדנה שלי.
הפרויקט מבוסס על מאמר זה:
ההבדל היחיד הוא שאני אבנה את מד הטווח באמצעות 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
עקבתי אחר הדרכה זו 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: כיול של מאתר הטווח
במאמר המקורי, המחבר תכנן הליך כיול כדי לקבל את הפרמטרים הנדרשים כדי להפוך את קואורדינטות 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 שניות בערך, נבצע:
- לאפשר את דיודת הלייזר
- לצלם את התמונה בזיכרון
- להשבית את דיודת הלייזר
- עקוב אחר הלייזר באמצעות מסנני טווח HSV
- כתוב את התמונה שהתקבלה לדיסק לצורך איתור באגים
- לחשב את המרחק על בסיס קואורדינטת y
- כתוב את המרחק על צג ה- LCD.
עם זאת, האמצעים די מדויקים ומדויקים מספיק למקרה השימוש שלי, יש הרבה מקום לשיפורים. לדוגמה, נקודת הלייזר היא באיכות ירודה מאוד וקו הלייזר לא ממש מרוכז. עם לייזר באיכות טובה יותר, שלבי הכיול יהיו מדויקים יותר. אפילו המצלמה לא ממש ממוקמת היטב בג'יג שלי, היא נטה לתחתית.
אני יכול גם להגדיל את הרזולוציה של מד הטווח על ידי סיבוב המצלמה ב 90º באמצעות ה- full עם ולהגדיל את הרזולוציה למקסימום הנתמך על ידי המצלמה. עם היישום הנוכחי אנו מוגבלים לטווח של 0 עד 384 פיקסלים, נוכל להגדיל את הגבול העליון ל 1640, פי 4 מהרזולוציה הנוכחית. המרחק יהיה מדויק עוד יותר.
כמעקב, אצטרך לעבוד על שיפורי הדיוק שציינתי לעיל ולבנות מארז עבור מד הטווח. המתחם יצטרך להיות בעומק מדויק כדי להקל על מדידות הקיר לקיר.
בסך הכל המערכת הנוכחית מספיקה לי ותחסוך לי כמה דולרים בהכנת תוכנית הבית שלי!
מוּמלָץ:
הכנת מכשיר לייזר: 21 שלבים
הכנת מכשיר לייזר: במדריך זה אראה לך כיצד ליצור תקשורת לייזר. (מכשיר שיכול לתקשר על מרחק מסוים ללא צליל באמצעות לייזר … אני מבטיח שזה שווה את זה)* כתב ויתור* עקב המגיפה לא באמת אעשה
אקדח קרטון Arduino (טווח טווח ומד טווח): 8 שלבים
אקדח קרטון מארדואינו (טווח טווח ומד טווח): האם לא יהיה מדהים אם תוכל למדוד מרחק בישיבה נוחה על הספה? במקום שתצטרך להשתמש בקלטת מסורתית? אז היום אני הולך להכין אקדח ארדואינו שמסוגל למדוד מרחקים של 2 ס"מ עד 400 ס"מ רוחב
הדרכה: כיצד לבנות מודול חיישן טווח לייזר VL53L0X באמצעות Arduino UNO: 3 שלבים
הדרכה: כיצד לבנות מודול חיישן טווח לייזר VL53L0X באמצעות Arduino UNO: תיאורים: הדרכה זו תציג בפניכם את כל הפרטים כיצד לבנות גלאי מרחק באמצעות מודול חיישן טווח לייזר VL53L0X ו- UNO Arduino והוא יפעל כמוכם רוצה. עקוב אחר ההוראות ותבין את החונך הזה
חצובה DIY - כיצד להכין חצובה לסמארטפון ומצלמה באמצעות אנטנה: 8 שלבים
חצובה DIY | איך להכין חצובה לסמארטפון ומצלמה על ידי אנטנה: כשאני מחפש חצובה להכנת סרטונים עבור CookQueens אז ראיתי שכל מחיר חצובה בגודל 5 רגל התחיל מטווח גבוה מאוד באתר מסחר אלקטרוני אחר. אני גם מחכה להנחה, אבל לא קיבלתי את זה. לאחר מכן, החלטתי לעשות
אפקט לייזר לייזר עם לייזר בעבודת יד: 4 שלבים
אפקט Moire LASER עם לייזר בעבודת יד: להלן צילום של אפקט זה, לעיתים האפקט זורם על הקיר 90 מעלות מהמסך. זה מאוד מרשים !. זה לא יכול ולא יכול לחזור עלי בזמן הצפייה, זה בטוח לעשות זאת למרות שהייתי ממליץ על זה