תוכן עניינים:
וִידֵאוֹ: רובוט ציור Haptic: 5 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
במסגרת סיום המאסטר שלי במחלקה. עיצוב תעשייתי באוניברסיטת איינדהובן, יצרתי מכשיר ציור האפטי שניתן להשתמש בו כדי לנווט במכונית חצי אוטונומית בתנועה. הממשק נקרא scribble ומאפשר למשתמש לחוות מתקנים האפטיים במרחב דו -ממדי באמצעות כוח ומיקום משתנים. למרות שהרעיון אינו מה שמדובר בהנחיה זו, תוכל לקרוא עוד על Scribble כאן:
Scribble משתמשת בתצורת הצמדה של 5 בר המאפשרת לה להעביר שתי דרגות חופש לרוחב (DoF). התקנה זו פופולרית למדי בקרב אב טיפוס ליצירת רובוטי ציור, להלן מספר דוגמאות:
www.projehocam.com/arduino-saati-yazan-kol-…
blogs.sap.com/2015/09/17/plot-clock-weathe…
www.heise.de/make/meldung/Sanduhr-2-0-als-Bausatz-im-heise-shop-erhaeltlich-3744205.html
מבחינה מכנית קל לייצר רובוטים אלה. הם צריכים רק מפרקים בסיסיים ויש להם שני מפעילים שיכולים ליצור לא מעט תנועות נוזל. מבנה זה הוא אידיאלי עבור מעצבים המעוניינים ליצור מבנה נע, אולם בהיותי לא מהנדס מכונות, היה לי די קשה לתרגם את הקינמטיקה לקוד. מכאן שאספק קוד Arduino בסיסי המבין את הקינמטיקה קדימה והיפוכה, כך שתוכל להשתמש בזה בקלות בעיצובים העתידיים שלך!;-)
אנא הורד את הקוד למטה!
* עריכה: לפרויקט דומה, עיין ב https://haply.co *
שלב 1: בניית המבנה
בהתאם למטרה שיש לך בראש עליך קודם כל לעצב מבנה בעל 5 קישורים. חשוב על המדידות, המפעילים שבהם אתה רוצה להשתמש וכיצד לחבר את המפרקים לתנועות חלקות.
עבור אב הטיפוס שלי, אני מריץ את הקוד שלי ב- Arduino DUE שנשלט על ידי סדרה על ידי תוכנית ב- Mac שלי שנעשתה ב- Open Frameworks. התוכנית משתמשת בחיבור UDP כדי לתקשר עם סימולטור נהיגה מבוסס 3D.
אב טיפוס ה- Scribble משתמש במיסבים של 5 מ"מ והוא עשוי מ- acrilic בחיתוך לייזר בגודל 5 מ"מ. המפעילים הם המנועים ההפטיים של פרנק ואן ולקנהוף המאפשרים הפעלה, קריאת מיקום והוצאת כוח משתנה. זה הפך אותם לאידיאליים עבור המאפיינים ההפטיים הרצויים של Scribble. עוד על המפעילים שלו ניתן למצוא כאן:
שלב 2: דע את ערכי החומרה שלך
הקינמטיקה קדימה מבוססת על תחנת מזג האוויר שעון Plot על ידי SAP:
כפי שמוצג בתצורה שלהם הוארך לזרוע כדי להחזיק סמן לצייר. זה הוסר מכיוון שהוא לא הועיל לאב טיפוס השרבוט. בדוק את הקוד שלהם אם ברצונך להוסיף רכיב זה שוב. השמות בתמונה נשמרים זהים בתצורה שלי.
בהתאם לחומרה שלך האלגוריתם צריך לדעת את מאפייני החומרה שלך:
int leftActuator, rightActuator; // זווית לכתוב למפעיל ב- deg, שנה לצופים אם אתה רוצה יותר דיוק
int posX, posY; // הקואורדינטות של מיקום המצביע
הגדר את הרזולוציה של ערכי הקלט שלך
int posStepsX = 2000;
int posStepsY = 1000;
מידות ההתקנה שלך, הערכים הם במ מ (ראה תמונת SAP)
#define L1 73 // זרוע מנוע באורך, ראה תמונת SAP (שמאל וימין זהים)
#define L2 95 // זרוע הארכת אורך, ראה תמונת SAP (שמאל וימין זהים)
#define rangeX 250 // טווח מרבי בכיוון X לנקודה לזוז (משמאל לימין, 0 - maxVal)
#define range Y 165 // טווח מקסימלי בכיוון Y לנקודה לזוז (מ 0 עד טווח הגעה מרבי תוך שמירה על מרכז)
#define originL 90 // מרחק קיזוז מרוב ערך X המינימלי למיקום מרכז המפעיל
#define originR 145 // המרחק מקזז מרוב ערך X המינימלי למיקום מרכז המפעיל, המרחק בין שני המנועים הוא במקרה זה
שלב 3: קדימה קינמטית קדימה
כפי שצוין בשלב הקודם, קינמטיקה קדימה מבוססת על האלגוריתם של SAP.
החלל מעדכן את ערכי הזווית הרצויים של המפעיל השמאלי והימני שהוגדרו קודם לכן. בהתבסס על ערכי X ו- Y המחוברים אליו הוא יחשב את הזוויות הנכונות בכדי להביא את המצביע למיקום זה.
void set_XY (Tx כפול, Ty כפול) // הזן את ערך ה- X וה- Y {// כמה ערכים שאנו צריכים אך איננו רוצים לשמור עבור dx כפול ארוך, dy, c, a1, a2, Hx, Hy; // רזולוציית מפת האינפיט לטווח התצורה שלך בעולם האמיתי int realX = map (Tx, 0, posStepsX, 0, rangeX); // החלף אם מיפוי אם הפוך int realY = map (Ty, posStepsX, 0, 0, rangeY); // החלף אם מיפוי אם הפוך // זווית calc עבור מפעיל שמאלי // dx קרטזי/dx = realX - originL; // כלול קיזוז dy = realY; // אורך קוטב (c) וזווית (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = return_angle (L1, L2, c); leftActuator = רצפה (((M_PI - (a2 + a1)) * 4068) / 71); // זווית אחרונה והמיר מרד ל- deg // זווית calc עבור מפעיל ימני dx = realX - originR; // כלול קיזוז dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = return_angle (L1, L2, c); rightActuator = רצפה (((a1 - a2) * 4068) / 71); // זווית אחרונה והמיר מרד לדג}
חלל נוסף לחישוב זווית:
החזרה כפולה_זווית (כפולה a, כפולה b, כפולה c) {// כלל קוסינוס לזווית בין c לבין acos החזרה ((a * a + c * c - b * b) / (2 * a * c)); }
שלב 4: קינמטיקה הפוכה
הקינמטיקה ההפוכה פועלת להיפך. אתה מחבר את סיבוב המפעילים שלך במעלות והריק יתעדכן את המיקום שהוגדר קודם לכן.
שימו לב כי תזדקקו למפעילים או לחיישן נפרד שיכול לקרוא את זווית הזרוע. במקרה שלי, השתמשתי במפעילים שיכולים לקרוא ולכתוב את עמדתם בו זמנית. אל תהסס להתנסות בזה ושקול להוסיף כיול כלשהו כך שאתה בטוח שהזווית שלך נקראת נכון.
מוּמלָץ:
רובוט ציור מופעל Arduino: 11 שלבים (עם תמונות)
רובוט ציור מופעל Arduino: האם תהית אי פעם אם רובוט יכול ליצור ציורים ואמנות מהפנטים? בפרויקט זה אני מנסה להפוך את זה למציאות עם רובוט ציור מופעל Arduino. המטרה היא שהרובוט יצליח ליצור ציורים בכוחות עצמו ולהשתמש ב
רובוט ציור עם מגן Adafruit (לגרום לזה להעביר תחרות): 10 שלבים (עם תמונות)
רובוט ציור עם מגן Adafruit (עשה זאת לזוז בתחרות): שלום, שמי ג'ייקוב ואני גרים בבריטניה. בפרויקט זה אני הולך לבנות רובוט שצייר עבורך. *אני בטוח שרבים מכם רוצים לראות את זה אז אם אתם רוצים לדעת אנא דלגו ישר לשלב השני עד האחרון אך הקפידו לחזור לכאן כדי לראות
רובוט ציור עבור Arduino: 18 שלבים (עם תמונות)
רובוט ציור עבור Arduino: הערה: יש לי גרסה חדשה של רובוט זה המשתמשת במעגל מודפס, קלה יותר לבנייה ובעלת זיהוי מכשולים IR! בדוק את זה ב http://bit.ly/OSTurtle עיצבתי את הפרויקט הזה לסדנה בת 10 שעות עבור ChickTech.org שמטרתה היא
[רובוט ארדואינו] כיצד ליצור רובוט לכידת תנועה - רובוט אגודל - מנוע סרוו - קוד מקור: 26 שלבים (עם תמונות)
[רובוט ארדואינו] כיצד ליצור רובוט לכידת תנועה | רובוט אגודל | מנוע סרוו | קוד מקור: רובוט אגודל. השתמש בפוטנציומטר של מנוע סרוו MG90S. זה מאוד כיף וקל! הקוד פשוט מאוד. זה בסביבות 30 קווים בלבד. זה נראה כמו לכידת תנועה. אנא השאר כל שאלה או משוב! [הוראה] קוד מקור https: //github.c
רובוט ציור תואם Arduino בעלות נמוכה: 15 שלבים (עם תמונות)
רובוט ציור בעלות נמוכה, תואמת Arduino: הערה: יש לי גרסה חדשה של רובוט זה המשתמשת במעגל מודפס, קלה יותר לבנייה ובעלת זיהוי מכשולים IR! בדוק את זה ב http://bit.ly/OSTurtle עיצבתי את הפרויקט הזה לסדנה בת 10 שעות עבור ChickTech.org שמטרתה היא