Myo Armband Car Control

פרוייקט MYO – יובל, ירין וגיא

1         הקדמה

מטרת הפרוייקט הינה לשלוט במכונית באמצעות צמיד ה-MYO, להבין ולתפעל את ה-MYO.
בעבודתנו יצרנו ממשק לשליטה על מכונית (או, באופן כללי על כל מכשיר אשר יש לו חיבור
Serial למחשב) – פירקנו את תנועות ידו שלהמשתמשל-Yaw, Roll, Pitchולפוזיציית ידו, ונרמלנו ערכים אלה.

בעזרת ערכים אלו קבענו את מצב המכונית הנוכחי –מהירותה, כיוון נסיעתה, זווית הגלגלים…
את מצב המכונית שידרנו למכונית עצמה,בהתאם לדרך בה היא קולטת את הנתונים.
את השליחה התאמנו לשלוש מכונית במעבדה – המכונית הקטנה, מכונית ה-
LEGO ומשאית ה-8×8.
לצורך שליחה זו, כתבנו ממשק המשדר נתונים ל-
Serial Port נתון – על מנת למנוע תלות בתוכנות נוספות.

בנוסף, הוספנו אפשרויות ל-API של ה-MYO כגון גישה לנתוני Yaw, Roll ו-Pitch מנורמלים, לפוזיציה של היד והכנו אפליקציה של הקלטת וחיפוש רצפי תנועות ב-MYO.

את הפרוייקט כתבנו ב-JAVA.

2     ה-MYO

ה-MYO הינו צמיד לביש, בעזרתו קלטנו את תנועות ידו של המשתמש, ואת הפוזיציה של ידו.
לצורך העבודה עם ה-
MYO, השתמשנו ב-API קיים (הכתוב ב-JAVA), אליו הוספנו אפשרויות גישה ל-Yaw, Pitch ו-Roll אשר נרמלנו בין בטווח [-1,1], ולפוזיציית היד.

 

פוזיציות של היד ב-MYO

Yaw, Pitch, Roll

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

 

3     שליטה על המכונית

לצורך השליטה על המכונית כתבנו ממשק לשליטה על מכונית כללית, וממשק דרכו ניתן לשדר אינפורמציה ל-Serial Port.

בכל איטרציה של ה-MYO, מועברים ערכי ה-Pitch / Roll והפוזיציה לממשק זה. בעזרת ערכים אלה מוחלט מה לשדר ל-Serial.

מכיוון שכל מכונית מפרשת אחרת את הערכים אותם היא מקבלת, יצרנו שלוש מחלקות לשליטה – מחלקה לשליטה על המכונית הקטנה, מחלקה לשליטה על מכונית ה-LEGO, ומחלקה לשליטה על משאית ה-8×8. משום וכל מכונית
מפרשת את הערכים בצורה שונה, ולכל מכונית אפשרויות שליטה שונות הפוקציות האחראיות על קביעת מצב המכונית, ושידור הערכים (איזו אינפורמציה לשדר) ממומשות באופן שונה בכל מחלקה.

4     דמו

5         קישורים

 

Be the first to comment

Leave a Reply

Accessibility
Close Close