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

מכונית RasbperryPi עם מצלמת FPV. שליטה באמצעות דפדפן אינטרנט: 31 שלבים (עם תמונות)
מכונית RasbperryPi עם מצלמת FPV. שליטה באמצעות דפדפן אינטרנט: 31 שלבים (עם תמונות)

וִידֵאוֹ: מכונית RasbperryPi עם מצלמת FPV. שליטה באמצעות דפדפן אינטרנט: 31 שלבים (עם תמונות)

וִידֵאוֹ: מכונית RasbperryPi עם מצלמת FPV. שליטה באמצעות דפדפן אינטרנט: 31 שלבים (עם תמונות)
וִידֵאוֹ: רחפן DJI מירוצים FPV עם מצלמת גופרו 10 2024, נוֹבֶמבֶּר
Anonim
Image
Image

נבנה מכונית 4Wd - ההיגוי יהיה דומה כמו במיכל - סיבוב צד אחד של הגלגלים יסתובב במהירות שונה מאחר. ברכב תוצב המצלמה על מחזיק מיוחד שבו נוכל לשנות את מיקום המצלמה. הרובוט יהיה נשלט על ידי דפדפן אינטרנט (כרום או Firefox על שולחן העבודה, או Firefox בטלפון הנייד), בדפדפן, נקבל וידאו מצלמה (עם חביון של 200ms בלבד), ומהדפדפן, אנו יכולים לשלוט בתנועות המכונית ו מיקום המצלמה. כדי להקל על התקשורת השתמשתי במערכת app.remoteme.org, יש גם עבודה מחוץ לקופסה בשליטה על מכונית מסוג זה, כך שלא תצטרך לכתוב קוד משלך, אך כמובן שתוכל לשנות סקריפטים להוסיף אפשרויות חדשות וכו '

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

שלב 1: קצת מידע על App.remoteme.org

המערכת כוללת שלושה חלקים

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

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

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

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

בסוף הדרכה זו שמתי קישורים שימושיים שיעזרו לך להבין את המערכת remoteme.org.

שלב 2: מה נחוץ:

מה שצריך
מה שצריך
מה שצריך
מה שצריך
  • פטל PI אפס W
  • מצלמה ייעודית
  • מנהל התקן 16 סיביות PWM/סרוו של Adafruit - ממשק I2C - PCA9685 או השיבוט שלו
  • שני מנגנוני סרוו התואמים את מחזיק המצלמה
  • מחזיק מצלמה
  • סוללות - במדריך שתי אפשרויות חיבור
  • גשר H TB6612FNG, לשליטה בהגה הגלגל
  • קבצי נשר PCB קל להפוך אותו לשיטת העברה תרמית DC-DC
  • מודול ממיר שלב למטה DC
  • מארז רובוט

שלב 3: חיבורים

חיבורים
חיבורים

פסל pi מנגנון סרוו באמצעות מודול PWM ומהירות מנוע על ידי גשר H המחובר לסיכות RasbperryPi, קלט PWM לגשר H נוצר על ידי אותו מודול בו השתמשתי עבור סרוו (אילו חלקים שאני מציין לעיל אין צורך בממירי לוגיקה)

שלב 4: PCB

PCB
PCB
PCB
PCB

אתה יכול להוריד קבצי נשר PCB מכאן נתיבים הם שמנים ולכן קל לעשות זאת בשיטת העברה תרמית

שלב 5: יציאות PCB

יציאות PCB
יציאות PCB
יציאות PCB
יציאות PCB
  1. קלט PWM למנועי כונן צריך להיות מחובר למודול PWM 15 ו 16 סיכות (בדוק מלבן ירוק בתמונת מודול PWM)
  2. קלט חשמל למנועי הנעה (בדוק עם איזה מתח מרבי המנועים שלך יכולים לעבוד)
  3. הספק למודול RasbperryPi ו- PWM - חייב להיות בדיוק
  4. יציאות מנועי הנעה (ישנם שני יציאות מכיוון שנצמיד מנועי הנעה)
  5. כוח מנגנוני סרוו - גם אתה צריך לבדוק איזה מתח טוב להם
  6. מגשר הכוח הנוכחי שלו מהכניסה החמישית יניע גם מנועים כך שאין צורך לחבר דבר לקלט 2
  7. מגשר אם קיים RasbperryPi יהיה כוח מהקלט השלישי - לפני לשים את המגשר כאן בדוק אם החיבורים תקינים - אתה לא רוצה לשרוף את ה- RPi שלך
  8. מאפשר להלחם כאן כבלים מכיוון שאיננו זקוקים לממירי לוגיקה

שלב 6: איך זה עובד

ב- RasbperryPi יש סקריפט פייתון שמשתמש בשתי ספריות

  • ייבוא RPi. GPIO כ- GPIO-לסיכות 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (סימון BCM) המחוברות לגשר H
  • יבוא Adafruit_PCA9685 עבור מודול PWM

סיכות Rpi מחוברות כדלקמן 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) ומצב השליטה של H bridge (קדימה, אחורה, עצירה, הפסקה קצרה). גשר H צריך גם שני אותות PWM כדי שנוכל לשלוט במהירות או בסיבוב המנוע. מכיוון שבפרויקט כבר יש לנו בקר PWM (משמש לסרוו) נשתמש בו גם ליצירת PWM עבור H bridge.

מודול PWM משתמש בפרוטוקול תקשורת I2C. השתמשתי בעבודה מחוץ לקופסה Adafruit_PCA9685. סִפְרִיָה

שלב 7: הרכבה לרכב - גלגלים

הרכבת רכב - גלגלים
הרכבת רכב - גלגלים
הרכבת רכב - גלגלים
הרכבת רכב - גלגלים

נתחיל מחבר מנועי כונן למארז לרכב. מנועים צד שמאליים/צדדיים מתחברים זה לזה ושניהם מתחברים לכבל חשמל כלשהו שיחובר מאוחר יותר ל- PCB. הערה חשובה בעת חיבור מנועים גלגלים בכל צד צריכים להסתובב באותו כיוון.

שלב 8: כוח (סוללות נטענות AA) 1/2

כוח (סוללות נטענות AA) אפשרות 1/2
כוח (סוללות נטענות AA) אפשרות 1/2
כוח (סוללות נטענות AA) אפשרות 1/2
כוח (סוללות נטענות AA) אפשרות 1/2
כוח (סוללות נטענות AA) אפשרות 1/2
כוח (סוללות נטענות AA) אפשרות 1/2
כוח (סוללות נטענות AA) אפשרות 1/2
כוח (סוללות נטענות AA) אפשרות 1/2

אני אכתוב שתי אפשרויות של כוח המכונית הראשונה היא מתוך סוללות טעינה של 10xAA בסוף התמונה שציירתי מגשרים בצבעים אדומים שצריך לשים.

שלב 9: כוח (סוללות 7.2V Li-Po) אפשרות 2/2

כוח (סוללות Li-Po 7.2V) אפשרות 2/2
כוח (סוללות Li-Po 7.2V) אפשרות 2/2
כוח (סוללות Li-Po 7.2V) אפשרות 2/2
כוח (סוללות Li-Po 7.2V) אפשרות 2/2

והאפשרות השנייה היא סוללת LI-PO 7.2. במקרה זה קיבלנו 3 מתחים - 5 וולט ל- Rpi ולמודול, 6 וולט עבור סרווס וישירות מסוללות 7.2 וולט למנועי הנעה. הייתי צריך להשתמש בשני מודולים מדורגים

אופציה 2 עם LI-PO עדיפה:

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

שלב 10: הלחמה

הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה

שמתי ב- PCB כמה מרווחים למודול PWM. אין מה לכתוב פשוט בדוק תמונות כיצד להלחם הכל יחד

שלב 11: מצלמה

מַצלֵמָה
מַצלֵמָה

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

שלב 12: חיבור חלקי מכוניות

חיבור חלקי מכוניות
חיבור חלקי מכוניות
חיבור חלקי מכוניות
חיבור חלקי מכוניות
חיבור חלקי מכוניות
חיבור חלקי מכוניות

עבור PCB הכנתי שולחן פרספקס קטן

שלב 13: הגדרת App.remoteme.org

תצורה של App.remoteme.org
תצורה של App.remoteme.org

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

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

  • הירשם בכתובת https://app.remoteme.org לאחר ההרשמה תיכנס אוטומטית
  • פתח את כרטיסיית האסימון משמאל, ולאחר מכן לחץ על "אסימון חדש" ספק שם כלשהו ולחץ על אישור, הרגע יצרנו אסימון חדש (תמונה במסך)
  • בדוגמה זו, ערך האסימון הוא: ~ 1_ & p@+BNnZ@A+x8 (שלך יהיה שונה;))

שלב 14: תצורת RasbperryPi

תצורת RasbperryPi
תצורת RasbperryPi

בקונסולת מרק (הנה כיצד להגדיר את תקשורת ה- RPi שלנו להדליק מצלמה I2c)

שיבוט git git: //github.com/remoteme/remoteme.git

remodeme cd

python3.5 install.py

  • המתקין ישאל אותנו כמה שאלות לכל מה שאנו מגיבים [Y] ואישר על ידי [enter]
  • כאשר ההתקנה תבקש אסימון אנו מדביקים (shift+insert) אסימון שהועתק מהיישום והזן
  • השם למשל Rpi
  • deviceId 1 הזן
  • לאחר ההתקנה - הפעל את התוכנית

./runme.sh

שלב 15: בדיקת חיבורים

בודק חיבורים
בודק חיבורים

נחזור אל

בכרטיסייה מכשירים נראה את ה- RPi המחובר שלנו (סמל קישור ירוק פירושו RPi מחובר כרגע)

שלב 16: הוספת סקריפט פייתון

הוספת סקריפט פייתון
הוספת סקריפט פייתון
הוספת סקריפט פייתון
הוספת סקריפט פייתון

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

בכרטיסיה מכשירים פתח את תפריט RasbperryPi ובחר "הוסף סקריפט חיצוני".

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

אל תשכח לבחור תבנית "car4wd". לאחר שלבים אלה, remoteme.org יוסיף סקריפט פייתון ל- RasbperryPi שלנו ויפעיל אותו מחדש

שלב 17: בדיקה אם נוספה סקריפט Python בהצלחה

בודקים אם סקריפט Python נוספה בהצלחה
בודקים אם סקריפט Python נוספה בהצלחה

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

שלב 18: הוספת דף אינטרנט למכונית השליטה

הוספת דף אינטרנט לרכב Control
הוספת דף אינטרנט לרכב Control

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

שלב 19: הגדר את התקן דף האינטרנט לשליטה במכונית 1/2

הגדר את התקן דף האינטרנט לשליטה במכונית 1/2
הגדר את התקן דף האינטרנט לשליטה במכונית 1/2

הרחב את דף האינטרנט בכרטיסיית ההתקן ולחץ על index.html ואז פתח

שלב 20: הגדר את התקן דף האינטרנט לשליטה ברכב 2/2

הגדר את התקן דף האינטרנט לשליטה ברכב 2/2
הגדר את התקן דף האינטרנט לשליטה ברכב 2/2

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

שלב 21: פתח את מרכז בקרת הרכב

פתח את מרכז בקרת הרכב
פתח את מרכז בקרת הרכב
פתח את מרכז בקרת הרכב
פתח את מרכז בקרת הרכב

הגיע הזמן לפתוח את הדף ולראות איך הוא עובד. בכרטיסיית המכשיר לחץ על index.html ולאחר מכן על "פתח בכרטיסייה חדשה" כדי לקבל תצוגה מקדימה של סרטון עליך להשתמש בדפדפן כרום או Firefox, דפדפן אחר אינו תומך ב- webRTC באופן מלא

שלב 22: תצורת המצלמה 1/2

תצורת מצלמה 1/2
תצורת מצלמה 1/2

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

שלב 23: תצורת מצלמה 2/2

תצורת מצלמה 2/2
תצורת מצלמה 2/2

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

במיקום המרכזי של התיק שלי הוא 560 ו -430 וטווח התנועות הוא לשני הצירים 200

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

שלב 24: נהיגה 1/2

נהיגה 1/2
נהיגה 1/2

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

לאחר פעולה זו לאחר חבטת "למעלה" המכונית צריכה לנסוע קדימה ומכונית החץ למטה צריכה לנסוע לאחור.

שלב 25: נהיגה 2/2

נהיגה 2/2
נהיגה 2/2

עכשיו מסתובב - פגע בחץ שמאלה אם המכונית פונה ימינה עליך להעיף כבלים (בדוק את התמונה למעלה)

אם אתה מרתק כבלים אלה אתה יכול לשנות אותו ב- script.jsj רק לשנות את סדר שליחת מהירות המנועים, לפני:

pos = putByte (ret, pos, carController.getMotorMode (carController.getRightSideSpeed ())); pos = putByte (ret, pos, Math.abs (carController.getRightSideSpeed ()*255));

pos = putByte (ret, pos, carController.getMotorMode (-carController.getLeftSideSpeed ()));

pos = putByte (ret, pos, Math.abs (carController.getLeftSideSpeed ()*255));

לאחר:

pos = putByte (ret, pos, carController.getMotorMode (-carController.getLeftSideSpeed ()));

pos = putByte (ret, pos, Math.abs (carController.getLeftSideSpeed ()*255));

pos = putByte (ret, pos, carController.getMotorMode (carController.getRightSideSpeed ()));

pos = putByte (ret, pos, Math.abs (carController.getRightSideSpeed ()*255));

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

שלב 26: איך זה עובד

דף האינטרנט שולח הודעות הודעה בת 9 בתבנית לפייתון בפורמט:

  • ערך 1 שלם בתים אחד
  • מיקום מצלמה של X בתים שלם
  • מיקום מצלמה של 2 בתים שלם
  • מספר בתים שלם של מנוע שמאל (3 = אחורה, 1 = קדימה, 2 = עצירה)
  • מהירות המנוע השמאלית של 1 בתים אחת
  • מצב מנוע ימני שלם אחד בתים (3 = אחורה, 1 = קדימה, 2 = עצירה)
  • מהירות מנוע ימנית של 1 בתים שלמה

שליחת ההודעה מתבצעת בקובץ script.js בפונקציה "sendNow ()"

ב- RasbperryPi python.py מקבל את ההודעה הזו בפונקציה "onUserMessage"

אתה יכול לבדוק את זה ולשחק קצת כדי שתדע מה קורה.

תיאור פונקציות הכיתה כאן

שלב 27: טאבלט, היגוי נייד

טאבלט, היגוי נייד
טאבלט, היגוי נייד

אנו מוסיפים דף אינטרנט חדש בצורה מדויקת כמו שעשינו בעבר, אך כעת אנו בוחרים בתבנית "car4wdMobile"

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

שלב 28: פתח דף בטלפון הנייד

פתח דף בטלפון הנייד
פתח דף בטלפון הנייד
פתח דף בטלפון הנייד
פתח דף בטלפון הנייד

במקום להיכנס לחשבון שלך מהנייד פשוט סרוק כתובת URL כלשהי של QR.

פרטים של QR כאן

אם השליטה בנייד שלך פועלת כאשר RPi והנייד נמצאים באותו wifi אבל לא אם אתה משתמש באינטרנט סלולרי אז עליך להוסיף שרת טור, איך לעשות את זה שכתבתי כאן

שלב 29: הוספת Turn Server

הוספת שרת Turn
הוספת שרת Turn
הוספת שרת Turn
הוספת שרת Turn
הוספת שרת Turn
הוספת שרת Turn

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

בדקתי שרת של חברת XIRSYS (הוא בחינם לשימוש מפתחים) ואני אראה כיצד להגדיר שרת תור באמצעות מערכת XIRSYS

הירשם:

global.xirsys.net/dashboard/signup

לאחר מכן לחץ על "פלוס" כדי להוסיף יישום

מימין תחת "אישורי סיבוב סטטי" יש לך את כל הנתונים שאתה צריך. העתק אותו לקובץ webrtc_streamer.conf לשם כך עבור אל

להרחיב את מכשירי RaspberryPi

לחץ על הקובץ webrtc_streamer.conf

לחץ על פתח

ולהוסיף מידע

turn_server = turn_username =

turn_credential =

לאחר שתסיים לערוך אתה אמור לקבל משהו כמו המסך.

לאחר מכן לחץ על שמור והפעל מחדש את ה- Rpi שלך, על ידי לחיצה על התפריט במכשיר RasbperryPi ובחר הפעלה מחדש

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

שלב 30: היגוי נייד

היגוי נייד
היגוי נייד

במעגל 1 אנו ממקמים את האגודל השמאלי, ב- 2 ימינה - לא חייבים להיות בדיוק בנקודות אלה - דף האינטרנט יגדיר את מיקום האפס מיד לאחר שתגע במסך, ועל ידי הזזת האגודלים (נהיגה שמאלה, מיקום המצלמה הימנית) תוכל לשלוט המכונית שלך

שלב 31: סיכום

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

כמה קישורים:

remoteme.org - דף הבית של remoteme.org שם אתה מוצא תיעודים והדרכות

Fp fanpage - דף הפייסבוק החדש ביותר של אתר פייסבוק בנושא remoteme.org

YouTube - כמה סרטוני פרוייקט, הדרכות

לחיים, מאסיאק

מוּמלָץ: