תוכן עניינים:
- אספקה
- שלב 1: רכישת אותות
- שלב 2: אות פשוט
- שלב 3: עיבוד אותות
- שלב 4: תרשימים
- שלב 5: מיקום חיישני EMG
- שלב 6: קוד
- שלב 7: תוצאות
וִידֵאוֹ: שליטה ביד רובוטית עם EMG: 7 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
פרויקט זה מציג שליטה על היד הרובוטית (באמצעות יד פתוחה ב- Moov) עם 3 התקני uECG של opensource המשמשים למדידה ועיבוד של פעילות השרירים (אלקטרומיוגרם, EMG). לצוות שלנו יש סיפור ארוך עם הידיים והשליטה שלהם, וזה צעד טוב בכיוון הנכון:)
אספקה
3x התקני uECG 1x Arduino (אני משתמש ב- Nano אבל רוב האחרים יעבדו) 1 x nRF24 מודול (כל אחד כללי) 1x PCA9685 או נהג סרוו דומה 1x inMoov יד 5 x סרוו גדול (ראה הוראות inMov לסוגים תואמים) 1x 5V אספקת חשמל מסוגלת זרם 5A או יותר
שלב 1: רכישת אותות
הבקרה מבוססת על EMG - פעילות חשמלית של השרירים. אות EMG מתקבל על ידי שלושה התקני uECG (אני יודע, זה אמור להיות צג א.ק.ג., אך מכיוון שהוא מבוסס על ADC גנרי, הוא יכול למדוד כל אותות ביו - כולל EMG). לעיבוד EMG, ל- uECG יש מצב מיוחד בו הוא שולח נתוני ספקטרום של 32 סל, וממוצע "חלון שריר" (עוצמת ספקטרלית ממוצעת בין 75 ל -440 הרץ). תמונות ספקטרום נראות כמו דפוסים כחולים-ירוקים המשתנים עם הזמן. כאן התדר נמצא על ציר אנכי (בכל אחת מ -3 עלילות, תדר נמוך בתחתית, גבוה למעלה - מ 0 עד 488 הרץ עם צעדים של ~ 15 הרץ), הזמן הוא אופקי (נתונים ישנים בצד השמאלי בסך הכל כאן הוא בערך 10 שניות על המסך). העוצמה מקודדת בצבע: כחול - נמוך, ירוק - בינוני, צהוב - גבוה, אדום - אפילו גבוה יותר.
שלב 2: אות פשוט
לצורך זיהוי מחוות אמין, יש צורך בעיבוד PC תקין של תמונות ספקטרליות אלה. אבל להפעלה פשוטה של אצבעות יד רובוטיות, מספיק פשוט להשתמש בערך ממוצע ב -3 ערוצים - uECG מספק אותו בנוחות בבתים מסוימים של מנות כך שסקיצה של Arduino תוכל לנתח אותו. ערכים אלה נראים הרבה יותר פשוטים - צירפתי תרשים של ערכים גולמיים מהפלוטר הסידורי של Arduino. תרשימים אדומים, ירוקים, כחולים הם ערכים גולמיים משלושה מכשירי uECG בקבוצות שרירים שונות כשאני לוחץ את האגודל, הטבעת והאצבעות האמצעיות בהתאם. לעינינו המקרים הללו בבירור שונים, אך עלינו להפוך את הערכים הללו ל"ניקוד אצבע "איכשהו כך שתוכנית תוכל להפיק ערכים לסרווס ידיים. הבעיה היא שאותות מקבוצות השרירים "מעורבות": במקרה הראשון והשלישי עוצמת האות הכחולה זהה בערך - אך האדום והירוק שונים. במקרה השני והשלישי אותות ירוקים זהים - אך כחול ואדום שונים.
שלב 3: עיבוד אותות
על מנת "לבטל" את האותות הללו, השתמשתי בנוסחה פשוטה יחסית:
S0 = V0^2 / ((V1 * a0 +b0) (V2 * c0 +d0)), כאשר S0 - ציון לערוץ 0, V0, V1, V2 - ערכי גלם לערוצים 0, 1, 2, ו-, b, c, d - מקדמים אותם התאמתי ידנית (a ו- c היו מ 0.3 עד 2.0, b ו- d היו 15 ו- 20, תצטרך לשנות אותם כדי להתאים למיקום החיישן הספציפי שלך בכל מקרה). אותו ציון חושב לערוצים 1 ו 2. לאחר מכן התרשימים הופרדו כמעט לחלוטין. לאותן מחוות (הפעם אצבע, אמצע ואז אגודל) האותות ברורים וניתנים לתרגום בקלות לתנועות סרוו רק על ידי השוואה עם סף
שלב 4: תרשימים
סכמטים די פשוטים, אתה צריך רק מודול nRF24, בקר PCA9685 או IWC דומה PWM, ואספקת כוח 5V אמפר גבוהה שתספיק כדי להזיז את כל הסרווואים האלה בבת אחת (כך שהוא דורש הספק מדורג של 5A לפחות לפעולה יציבה).
רשימת חיבורים: סיכת nRF24 1 (GND) - סיכה 2 של GNUnDNRF24 של Arduino (Vcc) - פין 3 של 3.3VRF24 של Arduino (הפעלה של שבב) - סיכה D9nRF24 של Arduino (SPI: CS) - סיכה 5 של Arduino D8nRF24 5 (SPI: SCK) - Arduino's פין D13nRF24 6 (SPI: MOSI) - Arduino's D11nRF24 סיכה 7 (SPI: MISO) - Arduino's D12PCA9685 SDA - Arduino's A4PCA9685 SCL - Arduino's A5PCA9685 Vcc - Arduino's 5vPCA9685 GND - High9: GN9 - High9 ערוצי PCA 0-4, באגודל הסימון שלי - ערוץ 0, אצבע מורה - ערוץ 1 וכו '.
שלב 5: מיקום חיישני EMG
על מנת לקבל קריאות סבירות, חשוב למקם התקנים uECG, המתעדים פעילות שרירים, במקומות הנכונים. אמנם אפשרויות רבות ושונות אפשריות כאן, אך כל אחת מהן דורשת גישת עיבוד אותות שונה - כך שקוד שלי עדיף להשתמש במיקום הדומה לתמונות שלי. זה עשוי להיות אינטואיטיבי, אך אות שרירי האגודל נראה טוב יותר בצד הנגדי של הזרוע., אז אחד החיישנים ממוקם שם, וכולם ממוקמים קרוב למרפק (לשרירים יש את רוב גופם באזור זה, אבל אתה רוצה לבדוק היכן בדיוק שלך נמצא - יש הבדל אינדיבידואלי די גדול)
שלב 6: קוד
לפני הפעלת התוכנית הראשית, יהיה עליך לברר את מזהי היחידה של מכשירי uECG הספציפיים שלך (זה נעשה על ידי ביטול שורה 101 והפעלת התקנים אחד אחד, תראה את מזהה המכשיר הנוכחי בין היתר) ומלא אותם מערך unit_ids (שורה 37). מלבד זאת, אתה רוצה לשחק עם מקדמי נוסחה (שורות 129-131) ולבדוק איך זה נראה על פלוטר סדרתי לפני שאתה מחבר אותו ליד הרובוטית.
שלב 7: תוצאות
עם כמה ניסויים שנמשכו כשעתיים, הצלחתי לקבל פעולה די אמינה (סרטון מראה מקרה אופייני). הוא מתנהג לא בצורה מושלמת ועם עיבוד זה יכול לזהות רק אצבעות פתוחות וסגורות (ואפילו לא כל אחת מה -5, הוא מזהה רק 3 קבוצות שרירים: אגודל, אינדקס ואמצע יחד, טבעת ואצבעות קטנות יחד). אבל "AI" שמנתח אות לוקח כאן 3 שורות קוד ומשתמש בערך יחיד מכל ערוץ. אני מאמין שאפשר לעשות הרבה יותר על ידי ניתוח תמונות ספקטרליות של 32 סל במחשב או בסמארטפון. כמו כן, גרסה זו משתמשת רק ב -3 התקני uECG (ערוצי EMG). עם יותר ערוצים צריך להיות אפשר לזהות דפוסים מורכבים באמת - אבל טוב, זו הנקודה של הפרויקט, לספק נקודת התחלה לכל מי שמעוניין:) שליטה ביד היא בהחלט לא היישום היחיד למערכת כזו.
מוּמלָץ:
שליטה קולית רובוטית: 4 שלבים
שליטה קולית רובוטית: יצרתי זרוע רובוטית שתפעל עם הפקודה הקולית שלך. זרוע הרובוט נשלטת עם קלט דיבור מחובר טבעי. קלט השפה מאפשר למשתמש לקיים אינטראקציה עם הרובוט במונחים המוכרים לרוב האנשים. האדוואן
IoT: שליטה ב- HoloLens באמצעות הגבות שלך (EMG): 5 שלבים
IoT: שליטה ב- HoloLens Using Your Eyebrows (EMG): פרויקט זה היה חלק מפרויקט NASA SUITS של אוניברסיטת קולורדו בולדר שהוצג ונבדק ב- JSC בנאס"א באפריל 2019. עבור הפרויקט של אותה שנה, הייתי ראש הפרויקט של חומרה פיתוח וזו הייתה אחת התרומות שלי
שליטה בזרוע רובוטית עם Zio באמצעות בקר PS2: 4 שלבים
שליטה בזרוע רובוטית עם Zio באמצעות בקר PS2: פוסט בבלוג זה הוא חלק מסדרת Zio Robotics. מבוא זהו הפרק הסופי של הפוסט 'שליטה בזרוע רובוטית עם Zio'. במדריך זה נוסיף חלק נוסף לזרוע הרובוטית שלנו. הדרכות קודמות אינן כוללות בסיס ל
שליטה בזרוע רובוטית עם מודולי זיו חלק 1: 8 שלבים
שליטה בזרוע רובוטית באמצעות מודולי Zio חלק 1: פוסט בבלוג זה הוא חלק מסדרת Zio Robotics. מבוא במדריך זה נבנה פרויקט בו נשתמש במודולי Zio לשליטה בזרוע הרובוטית. פרויקט זה ילמד אותך כיצד לגרום לטופר הזרוע הרובוטית שלך להיפתח ולסגור. זה n
שליטה ברכב ביד: 8 שלבים
שליטה ברכב בידך: פרויקט זה נועד עבור 'אלקטרוניקה יצירתית', מודול הנדסת אלקטרוניקה BEng בשנה הרביעית באוניברסיטת מאלגה, בית הספר לתקשורת (uma.es/etsi-de-telecomunicac// במדריך זה נראה. איך יוצרים צמיד