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

רכב צולל: 5 שלבים
רכב צולל: 5 שלבים

וִידֵאוֹ: רכב צולל: 5 שלבים

וִידֵאוֹ: רכב צולל: 5 שלבים
וִידֵאוֹ: מדריך, שנה וחצי עם איוניק 5: שלב התובנות - מה טוב ומה פחות טוב 2024, יולי
Anonim
רכב טביל
רכב טביל
רכב טביל
רכב טביל

***************** זה עדיין עבודה בתהליך ****************

מדריך זה נוצר כהגשמה לדרישת הפרויקט של Makecourse באוניברסיטת דרום פלורידה (www.makecourse.com).

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

שלב 1: חומרים

חומרים
חומרים
חומרים
חומרים
חומרים
חומרים

האלקטרוניקה בשימוש היכן:

1x Arduino Uno

1x מצלמת פעולה של mobius

1x מצלמת פעולה מסוג mobius usb-b לכבל A/V

1x תצוגת שדה 777 מסך תצוגה

1x Turnigy Marine 50A ESC (בקרת מהירות אלקטרונית)

1x כרטיס תכנות ימית

1x T-Motor Navigator 400kv

1x YEP 20A BEC (מעגל חיסול סוללות)

6x סרבי תחביב מלך HK15139 עמידים למים

2x רתמות מחבר T מקביליות

2 x חוטי הארכת סרוו 18 אינץ '

חוטי הארכת סרוו 6x6 אינץ '

2x 1300mah 3s סוללות ליפו

2 x 2500 mah 4s סוללות ליפו

לוח חלוקת חשמל 1x עם יציאות קבועות של 5v ו- 12v

חומרי הבנייה שבהם:

1x גיליון דיקט בגודל 3/16 אינץ '

1 x 6 אינץ 'צינור משלוח ABS

1x צינור סיליקון

1x פחית של חותם גמיש

4 סלילי נימה של מדפסת תלת מימד ABS

1x שקופית מגירות בגודל 24 אינץ '

צינור כיווץ חום

1x 10 רגל של סקוטש מותג סקוטש דוראלוק

1x אפוקסי מפלסטיק JB Weld

1x כיפת מצלמת אבטחה בקוטר 6.2 אינץ 'בקוטר

2x מעבר IP68 של Ethernet

2 x 24 אינץ 'כבל Cat6 Ethernet

1 x כבל ethernet cat6 בגודל 200 רגל

החומרה ששימשה הייתה:

ברגים מעץ פליז 24X 1/2 אינץ '

ברגים 24x ------ (כלול עם סרוווס)

הכלים המשמשים:

מברגים של פיליפס וראש שטוח

סט מפתחות אלן

מלחם

אקדח חום

מדפסת תלת מימד (השתמשתי ב- Monoprice Maker Select Plus)

שלב 2: תכנות

תִכנוּת
תִכנוּת
תִכנוּת
תִכנוּת
תִכנוּת
תִכנוּת
תִכנוּת
תִכנוּת

להלן הקוד שנוצר לשליטה בצלולה. צירפתי גם את קובץ ה-ino כך שניתן להוריד אותו.

קוד זה נוצר עבור ה- Arduino Uno באמצעות מהדר Arduino.

/**********************************************************************************************************************************************************************

מחבר: ג'ונה פאוורס תאריך: 9/11/2018 מטרה: קוד בקרה לרכב טבילה המופעל מרחוק ***************************** ********************************************** ********************************************** *********************************/#include // כולל Servo Library Servo roll1; // הכרזת גליל 1 להיות גליל סרוו סרוו 2; // הכרזת גליל 2 להיות סרוו סרוו elev1; // הכרזת elev1 להיות סרוו סרוו elev2; // הכרזת elev2 להיות סרוו סרוו סרוו 1; // הצהרת yaw1 להיות סרוו סרוו סרוו 2; // להכריז על yaw2 להיות סרוו סרווסק; // הכרזת esc להיות סרוו

int pot1 = 0; // חיטוי משתנה pot1 כמספר שלם והגדרתו שווה ל- 0 int pot2 = 1; // חיטוב משתנה pot2 כמספר שלם והגדרתו שווה ל 2 int pot3 = 2; // חיטוי משתנה pot3 כמספר שלם והגדרתו שווה ל- 4 int pot4 = 3; // חיטוב משתנה pot4 כמספר שלם והגדרתו שווה ל- 5 int val1; // משתנה איתחול val1 כמספר שלם int val2; // משתנה משתנה val2 כמספר שלם int val3; // משתנה אינטליזציה val3 כמספר שלם int val4; // משתנה משתנה val4 כמספר שלם int val5; // משתנה אינטליזציה val5 כמספר שלם של int6; // משתנה אינטליזציה val6 כמספר שלם int val7; // משתנה אינטליזציה val7 כמספר שלם של val8; // משתנה אינטליזציה val8 כמספר שלם int mspeed; // מיזוג משתנה mspeed כמספר שלם

הגדרת void () {// שלב אתחול Arduino Serial.begin (9600); // אתחול גליל המוניטור הסדרתי1.attach (2); // חיבור גליל סרוו 1 לסיכה דיגיטלית 2 גליל 2. מצורף (3); // הצמדת גליל סרוו 2 לסיכה דיגיטלית 3 elev1.attach (5); // הצמדת סרוו elev1 לסיכה הדיגיטלית 5 elev2.attach (6); // הצמדת סרוו elev2 לסיכה דיגיטלית 6 yaw1.attach (8); // הצמדת סרוו yaw1 לפין הדיגיטלי 8 yaw2.attach (9); // חיבור סרוו yaw2 לסיכה דיגיטלית 9 esc.achach (11); // חיבור סרוו esc לפין דיגיטלי 11 roll1.write (90); // כתיבת גליל סרוו 1 למיקומו המרכזי roll2.write (90); // כתיבת גליל סרוו 2 למיקומה המרוכז elev1.write (90); // כתיבת סרוו elev1 למיקומה המרכזי elev2.write (90); // כתיבת סרוו elev2 למיקומה המרוכז yaw1.write (90); // כתיבת yaw1 servo למיקומה המרוכז yaw2.write (90); // כתיבת סרוו yaw2 למיקומה המרוכז esc.write (180); // כתיבת סרוו esc לעיכוב המיקום המרוכז שלו (2500); // ממתין 2 שניות בכתב (90); עיכוב (5000); }

לולאת void () {// קוד ראשי ללולאה אינסופית אם (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// בודק אם "ג'ויסטיק" (פוטנציומטר) ממורכז ב- roll1.write (90); // כתיבת גליל סרוו 1 למיקום המרכזי roll2.write (90); // כתיבת גליל סרוו 2 למיקום המרכזי} אחר {// מה לעשות אם "ג'ויסטיק" אינו מרוכז val1 = map (val1, 0, 1023, 10, 170); // מיפוי val1 בין 10 ל -170 והקצאה ל- val1 roll1.write (val1); // כתיבת גליל סרוו 1 לפוזיטון המוגדר על ידי val1 roll2.write (val1); // כתיבת גליל סרוו 2 לפוזיטון המוגדר על ידי val1}

val2 = analogRead (pot2); // קריאת סיר 2 (פין אנלוגי 2) ושמירת הערך כ- val2 אם (val2> = 485 && val2 <= 540) {// בודקת אם "ג'ויסטיק" (פוטנציומטר) מרוכז elev1.write (90); // כתיבת סרוו elev1 למיקום המרכזי elev2.write (90); // כתיבת סרוו elev2 למיקום המרכזי} אחרת {// מה לעשות אם "ג'ויסטיק" אינו מרוכז val3 = map (val2, 0, 1023, 10, 170); // מיפוי val2 בין 10 ל -170 והקצאה ל- val3 val4 = map (val2, 0, 1023, 170, 10); // מיפוי val2 מ -170 עד 10 והקצאה ל- val4 elev1.write (val3); // כתיבת סרוו elev1 לפוזיטון המוגדרת על ידי val3 elev2.write (val4); // כתיבת סרוו elev2 לפוזיטון המוגדרת על ידי val4}

val5 = analogRead (pot3); // קריאת סיר 3 (סיכה אנלוגית 4) ושמירת ערך כ- val5 if (val5> = 485 && val5 <= 540) {// בודקת אם "ג'ויסטיק" (פוטנציומטר) ממורכז yaw1.write (90); // כתיבת servo yaw1 למיקום המרכזי yaw2.write (90); // כתיבת סרוו yaw2 למיקום המרכזי} אחר {// מה לעשות אם "ג'ויסטיק" אינו מרוכז val6 = map (val5, 0, 1023, 10, 170); // מיפוי val5 בין 10 ל -170 והקצאה ל- val6 val7 = map (val5, 0, 1023, 170, 10); // מיפוי val5 בין 10 ל -170 והקצאה ל- val7 yaw1.write (val6); // כתיבת servo yaw1 לפוזיטון שהוגדר על ידי val6 yaw2.write (val7); // כתיבת סרוו yaw2 לפוזיטון שהוגדר על ידי val7}

val8 = analogRead (pot4); // קריאת סיר 4 (פין אנלוגי 5) ושמירת ערך כ- val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// בודקת אם המנוע עומד לשנות כיוון esc.write (80); עיכוב (1000); // מחכה 1000 אלפיות השנייה} esc.write (val8); // כתיבת סרוו esc למהירות המוגדרת על ידי val8 mspeed = val8; // אחסון מהירות נוכחית להשוואה}} Serial.print ("מצערת"); // שימוש בהדפסה סדרתית כדי להציג את המילה "Throttle" Serial.println (val8); // שימוש בהדפסה סידרית כדי להציג את הערך שהמצערת מוגדרת ל- Serial.print ("גליל"); // שימוש בהדפסה סידרית להצגת המילה "רול" Serial.println (val1); // שימוש בהדפסה סידרית כדי להציג את הערך שגליל מוגדר ל- Serial.print ("מגרש"); // שימוש בהדפסה סידרית להצגת המילה "Pitch" Serial.println (val3); // שימוש בהדפסה סידרית כדי להציג את הערך ש- pitch1 מוגדר ל- Serial.println (val4); // שימוש בהדפסה סידרית כדי להציג את הערך ש- pitch2 מוגדר ל- Serial.print ("יאו"); // שימוש בהדפסה סדרתית כדי להציג את המילה "Yaw" Serial.println (val6); // שימוש בהדפסה סידרית כדי להציג את הערך ש- yaw1 מוגדר ל- Serial.println (val7); // שימוש בהדפסה סדרתית כדי להציג את הערך ש- yaw2 מוגדר אליו}

שלב 3: מעגלים

מצורפת תצלום של המעגל על גבי הטבול.

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

מצורפת תמונה של המעגל בתוך הבקר.

שלב 4: חלקים מודפסים בתלת מימד

הדפסתי את כל הקבצים האלה ב- Monoprice Maker Select Plus שלי. השתמשתי ב Esun ABS 1.75 מ"מ נימה. הגדרות ההדפסה שלי היו 105 מעלות צלזיוס עבור טמפרטורת מיטת ההדפסה ו -255 מעלות צלזיוס לטמפרטורת המכבש. יש צורך רק באחד מכל חלק פרט לכך שתזדקקו ל -6 עותקים של הכנף הקדמית. שים לב שחלקים אלה הודפסו בעובי דופן שהוגדר ל- 1000 מ"מ. הדבר נעשה כך שהחלקים יודפסו במילוי 100% כך שהם יהיו ציפים שליליות.

שלב 5: הרכבה

********************************* בקרוב *************** ********************

מוּמלָץ: