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

מחוון מצלמות מעקב אחר אובייקטים עם ציר סיבוב. מודפס בתלת מימד ובנוי על בקר מנועי DC RoboClaw & Arduino: 5 שלבים (עם תמונות)
מחוון מצלמות מעקב אחר אובייקטים עם ציר סיבוב. מודפס בתלת מימד ובנוי על בקר מנועי DC RoboClaw & Arduino: 5 שלבים (עם תמונות)

וִידֵאוֹ: מחוון מצלמות מעקב אחר אובייקטים עם ציר סיבוב. מודפס בתלת מימד ובנוי על בקר מנועי DC RoboClaw & Arduino: 5 שלבים (עם תמונות)

וִידֵאוֹ: מחוון מצלמות מעקב אחר אובייקטים עם ציר סיבוב. מודפס בתלת מימד ובנוי על בקר מנועי DC RoboClaw & Arduino: 5 שלבים (עם תמונות)
וִידֵאוֹ: 3000+ Portuguese Words with Pronunciation 2024, יולי
Anonim
Image
Image
עיצוב חומרה + בנייה + הדפסה בתלת מימד
עיצוב חומרה + בנייה + הדפסה בתלת מימד

פרויקטים של Fusion 360 »

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

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

קבצי הדפסה מסוג CAD/ 3D זמינים כאן

קובץ קוד Arduino זמין כאן

הפרויקט סובב סביב 2 מנועי DC המוברשים עם הילוכים ובקר ה- Basic Micro Roboclaw Motor. בקר מנוע זה יכול להפוך מנועי DC מוברשים לסרוו מסוג מעולה עם דיוק מיקום מדהים, טונות של מומנט וסיבוב של 360 מעלות. עוד על כך בהמשך.

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

חומרים-

  • מוטות מושחלים מסוג m10 באורך 2x1 מטר המשמשים לחיבור כל החלקים
  • 8x אגוזים M10 להרכבת החלקים למוטות המושחלים
  • מוטות פלדה חלקים באורך 8 ס"מ 8 מ"מ להחלקה על המחוון
  • מיסבים 4x lm8uu עבור המחוון להחליק בצורה חלקה על מוטות הפלדה
  • אגוזים m3 באורך 10 מ"מ להרכבת המנוע
  • 2 x מסבי סקייטבורד (קוטר חיצוני 22 מ"מ, קוטר פנימי 8 מ"מ) לציר הסיבוב
  • מיסב 1 x 15 מ"מ לצד הבטלן
  • בורג m4 ארוך באורך 4 ס"מ עם אגוז נעילה m4 להתקנת מיסב הסרק לחלק המודפס בתלת מימד.
  • 20 שיניים הילוכים עם קוטר פנימי 4 מ"מ עבור מנוע המחוון. הגלגלת המדויקת אינה חשובה במיוחד מכיוון שמנוע ה- DC שלך צריך להיות מכוון למומנט מספיק. רק וודא שזו אותה המגרש כמו החגורה שלך
  • חגורת GT2 באורך 2 מטר. שוב אתה יכול להשתמש בכל חגורה כל עוד היא תואמת את גובה שיני הגלגלת שלך.

מכשירי חשמל

  • 2 * מנועי DC ממונעים עם מקודדים (אחד שולט בתנועה לרוחב, ואילו השני שולט על ציר הסיבוב). הנה האחד שהשתמשתי בו. עוד על כך בחלק האלקטרוניקה במדריך
  • בקר מנועי DC RoboClaw. (השתמשתי בבקר 15Amp הכפול מכיוון שהוא איפשר לי לשלוט בשני המנועים באמצעות בקר אחד)
  • כל ארדואינו. השתמשתי ב- UNO של Arduino
  • סוללה/ מקור חשמל. (השתמשתי בסוללת LiPo בתא 7.4V)
  • מסך (להצגת התפריט. כל מסך תואם U8G יעבוד, השתמשתי במסך OLED בגודל 1.3 אינץ 'זה)
  • מקודד Rotatry (לניווט והגדרת אפשרויות בתפריט)
  • כפתור לחיצה פיזי (להפעלת תנועת המחוון)

שלב 1: עיצוב חומרה + בנייה + הדפסה תלת -ממדית

מכשירי חשמל
מכשירי חשמל

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

נתחיל בליבת הפרויקט הזה- 2 מנועי DC מוברשים.

בחרתי במנועי DC מוברשים מכמה סיבות.

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

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

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

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

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

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

שלב 3: תכנות מחוון המצלמות

תכנות מחוון המצלמות
תכנות מחוון המצלמות
תכנות מחוון המצלמות
תכנות מחוון המצלמות

קידוד היה ללא ספק האתגר הקשה ביותר של הפרויקט הזה. אתה מבין, מההתחלה רציתי שהמחוון יהיה ניתן לשליטה ממסך. כדי להפוך את הפרויקט לתואם לכמה שיותר מסכים, הייתי צריך להשתמש בספריית U8Glib עבור ה- Arduino. לספרייה זו יש תמיכה ביותר מ -32 מסכים. עם זאת, ספריית U8Glib השתמשה בלולאת תמונות כדי לצייר את התפריט על המסך והדבר סותר את יכולתו של הארדואינו לאסוף בו זמנית מידע על מיקום המצלמה אשר נדרש לפונקציונליות חישוב זווית המצלמה (זה מכוסה בפסקאות הבאות.). ל- U8Glib2 יש אלטרנטיבה ללולאת התמונה באמצעות משהו שנקרא אופציית חיץ עמודים מלאה אך הספרייה צרכה יותר מדי זיכרון והקשה על התאמת שאר הקוד בהתחשב במגבלות הזיכרון של ה- Arduino Uno. המשמעות היא שהייתי תקוע עם U8G והייתי צריך לעקוף את הבעיה על ידי מניעה מהמסך להתעדכן בכל פעם שהמחוון בתנועה והארדואינו צריך לאסוף נתוני מיקום מהרובוקלאו. נאלצתי גם להפעיל את המחוון להתחיל לנוע מחוץ ללולאת התפריטים, כאשר ברגע שנכנסתי לתפריטי המשנה, הייתי בתוך לולאת התמונות והמחוון לא יעבוד כמתוכנן. עקפתי גם את הבעיה הזו על ידי כך שכפתור פיזי נפרד מפעיל את תנועת המחוון.

בשלב הבא נדבר על אלמנט המעקב הסיבובי. חלק זה נראה מורכב מאוד לשילוב, אך למעשה הוא די פשוט. היישום לכך הוא תחת הפונקציה 'motor ()' בתוך קוד ה- Arduino שלי. השלב הראשון הוא ליצור רשת דו ממדית והחליטו היכן ממוקם האובייקט שאליו אתם רוצים לעקוב. על סמך זה אתה יכול לצייר משולש למיקום הנוכחי שלך. אתה יכול לקבל את המיקום הנוכחי שלך מערך המקודד של המנוע. אם ברצונך להגדיר את המיקום של האובייקט שעוקבים אחריו ב- cm/mm, יהיה עליך לתרגם את ערך המקודד לערך cm/mm. ניתן פשוט לעשות זאת על ידי הזזת מחוון המצלמה בסנטימטר אחד ומדידת העלייה בערך המקודד. תוכל להזין ערך זה בחלק העליון של הקוד תחת המשתנה encoder_mm.

ממשיכים הלאה, כעת נשתמש בפונקציית המשיק ההפוך כדי לקבל את הזווית שהמצלמה חייבת לפנות אליה כדי להצביע על האובייקט שלך. המשיק ההפוך תופס את הצד הנגדי והצמוד של המשולש. הצד הנגדי של המשולש אף פעם לא משתנה מכיוון שזה המרחק y מהמחוון שלך לאובייקט. הצד הסמוך של מחוון המצלמה אכן משתנה. ניתן לחשב את הצד הסמוך הזה על ידי לקיחת מיקום x של האובייקט וחיסור ממנו של המיקום הנוכחי שלך. כאשר המחוון נע בטווח התנועה שלו, הוא ימשיך לעדכן את ה- Arduino על ערך המקודד. ה- Arduino ימיר שוב ושוב את ערך המקודד הזה לערך מיקום של ס"מ/מ"מ ולאחר מכן יחשב את אורך הצד הסמוך, ולבסוף יחשב את הזווית שהמצלמה צריכה להתמודד איתה בכל עת כדי להצביע על האובייקט.

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

קוד ארדואינו להעברת הרובוקלב לעמדה מסוימת הוא כדלקמן:

roboclaw. SpeedAccelDeccelPositionM1 (כתובת, 'מהירות', 'האצה', 'האטה', 'מיקום שאליו אתה רוצה ללכת', 1);

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

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

שלב 4: הפעלת מחוון המצלמות

הפעלת מחוון המצלמות
הפעלת מחוון המצלמות

כעת אנו מגיעים לחלק המהנה, הפעלת המחוון התפריט כולל 4 כרטיסיות עיקריות. הכרטיסייה העליונה מוקדשת לבקרת מהירות. השורה האמצעית בתפריט מכילה כרטיסיות להגדרת מיקום ה- X & Y של האובייקט המעקב במ"מ, וגם להגדיר אם נרצה שהמחוון יסובב ויעקוב אחר האובייקט שלנו או פשוט יעשה תנועת הזזה פשוטה ללא סיבוב. סיבוב המקודד הרוטרי מאפשר לנו לנווט בין האפשרויות השונות של התפריטים. כדי להגדיר כל אחת מהאפשרויות, נווט לאפשרות ולחץ על המקודד הסיבוב. לאחר הלחיצה, סיבוב המקודד הסיבוב ישנה את הערך של תפריט המשנה המודגש במקום לשפשף את התפריט. לאחר שהגעת לערך הרצוי, תוכל ללחוץ שוב על המקודד הסיבובי. כעת אתה חוזר לתפריט הראשי ויכול לנווט בין הכרטיסיות השונות. ברגע שאתה מוכן, פשוט לחץ על כפתור ההפעלה ליד המסך והמחוון עושה את שלו!

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

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

שלב 5: מחשבות אחרונות + שיפורים עתידיים

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

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

לבסוף, אם הייתי מכין גרסה 2.0, הנה כמה שיפורים שאעשה

  1. יחס הילוכים גבוה יותר עבור מנוע ציר הסיבוב. יחס הילוכים גבוה יותר אומר שאני יכול לבצע מהלכים קטנים יותר מדויקים. הדבר קריטי במיוחד כאשר המצלמה רחוקה מהאובייקט וזווית המצלמה משתנה לאט מאוד. נכון לעכשיו, המנוע שלי אינו מכוון גבוה מדי והוא עלול לגרום לתנועה קמעה כאשר מחוון המצלמה פועל לאט מדי או כאשר יש מעט מאוד שינוי בזווית סיבובית. הוספת ערך 'D' PID גבוה עזרה לי להיפטר מזה אך עלתה במחיר של דיוק מעקב אחר אובייקטים מעט נמוך יותר.
  2. אורך מודולרי. זוהי מטרה מופרכת, אך אשמח אם מחוון המצלמה יהיה מודולרי באורכו, כלומר תוכל לצרף אורכי מסלול ארוכים יותר כדי שהמצלמה תוכל להחליק. זה די קשה כיוון שתצטרך ליישר את שני המסלולים בצורה מושלמת ולברר כיצד מערכת החגורה עובדת. עם זאת, זה יהיה שדרוג מגניב!
  3. תנועה מותאמת אישית Keymraming. אשמח להציג את רעיון התנועות עם מסגרת המפתח למחוון המצלמות הזה. Keyframing היא טכניקה נפוצה מאוד בייצור וידאו ושמע. זה יאפשר תנועות מצלמה לא לינאריות שבהן המצלמה עוברת למיקום, ממתינה, ואז עוברת למיקום אחר במהירות אחרת, ממתינה, ואז עוברת למיקום שלישי וכו '.
  4. שליטה בטלפון/ אלחוטי. זה יהיה ממש מגניב להיות מסוגל להגדיר את הפרמטרים של מחוון המצלמה באופן אלחוטי ולהיות מסוגל לפרוס את מחוון המצלמה במיקומים שקשה לגשת אליהם. אפליקציית הטלפון יכולה גם לפתוח הזדמנויות לשלב פריימים כאמור בפסקה האחרונה.

זהו זה להדרכה זו. אל תהסס להשאיר שאלות בסעיף ההערות למטה.

לעוד הדרכות תוכן ואלקטרוניקה אתה יכול לבדוק את ערוץ היוטיוב שלי כאן.

מוּמלָץ: